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 = 42;
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 CRYPTO_IOVEC_MAX: i32 = 16;
1219pub const SN_undef: &[u8; 6] = b"UNDEF\0";
1220pub const LN_undef: &[u8; 10] = b"undefined\0";
1221pub const NID_undef: i32 = 0;
1222pub const OBJ_undef: i32 = 0;
1223pub const SN_rsadsi: &[u8; 7] = b"rsadsi\0";
1224pub const LN_rsadsi: &[u8; 24] = b"RSA Data Security, Inc.\0";
1225pub const NID_rsadsi: i32 = 1;
1226pub const SN_pkcs: &[u8; 5] = b"pkcs\0";
1227pub const LN_pkcs: &[u8; 29] = b"RSA Data Security, Inc. PKCS\0";
1228pub const NID_pkcs: i32 = 2;
1229pub const SN_md2: &[u8; 4] = b"MD2\0";
1230pub const LN_md2: &[u8; 4] = b"md2\0";
1231pub const NID_md2: i32 = 3;
1232pub const SN_md5: &[u8; 4] = b"MD5\0";
1233pub const LN_md5: &[u8; 4] = b"md5\0";
1234pub const NID_md5: i32 = 4;
1235pub const SN_rc4: &[u8; 4] = b"RC4\0";
1236pub const LN_rc4: &[u8; 4] = b"rc4\0";
1237pub const NID_rc4: i32 = 5;
1238pub const LN_rsaEncryption: &[u8; 14] = b"rsaEncryption\0";
1239pub const NID_rsaEncryption: i32 = 6;
1240pub const SN_md2WithRSAEncryption: &[u8; 8] = b"RSA-MD2\0";
1241pub const LN_md2WithRSAEncryption: &[u8; 21] = b"md2WithRSAEncryption\0";
1242pub const NID_md2WithRSAEncryption: i32 = 7;
1243pub const SN_md5WithRSAEncryption: &[u8; 8] = b"RSA-MD5\0";
1244pub const LN_md5WithRSAEncryption: &[u8; 21] = b"md5WithRSAEncryption\0";
1245pub const NID_md5WithRSAEncryption: i32 = 8;
1246pub const SN_pbeWithMD2AndDES_CBC: &[u8; 12] = b"PBE-MD2-DES\0";
1247pub const LN_pbeWithMD2AndDES_CBC: &[u8; 21] = b"pbeWithMD2AndDES-CBC\0";
1248pub const NID_pbeWithMD2AndDES_CBC: i32 = 9;
1249pub const SN_pbeWithMD5AndDES_CBC: &[u8; 12] = b"PBE-MD5-DES\0";
1250pub const LN_pbeWithMD5AndDES_CBC: &[u8; 21] = b"pbeWithMD5AndDES-CBC\0";
1251pub const NID_pbeWithMD5AndDES_CBC: i32 = 10;
1252pub const SN_X500: &[u8; 5] = b"X500\0";
1253pub const LN_X500: &[u8; 27] = b"directory services (X.500)\0";
1254pub const NID_X500: i32 = 11;
1255pub const OBJ_ENC_X500: i32 = 85;
1256pub const SN_X509: &[u8; 5] = b"X509\0";
1257pub const NID_X509: i32 = 12;
1258pub const SN_commonName: &[u8; 3] = b"CN\0";
1259pub const LN_commonName: &[u8; 11] = b"commonName\0";
1260pub const NID_commonName: i32 = 13;
1261pub const SN_countryName: &[u8; 2] = b"C\0";
1262pub const LN_countryName: &[u8; 12] = b"countryName\0";
1263pub const NID_countryName: i32 = 14;
1264pub const SN_localityName: &[u8; 2] = b"L\0";
1265pub const LN_localityName: &[u8; 13] = b"localityName\0";
1266pub const NID_localityName: i32 = 15;
1267pub const SN_stateOrProvinceName: &[u8; 3] = b"ST\0";
1268pub const LN_stateOrProvinceName: &[u8; 20] = b"stateOrProvinceName\0";
1269pub const NID_stateOrProvinceName: i32 = 16;
1270pub const SN_organizationName: &[u8; 2] = b"O\0";
1271pub const LN_organizationName: &[u8; 17] = b"organizationName\0";
1272pub const NID_organizationName: i32 = 17;
1273pub const SN_organizationalUnitName: &[u8; 3] = b"OU\0";
1274pub const LN_organizationalUnitName: &[u8; 23] = b"organizationalUnitName\0";
1275pub const NID_organizationalUnitName: i32 = 18;
1276pub const SN_rsa: &[u8; 4] = b"RSA\0";
1277pub const LN_rsa: &[u8; 4] = b"rsa\0";
1278pub const NID_rsa: i32 = 19;
1279pub const SN_pkcs7: &[u8; 6] = b"pkcs7\0";
1280pub const NID_pkcs7: i32 = 20;
1281pub const LN_pkcs7_data: &[u8; 11] = b"pkcs7-data\0";
1282pub const NID_pkcs7_data: i32 = 21;
1283pub const LN_pkcs7_signed: &[u8; 17] = b"pkcs7-signedData\0";
1284pub const NID_pkcs7_signed: i32 = 22;
1285pub const LN_pkcs7_enveloped: &[u8; 20] = b"pkcs7-envelopedData\0";
1286pub const NID_pkcs7_enveloped: i32 = 23;
1287pub const LN_pkcs7_signedAndEnveloped: &[u8; 29] = b"pkcs7-signedAndEnvelopedData\0";
1288pub const NID_pkcs7_signedAndEnveloped: i32 = 24;
1289pub const LN_pkcs7_digest: &[u8; 17] = b"pkcs7-digestData\0";
1290pub const NID_pkcs7_digest: i32 = 25;
1291pub const LN_pkcs7_encrypted: &[u8; 20] = b"pkcs7-encryptedData\0";
1292pub const NID_pkcs7_encrypted: i32 = 26;
1293pub const SN_pkcs3: &[u8; 6] = b"pkcs3\0";
1294pub const NID_pkcs3: i32 = 27;
1295pub const LN_dhKeyAgreement: &[u8; 15] = b"dhKeyAgreement\0";
1296pub const NID_dhKeyAgreement: i32 = 28;
1297pub const SN_des_ecb: &[u8; 8] = b"DES-ECB\0";
1298pub const LN_des_ecb: &[u8; 8] = b"des-ecb\0";
1299pub const NID_des_ecb: i32 = 29;
1300pub const SN_des_cfb64: &[u8; 8] = b"DES-CFB\0";
1301pub const LN_des_cfb64: &[u8; 8] = b"des-cfb\0";
1302pub const NID_des_cfb64: i32 = 30;
1303pub const SN_des_cbc: &[u8; 8] = b"DES-CBC\0";
1304pub const LN_des_cbc: &[u8; 8] = b"des-cbc\0";
1305pub const NID_des_cbc: i32 = 31;
1306pub const SN_des_ede_ecb: &[u8; 8] = b"DES-EDE\0";
1307pub const LN_des_ede_ecb: &[u8; 8] = b"des-ede\0";
1308pub const NID_des_ede_ecb: i32 = 32;
1309pub const SN_des_ede3_ecb: &[u8; 9] = b"DES-EDE3\0";
1310pub const LN_des_ede3_ecb: &[u8; 9] = b"des-ede3\0";
1311pub const NID_des_ede3_ecb: i32 = 33;
1312pub const SN_idea_cbc: &[u8; 9] = b"IDEA-CBC\0";
1313pub const LN_idea_cbc: &[u8; 9] = b"idea-cbc\0";
1314pub const NID_idea_cbc: i32 = 34;
1315pub const SN_idea_cfb64: &[u8; 9] = b"IDEA-CFB\0";
1316pub const LN_idea_cfb64: &[u8; 9] = b"idea-cfb\0";
1317pub const NID_idea_cfb64: i32 = 35;
1318pub const SN_idea_ecb: &[u8; 9] = b"IDEA-ECB\0";
1319pub const LN_idea_ecb: &[u8; 9] = b"idea-ecb\0";
1320pub const NID_idea_ecb: i32 = 36;
1321pub const SN_rc2_cbc: &[u8; 8] = b"RC2-CBC\0";
1322pub const LN_rc2_cbc: &[u8; 8] = b"rc2-cbc\0";
1323pub const NID_rc2_cbc: i32 = 37;
1324pub const SN_rc2_ecb: &[u8; 8] = b"RC2-ECB\0";
1325pub const LN_rc2_ecb: &[u8; 8] = b"rc2-ecb\0";
1326pub const NID_rc2_ecb: i32 = 38;
1327pub const SN_rc2_cfb64: &[u8; 8] = b"RC2-CFB\0";
1328pub const LN_rc2_cfb64: &[u8; 8] = b"rc2-cfb\0";
1329pub const NID_rc2_cfb64: i32 = 39;
1330pub const SN_rc2_ofb64: &[u8; 8] = b"RC2-OFB\0";
1331pub const LN_rc2_ofb64: &[u8; 8] = b"rc2-ofb\0";
1332pub const NID_rc2_ofb64: i32 = 40;
1333pub const SN_sha: &[u8; 4] = b"SHA\0";
1334pub const LN_sha: &[u8; 4] = b"sha\0";
1335pub const NID_sha: i32 = 41;
1336pub const SN_shaWithRSAEncryption: &[u8; 8] = b"RSA-SHA\0";
1337pub const LN_shaWithRSAEncryption: &[u8; 21] = b"shaWithRSAEncryption\0";
1338pub const NID_shaWithRSAEncryption: i32 = 42;
1339pub const SN_des_ede_cbc: &[u8; 12] = b"DES-EDE-CBC\0";
1340pub const LN_des_ede_cbc: &[u8; 12] = b"des-ede-cbc\0";
1341pub const NID_des_ede_cbc: i32 = 43;
1342pub const SN_des_ede3_cbc: &[u8; 13] = b"DES-EDE3-CBC\0";
1343pub const LN_des_ede3_cbc: &[u8; 13] = b"des-ede3-cbc\0";
1344pub const NID_des_ede3_cbc: i32 = 44;
1345pub const SN_des_ofb64: &[u8; 8] = b"DES-OFB\0";
1346pub const LN_des_ofb64: &[u8; 8] = b"des-ofb\0";
1347pub const NID_des_ofb64: i32 = 45;
1348pub const SN_idea_ofb64: &[u8; 9] = b"IDEA-OFB\0";
1349pub const LN_idea_ofb64: &[u8; 9] = b"idea-ofb\0";
1350pub const NID_idea_ofb64: i32 = 46;
1351pub const SN_pkcs9: &[u8; 6] = b"pkcs9\0";
1352pub const NID_pkcs9: i32 = 47;
1353pub const LN_pkcs9_emailAddress: &[u8; 13] = b"emailAddress\0";
1354pub const NID_pkcs9_emailAddress: i32 = 48;
1355pub const LN_pkcs9_unstructuredName: &[u8; 17] = b"unstructuredName\0";
1356pub const NID_pkcs9_unstructuredName: i32 = 49;
1357pub const LN_pkcs9_contentType: &[u8; 12] = b"contentType\0";
1358pub const NID_pkcs9_contentType: i32 = 50;
1359pub const LN_pkcs9_messageDigest: &[u8; 14] = b"messageDigest\0";
1360pub const NID_pkcs9_messageDigest: i32 = 51;
1361pub const LN_pkcs9_signingTime: &[u8; 12] = b"signingTime\0";
1362pub const NID_pkcs9_signingTime: i32 = 52;
1363pub const LN_pkcs9_countersignature: &[u8; 17] = b"countersignature\0";
1364pub const NID_pkcs9_countersignature: i32 = 53;
1365pub const LN_pkcs9_challengePassword: &[u8; 18] = b"challengePassword\0";
1366pub const NID_pkcs9_challengePassword: i32 = 54;
1367pub const LN_pkcs9_unstructuredAddress: &[u8; 20] = b"unstructuredAddress\0";
1368pub const NID_pkcs9_unstructuredAddress: i32 = 55;
1369pub const LN_pkcs9_extCertAttributes: &[u8; 30] = b"extendedCertificateAttributes\0";
1370pub const NID_pkcs9_extCertAttributes: i32 = 56;
1371pub const SN_netscape: &[u8; 9] = b"Netscape\0";
1372pub const LN_netscape: &[u8; 30] = b"Netscape Communications Corp.\0";
1373pub const NID_netscape: i32 = 57;
1374pub const SN_netscape_cert_extension: &[u8; 10] = b"nsCertExt\0";
1375pub const LN_netscape_cert_extension: &[u8; 31] = b"Netscape Certificate Extension\0";
1376pub const NID_netscape_cert_extension: i32 = 58;
1377pub const SN_netscape_data_type: &[u8; 11] = b"nsDataType\0";
1378pub const LN_netscape_data_type: &[u8; 19] = b"Netscape Data Type\0";
1379pub const NID_netscape_data_type: i32 = 59;
1380pub const SN_des_ede_cfb64: &[u8; 12] = b"DES-EDE-CFB\0";
1381pub const LN_des_ede_cfb64: &[u8; 12] = b"des-ede-cfb\0";
1382pub const NID_des_ede_cfb64: i32 = 60;
1383pub const SN_des_ede3_cfb64: &[u8; 13] = b"DES-EDE3-CFB\0";
1384pub const LN_des_ede3_cfb64: &[u8; 13] = b"des-ede3-cfb\0";
1385pub const NID_des_ede3_cfb64: i32 = 61;
1386pub const SN_des_ede_ofb64: &[u8; 12] = b"DES-EDE-OFB\0";
1387pub const LN_des_ede_ofb64: &[u8; 12] = b"des-ede-ofb\0";
1388pub const NID_des_ede_ofb64: i32 = 62;
1389pub const SN_des_ede3_ofb64: &[u8; 13] = b"DES-EDE3-OFB\0";
1390pub const LN_des_ede3_ofb64: &[u8; 13] = b"des-ede3-ofb\0";
1391pub const NID_des_ede3_ofb64: i32 = 63;
1392pub const SN_sha1: &[u8; 5] = b"SHA1\0";
1393pub const LN_sha1: &[u8; 5] = b"sha1\0";
1394pub const NID_sha1: i32 = 64;
1395pub const SN_sha1WithRSAEncryption: &[u8; 9] = b"RSA-SHA1\0";
1396pub const LN_sha1WithRSAEncryption: &[u8; 22] = b"sha1WithRSAEncryption\0";
1397pub const NID_sha1WithRSAEncryption: i32 = 65;
1398pub const SN_dsaWithSHA: &[u8; 8] = b"DSA-SHA\0";
1399pub const LN_dsaWithSHA: &[u8; 11] = b"dsaWithSHA\0";
1400pub const NID_dsaWithSHA: i32 = 66;
1401pub const SN_dsa_2: &[u8; 8] = b"DSA-old\0";
1402pub const LN_dsa_2: &[u8; 18] = b"dsaEncryption-old\0";
1403pub const NID_dsa_2: i32 = 67;
1404pub const SN_pbeWithSHA1AndRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-64\0";
1405pub const LN_pbeWithSHA1AndRC2_CBC: &[u8; 22] = b"pbeWithSHA1AndRC2-CBC\0";
1406pub const NID_pbeWithSHA1AndRC2_CBC: i32 = 68;
1407pub const LN_id_pbkdf2: &[u8; 7] = b"PBKDF2\0";
1408pub const NID_id_pbkdf2: i32 = 69;
1409pub const SN_dsaWithSHA1_2: &[u8; 13] = b"DSA-SHA1-old\0";
1410pub const LN_dsaWithSHA1_2: &[u8; 16] = b"dsaWithSHA1-old\0";
1411pub const NID_dsaWithSHA1_2: i32 = 70;
1412pub const SN_netscape_cert_type: &[u8; 11] = b"nsCertType\0";
1413pub const LN_netscape_cert_type: &[u8; 19] = b"Netscape Cert Type\0";
1414pub const NID_netscape_cert_type: i32 = 71;
1415pub const SN_netscape_base_url: &[u8; 10] = b"nsBaseUrl\0";
1416pub const LN_netscape_base_url: &[u8; 18] = b"Netscape Base Url\0";
1417pub const NID_netscape_base_url: i32 = 72;
1418pub const SN_netscape_revocation_url: &[u8; 16] = b"nsRevocationUrl\0";
1419pub const LN_netscape_revocation_url: &[u8; 24] = b"Netscape Revocation Url\0";
1420pub const NID_netscape_revocation_url: i32 = 73;
1421pub const SN_netscape_ca_revocation_url: &[u8; 18] = b"nsCaRevocationUrl\0";
1422pub const LN_netscape_ca_revocation_url: &[u8; 27] = b"Netscape CA Revocation Url\0";
1423pub const NID_netscape_ca_revocation_url: i32 = 74;
1424pub const SN_netscape_renewal_url: &[u8; 13] = b"nsRenewalUrl\0";
1425pub const LN_netscape_renewal_url: &[u8; 21] = b"Netscape Renewal Url\0";
1426pub const NID_netscape_renewal_url: i32 = 75;
1427pub const SN_netscape_ca_policy_url: &[u8; 14] = b"nsCaPolicyUrl\0";
1428pub const LN_netscape_ca_policy_url: &[u8; 23] = b"Netscape CA Policy Url\0";
1429pub const NID_netscape_ca_policy_url: i32 = 76;
1430pub const SN_netscape_ssl_server_name: &[u8; 16] = b"nsSslServerName\0";
1431pub const LN_netscape_ssl_server_name: &[u8; 25] = b"Netscape SSL Server Name\0";
1432pub const NID_netscape_ssl_server_name: i32 = 77;
1433pub const SN_netscape_comment: &[u8; 10] = b"nsComment\0";
1434pub const LN_netscape_comment: &[u8; 17] = b"Netscape Comment\0";
1435pub const NID_netscape_comment: i32 = 78;
1436pub const SN_netscape_cert_sequence: &[u8; 15] = b"nsCertSequence\0";
1437pub const LN_netscape_cert_sequence: &[u8; 30] = b"Netscape Certificate Sequence\0";
1438pub const NID_netscape_cert_sequence: i32 = 79;
1439pub const SN_desx_cbc: &[u8; 9] = b"DESX-CBC\0";
1440pub const LN_desx_cbc: &[u8; 9] = b"desx-cbc\0";
1441pub const NID_desx_cbc: i32 = 80;
1442pub const SN_id_ce: &[u8; 6] = b"id-ce\0";
1443pub const NID_id_ce: i32 = 81;
1444pub const SN_subject_key_identifier: &[u8; 21] = b"subjectKeyIdentifier\0";
1445pub const LN_subject_key_identifier: &[u8; 30] = b"X509v3 Subject Key Identifier\0";
1446pub const NID_subject_key_identifier: i32 = 82;
1447pub const SN_key_usage: &[u8; 9] = b"keyUsage\0";
1448pub const LN_key_usage: &[u8; 17] = b"X509v3 Key Usage\0";
1449pub const NID_key_usage: i32 = 83;
1450pub const SN_private_key_usage_period: &[u8; 22] = b"privateKeyUsagePeriod\0";
1451pub const LN_private_key_usage_period: &[u8; 32] = b"X509v3 Private Key Usage Period\0";
1452pub const NID_private_key_usage_period: i32 = 84;
1453pub const SN_subject_alt_name: &[u8; 15] = b"subjectAltName\0";
1454pub const LN_subject_alt_name: &[u8; 32] = b"X509v3 Subject Alternative Name\0";
1455pub const NID_subject_alt_name: i32 = 85;
1456pub const SN_issuer_alt_name: &[u8; 14] = b"issuerAltName\0";
1457pub const LN_issuer_alt_name: &[u8; 31] = b"X509v3 Issuer Alternative Name\0";
1458pub const NID_issuer_alt_name: i32 = 86;
1459pub const SN_basic_constraints: &[u8; 17] = b"basicConstraints\0";
1460pub const LN_basic_constraints: &[u8; 25] = b"X509v3 Basic Constraints\0";
1461pub const NID_basic_constraints: i32 = 87;
1462pub const SN_crl_number: &[u8; 10] = b"crlNumber\0";
1463pub const LN_crl_number: &[u8; 18] = b"X509v3 CRL Number\0";
1464pub const NID_crl_number: i32 = 88;
1465pub const SN_certificate_policies: &[u8; 20] = b"certificatePolicies\0";
1466pub const LN_certificate_policies: &[u8; 28] = b"X509v3 Certificate Policies\0";
1467pub const NID_certificate_policies: i32 = 89;
1468pub const SN_authority_key_identifier: &[u8; 23] = b"authorityKeyIdentifier\0";
1469pub const LN_authority_key_identifier: &[u8; 32] = b"X509v3 Authority Key Identifier\0";
1470pub const NID_authority_key_identifier: i32 = 90;
1471pub const SN_bf_cbc: &[u8; 7] = b"BF-CBC\0";
1472pub const LN_bf_cbc: &[u8; 7] = b"bf-cbc\0";
1473pub const NID_bf_cbc: i32 = 91;
1474pub const SN_bf_ecb: &[u8; 7] = b"BF-ECB\0";
1475pub const LN_bf_ecb: &[u8; 7] = b"bf-ecb\0";
1476pub const NID_bf_ecb: i32 = 92;
1477pub const SN_bf_cfb64: &[u8; 7] = b"BF-CFB\0";
1478pub const LN_bf_cfb64: &[u8; 7] = b"bf-cfb\0";
1479pub const NID_bf_cfb64: i32 = 93;
1480pub const SN_bf_ofb64: &[u8; 7] = b"BF-OFB\0";
1481pub const LN_bf_ofb64: &[u8; 7] = b"bf-ofb\0";
1482pub const NID_bf_ofb64: i32 = 94;
1483pub const SN_mdc2: &[u8; 5] = b"MDC2\0";
1484pub const LN_mdc2: &[u8; 5] = b"mdc2\0";
1485pub const NID_mdc2: i32 = 95;
1486pub const SN_mdc2WithRSA: &[u8; 9] = b"RSA-MDC2\0";
1487pub const LN_mdc2WithRSA: &[u8; 12] = b"mdc2WithRSA\0";
1488pub const NID_mdc2WithRSA: i32 = 96;
1489pub const SN_rc4_40: &[u8; 7] = b"RC4-40\0";
1490pub const LN_rc4_40: &[u8; 7] = b"rc4-40\0";
1491pub const NID_rc4_40: i32 = 97;
1492pub const SN_rc2_40_cbc: &[u8; 11] = b"RC2-40-CBC\0";
1493pub const LN_rc2_40_cbc: &[u8; 11] = b"rc2-40-cbc\0";
1494pub const NID_rc2_40_cbc: i32 = 98;
1495pub const SN_givenName: &[u8; 3] = b"GN\0";
1496pub const LN_givenName: &[u8; 10] = b"givenName\0";
1497pub const NID_givenName: i32 = 99;
1498pub const SN_surname: &[u8; 3] = b"SN\0";
1499pub const LN_surname: &[u8; 8] = b"surname\0";
1500pub const NID_surname: i32 = 100;
1501pub const SN_initials: &[u8; 9] = b"initials\0";
1502pub const LN_initials: &[u8; 9] = b"initials\0";
1503pub const NID_initials: i32 = 101;
1504pub const SN_crl_distribution_points: &[u8; 22] = b"crlDistributionPoints\0";
1505pub const LN_crl_distribution_points: &[u8; 31] = b"X509v3 CRL Distribution Points\0";
1506pub const NID_crl_distribution_points: i32 = 103;
1507pub const SN_md5WithRSA: &[u8; 11] = b"RSA-NP-MD5\0";
1508pub const LN_md5WithRSA: &[u8; 11] = b"md5WithRSA\0";
1509pub const NID_md5WithRSA: i32 = 104;
1510pub const LN_serialNumber: &[u8; 13] = b"serialNumber\0";
1511pub const NID_serialNumber: i32 = 105;
1512pub const SN_title: &[u8; 6] = b"title\0";
1513pub const LN_title: &[u8; 6] = b"title\0";
1514pub const NID_title: i32 = 106;
1515pub const LN_description: &[u8; 12] = b"description\0";
1516pub const NID_description: i32 = 107;
1517pub const SN_cast5_cbc: &[u8; 10] = b"CAST5-CBC\0";
1518pub const LN_cast5_cbc: &[u8; 10] = b"cast5-cbc\0";
1519pub const NID_cast5_cbc: i32 = 108;
1520pub const SN_cast5_ecb: &[u8; 10] = b"CAST5-ECB\0";
1521pub const LN_cast5_ecb: &[u8; 10] = b"cast5-ecb\0";
1522pub const NID_cast5_ecb: i32 = 109;
1523pub const SN_cast5_cfb64: &[u8; 10] = b"CAST5-CFB\0";
1524pub const LN_cast5_cfb64: &[u8; 10] = b"cast5-cfb\0";
1525pub const NID_cast5_cfb64: i32 = 110;
1526pub const SN_cast5_ofb64: &[u8; 10] = b"CAST5-OFB\0";
1527pub const LN_cast5_ofb64: &[u8; 10] = b"cast5-ofb\0";
1528pub const NID_cast5_ofb64: i32 = 111;
1529pub const LN_pbeWithMD5AndCast5_CBC: &[u8; 22] = b"pbeWithMD5AndCast5CBC\0";
1530pub const NID_pbeWithMD5AndCast5_CBC: i32 = 112;
1531pub const SN_dsaWithSHA1: &[u8; 9] = b"DSA-SHA1\0";
1532pub const LN_dsaWithSHA1: &[u8; 12] = b"dsaWithSHA1\0";
1533pub const NID_dsaWithSHA1: i32 = 113;
1534pub const SN_md5_sha1: &[u8; 9] = b"MD5-SHA1\0";
1535pub const LN_md5_sha1: &[u8; 9] = b"md5-sha1\0";
1536pub const NID_md5_sha1: i32 = 114;
1537pub const SN_sha1WithRSA: &[u8; 11] = b"RSA-SHA1-2\0";
1538pub const LN_sha1WithRSA: &[u8; 12] = b"sha1WithRSA\0";
1539pub const NID_sha1WithRSA: i32 = 115;
1540pub const SN_dsa: &[u8; 4] = b"DSA\0";
1541pub const LN_dsa: &[u8; 14] = b"dsaEncryption\0";
1542pub const NID_dsa: i32 = 116;
1543pub const SN_ripemd160: &[u8; 10] = b"RIPEMD160\0";
1544pub const LN_ripemd160: &[u8; 10] = b"ripemd160\0";
1545pub const NID_ripemd160: i32 = 117;
1546pub const SN_ripemd160WithRSA: &[u8; 14] = b"RSA-RIPEMD160\0";
1547pub const LN_ripemd160WithRSA: &[u8; 17] = b"ripemd160WithRSA\0";
1548pub const NID_ripemd160WithRSA: i32 = 119;
1549pub const SN_rc5_cbc: &[u8; 8] = b"RC5-CBC\0";
1550pub const LN_rc5_cbc: &[u8; 8] = b"rc5-cbc\0";
1551pub const NID_rc5_cbc: i32 = 120;
1552pub const SN_rc5_ecb: &[u8; 8] = b"RC5-ECB\0";
1553pub const LN_rc5_ecb: &[u8; 8] = b"rc5-ecb\0";
1554pub const NID_rc5_ecb: i32 = 121;
1555pub const SN_rc5_cfb64: &[u8; 8] = b"RC5-CFB\0";
1556pub const LN_rc5_cfb64: &[u8; 8] = b"rc5-cfb\0";
1557pub const NID_rc5_cfb64: i32 = 122;
1558pub const SN_rc5_ofb64: &[u8; 8] = b"RC5-OFB\0";
1559pub const LN_rc5_ofb64: &[u8; 8] = b"rc5-ofb\0";
1560pub const NID_rc5_ofb64: i32 = 123;
1561pub const SN_zlib_compression: &[u8; 5] = b"ZLIB\0";
1562pub const LN_zlib_compression: &[u8; 17] = b"zlib compression\0";
1563pub const NID_zlib_compression: i32 = 125;
1564pub const SN_ext_key_usage: &[u8; 17] = b"extendedKeyUsage\0";
1565pub const LN_ext_key_usage: &[u8; 26] = b"X509v3 Extended Key Usage\0";
1566pub const NID_ext_key_usage: i32 = 126;
1567pub const SN_id_pkix: &[u8; 5] = b"PKIX\0";
1568pub const NID_id_pkix: i32 = 127;
1569pub const SN_id_kp: &[u8; 6] = b"id-kp\0";
1570pub const NID_id_kp: i32 = 128;
1571pub const SN_server_auth: &[u8; 11] = b"serverAuth\0";
1572pub const LN_server_auth: &[u8; 30] = b"TLS Web Server Authentication\0";
1573pub const NID_server_auth: i32 = 129;
1574pub const SN_client_auth: &[u8; 11] = b"clientAuth\0";
1575pub const LN_client_auth: &[u8; 30] = b"TLS Web Client Authentication\0";
1576pub const NID_client_auth: i32 = 130;
1577pub const SN_code_sign: &[u8; 12] = b"codeSigning\0";
1578pub const LN_code_sign: &[u8; 13] = b"Code Signing\0";
1579pub const NID_code_sign: i32 = 131;
1580pub const SN_email_protect: &[u8; 16] = b"emailProtection\0";
1581pub const LN_email_protect: &[u8; 18] = b"E-mail Protection\0";
1582pub const NID_email_protect: i32 = 132;
1583pub const SN_time_stamp: &[u8; 13] = b"timeStamping\0";
1584pub const LN_time_stamp: &[u8; 14] = b"Time Stamping\0";
1585pub const NID_time_stamp: i32 = 133;
1586pub const SN_ms_code_ind: &[u8; 10] = b"msCodeInd\0";
1587pub const LN_ms_code_ind: &[u8; 34] = b"Microsoft Individual Code Signing\0";
1588pub const NID_ms_code_ind: i32 = 134;
1589pub const SN_ms_code_com: &[u8; 10] = b"msCodeCom\0";
1590pub const LN_ms_code_com: &[u8; 34] = b"Microsoft Commercial Code Signing\0";
1591pub const NID_ms_code_com: i32 = 135;
1592pub const SN_ms_ctl_sign: &[u8; 10] = b"msCTLSign\0";
1593pub const LN_ms_ctl_sign: &[u8; 29] = b"Microsoft Trust List Signing\0";
1594pub const NID_ms_ctl_sign: i32 = 136;
1595pub const SN_ms_sgc: &[u8; 6] = b"msSGC\0";
1596pub const LN_ms_sgc: &[u8; 30] = b"Microsoft Server Gated Crypto\0";
1597pub const NID_ms_sgc: i32 = 137;
1598pub const SN_ms_efs: &[u8; 6] = b"msEFS\0";
1599pub const LN_ms_efs: &[u8; 32] = b"Microsoft Encrypted File System\0";
1600pub const NID_ms_efs: i32 = 138;
1601pub const SN_ns_sgc: &[u8; 6] = b"nsSGC\0";
1602pub const LN_ns_sgc: &[u8; 29] = b"Netscape Server Gated Crypto\0";
1603pub const NID_ns_sgc: i32 = 139;
1604pub const SN_delta_crl: &[u8; 9] = b"deltaCRL\0";
1605pub const LN_delta_crl: &[u8; 27] = b"X509v3 Delta CRL Indicator\0";
1606pub const NID_delta_crl: i32 = 140;
1607pub const SN_crl_reason: &[u8; 10] = b"CRLReason\0";
1608pub const LN_crl_reason: &[u8; 23] = b"X509v3 CRL Reason Code\0";
1609pub const NID_crl_reason: i32 = 141;
1610pub const SN_invalidity_date: &[u8; 15] = b"invalidityDate\0";
1611pub const LN_invalidity_date: &[u8; 16] = b"Invalidity Date\0";
1612pub const NID_invalidity_date: i32 = 142;
1613pub const SN_sxnet: &[u8; 8] = b"SXNetID\0";
1614pub const LN_sxnet: &[u8; 19] = b"Strong Extranet ID\0";
1615pub const NID_sxnet: i32 = 143;
1616pub const SN_pbe_WithSHA1And128BitRC4: &[u8; 17] = b"PBE-SHA1-RC4-128\0";
1617pub const LN_pbe_WithSHA1And128BitRC4: &[u8; 24] = b"pbeWithSHA1And128BitRC4\0";
1618pub const NID_pbe_WithSHA1And128BitRC4: i32 = 144;
1619pub const SN_pbe_WithSHA1And40BitRC4: &[u8; 16] = b"PBE-SHA1-RC4-40\0";
1620pub const LN_pbe_WithSHA1And40BitRC4: &[u8; 23] = b"pbeWithSHA1And40BitRC4\0";
1621pub const NID_pbe_WithSHA1And40BitRC4: i32 = 145;
1622pub const SN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-3DES\0";
1623pub const LN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And3-KeyTripleDES-CBC\0";
1624pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC: i32 = 146;
1625pub const SN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-2DES\0";
1626pub const LN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And2-KeyTripleDES-CBC\0";
1627pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC: i32 = 147;
1628pub const SN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 17] = b"PBE-SHA1-RC2-128\0";
1629pub const LN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 28] = b"pbeWithSHA1And128BitRC2-CBC\0";
1630pub const NID_pbe_WithSHA1And128BitRC2_CBC: i32 = 148;
1631pub const SN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-40\0";
1632pub const LN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 27] = b"pbeWithSHA1And40BitRC2-CBC\0";
1633pub const NID_pbe_WithSHA1And40BitRC2_CBC: i32 = 149;
1634pub const LN_keyBag: &[u8; 7] = b"keyBag\0";
1635pub const NID_keyBag: i32 = 150;
1636pub const LN_pkcs8ShroudedKeyBag: &[u8; 20] = b"pkcs8ShroudedKeyBag\0";
1637pub const NID_pkcs8ShroudedKeyBag: i32 = 151;
1638pub const LN_certBag: &[u8; 8] = b"certBag\0";
1639pub const NID_certBag: i32 = 152;
1640pub const LN_crlBag: &[u8; 7] = b"crlBag\0";
1641pub const NID_crlBag: i32 = 153;
1642pub const LN_secretBag: &[u8; 10] = b"secretBag\0";
1643pub const NID_secretBag: i32 = 154;
1644pub const LN_safeContentsBag: &[u8; 16] = b"safeContentsBag\0";
1645pub const NID_safeContentsBag: i32 = 155;
1646pub const LN_friendlyName: &[u8; 13] = b"friendlyName\0";
1647pub const NID_friendlyName: i32 = 156;
1648pub const LN_localKeyID: &[u8; 11] = b"localKeyID\0";
1649pub const NID_localKeyID: i32 = 157;
1650pub const LN_x509Certificate: &[u8; 16] = b"x509Certificate\0";
1651pub const NID_x509Certificate: i32 = 158;
1652pub const LN_sdsiCertificate: &[u8; 16] = b"sdsiCertificate\0";
1653pub const NID_sdsiCertificate: i32 = 159;
1654pub const LN_x509Crl: &[u8; 8] = b"x509Crl\0";
1655pub const NID_x509Crl: i32 = 160;
1656pub const LN_pbes2: &[u8; 6] = b"PBES2\0";
1657pub const NID_pbes2: i32 = 161;
1658pub const LN_pbmac1: &[u8; 7] = b"PBMAC1\0";
1659pub const NID_pbmac1: i32 = 162;
1660pub const LN_hmacWithSHA1: &[u8; 13] = b"hmacWithSHA1\0";
1661pub const NID_hmacWithSHA1: i32 = 163;
1662pub const SN_id_qt_cps: &[u8; 10] = b"id-qt-cps\0";
1663pub const LN_id_qt_cps: &[u8; 21] = b"Policy Qualifier CPS\0";
1664pub const NID_id_qt_cps: i32 = 164;
1665pub const SN_id_qt_unotice: &[u8; 14] = b"id-qt-unotice\0";
1666pub const LN_id_qt_unotice: &[u8; 29] = b"Policy Qualifier User Notice\0";
1667pub const NID_id_qt_unotice: i32 = 165;
1668pub const SN_rc2_64_cbc: &[u8; 11] = b"RC2-64-CBC\0";
1669pub const LN_rc2_64_cbc: &[u8; 11] = b"rc2-64-cbc\0";
1670pub const NID_rc2_64_cbc: i32 = 166;
1671pub const SN_SMIMECapabilities: &[u8; 11] = b"SMIME-CAPS\0";
1672pub const LN_SMIMECapabilities: &[u8; 20] = b"S/MIME Capabilities\0";
1673pub const NID_SMIMECapabilities: i32 = 167;
1674pub const SN_pbeWithMD2AndRC2_CBC: &[u8; 15] = b"PBE-MD2-RC2-64\0";
1675pub const LN_pbeWithMD2AndRC2_CBC: &[u8; 21] = b"pbeWithMD2AndRC2-CBC\0";
1676pub const NID_pbeWithMD2AndRC2_CBC: i32 = 168;
1677pub const SN_pbeWithMD5AndRC2_CBC: &[u8; 15] = b"PBE-MD5-RC2-64\0";
1678pub const LN_pbeWithMD5AndRC2_CBC: &[u8; 21] = b"pbeWithMD5AndRC2-CBC\0";
1679pub const NID_pbeWithMD5AndRC2_CBC: i32 = 169;
1680pub const SN_pbeWithSHA1AndDES_CBC: &[u8; 13] = b"PBE-SHA1-DES\0";
1681pub const LN_pbeWithSHA1AndDES_CBC: &[u8; 22] = b"pbeWithSHA1AndDES-CBC\0";
1682pub const NID_pbeWithSHA1AndDES_CBC: i32 = 170;
1683pub const SN_ms_ext_req: &[u8; 9] = b"msExtReq\0";
1684pub const LN_ms_ext_req: &[u8; 28] = b"Microsoft Extension Request\0";
1685pub const NID_ms_ext_req: i32 = 171;
1686pub const SN_ext_req: &[u8; 7] = b"extReq\0";
1687pub const LN_ext_req: &[u8; 18] = b"Extension Request\0";
1688pub const NID_ext_req: i32 = 172;
1689pub const SN_name: &[u8; 5] = b"name\0";
1690pub const LN_name: &[u8; 5] = b"name\0";
1691pub const NID_name: i32 = 173;
1692pub const SN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1693pub const LN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1694pub const NID_dnQualifier: i32 = 174;
1695pub const SN_id_pe: &[u8; 6] = b"id-pe\0";
1696pub const NID_id_pe: i32 = 175;
1697pub const SN_id_ad: &[u8; 6] = b"id-ad\0";
1698pub const NID_id_ad: i32 = 176;
1699pub const SN_info_access: &[u8; 20] = b"authorityInfoAccess\0";
1700pub const LN_info_access: &[u8; 29] = b"Authority Information Access\0";
1701pub const NID_info_access: i32 = 177;
1702pub const SN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1703pub const LN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1704pub const NID_ad_OCSP: i32 = 178;
1705pub const SN_ad_ca_issuers: &[u8; 10] = b"caIssuers\0";
1706pub const LN_ad_ca_issuers: &[u8; 11] = b"CA Issuers\0";
1707pub const NID_ad_ca_issuers: i32 = 179;
1708pub const SN_OCSP_sign: &[u8; 12] = b"OCSPSigning\0";
1709pub const LN_OCSP_sign: &[u8; 13] = b"OCSP Signing\0";
1710pub const NID_OCSP_sign: i32 = 180;
1711pub const SN_iso: &[u8; 4] = b"ISO\0";
1712pub const LN_iso: &[u8; 4] = b"iso\0";
1713pub const NID_iso: i32 = 181;
1714pub const OBJ_iso: i32 = 1;
1715pub const SN_member_body: &[u8; 12] = b"member-body\0";
1716pub const LN_member_body: &[u8; 16] = b"ISO Member Body\0";
1717pub const NID_member_body: i32 = 182;
1718pub const OBJ_ENC_member_body: i32 = 42;
1719pub const SN_ISO_US: &[u8; 7] = b"ISO-US\0";
1720pub const LN_ISO_US: &[u8; 19] = b"ISO US Member Body\0";
1721pub const NID_ISO_US: i32 = 183;
1722pub const SN_X9_57: &[u8; 6] = b"X9-57\0";
1723pub const LN_X9_57: &[u8; 6] = b"X9.57\0";
1724pub const NID_X9_57: i32 = 184;
1725pub const SN_X9cm: &[u8; 5] = b"X9cm\0";
1726pub const LN_X9cm: &[u8; 11] = b"X9.57 CM ?\0";
1727pub const NID_X9cm: i32 = 185;
1728pub const SN_pkcs1: &[u8; 6] = b"pkcs1\0";
1729pub const NID_pkcs1: i32 = 186;
1730pub const SN_pkcs5: &[u8; 6] = b"pkcs5\0";
1731pub const NID_pkcs5: i32 = 187;
1732pub const SN_SMIME: &[u8; 6] = b"SMIME\0";
1733pub const LN_SMIME: &[u8; 7] = b"S/MIME\0";
1734pub const NID_SMIME: i32 = 188;
1735pub const SN_id_smime_mod: &[u8; 13] = b"id-smime-mod\0";
1736pub const NID_id_smime_mod: i32 = 189;
1737pub const SN_id_smime_ct: &[u8; 12] = b"id-smime-ct\0";
1738pub const NID_id_smime_ct: i32 = 190;
1739pub const SN_id_smime_aa: &[u8; 12] = b"id-smime-aa\0";
1740pub const NID_id_smime_aa: i32 = 191;
1741pub const SN_id_smime_alg: &[u8; 13] = b"id-smime-alg\0";
1742pub const NID_id_smime_alg: i32 = 192;
1743pub const SN_id_smime_cd: &[u8; 12] = b"id-smime-cd\0";
1744pub const NID_id_smime_cd: i32 = 193;
1745pub const SN_id_smime_spq: &[u8; 13] = b"id-smime-spq\0";
1746pub const NID_id_smime_spq: i32 = 194;
1747pub const SN_id_smime_cti: &[u8; 13] = b"id-smime-cti\0";
1748pub const NID_id_smime_cti: i32 = 195;
1749pub const SN_id_smime_mod_cms: &[u8; 17] = b"id-smime-mod-cms\0";
1750pub const NID_id_smime_mod_cms: i32 = 196;
1751pub const SN_id_smime_mod_ess: &[u8; 17] = b"id-smime-mod-ess\0";
1752pub const NID_id_smime_mod_ess: i32 = 197;
1753pub const SN_id_smime_mod_oid: &[u8; 17] = b"id-smime-mod-oid\0";
1754pub const NID_id_smime_mod_oid: i32 = 198;
1755pub const SN_id_smime_mod_msg_v3: &[u8; 20] = b"id-smime-mod-msg-v3\0";
1756pub const NID_id_smime_mod_msg_v3: i32 = 199;
1757pub const SN_id_smime_mod_ets_eSignature_88: &[u8; 31] = b"id-smime-mod-ets-eSignature-88\0";
1758pub const NID_id_smime_mod_ets_eSignature_88: i32 = 200;
1759pub const SN_id_smime_mod_ets_eSignature_97: &[u8; 31] = b"id-smime-mod-ets-eSignature-97\0";
1760pub const NID_id_smime_mod_ets_eSignature_97: i32 = 201;
1761pub const SN_id_smime_mod_ets_eSigPolicy_88: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-88\0";
1762pub const NID_id_smime_mod_ets_eSigPolicy_88: i32 = 202;
1763pub const SN_id_smime_mod_ets_eSigPolicy_97: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-97\0";
1764pub const NID_id_smime_mod_ets_eSigPolicy_97: i32 = 203;
1765pub const SN_id_smime_ct_receipt: &[u8; 20] = b"id-smime-ct-receipt\0";
1766pub const NID_id_smime_ct_receipt: i32 = 204;
1767pub const SN_id_smime_ct_authData: &[u8; 21] = b"id-smime-ct-authData\0";
1768pub const NID_id_smime_ct_authData: i32 = 205;
1769pub const SN_id_smime_ct_publishCert: &[u8; 24] = b"id-smime-ct-publishCert\0";
1770pub const NID_id_smime_ct_publishCert: i32 = 206;
1771pub const SN_id_smime_ct_TSTInfo: &[u8; 20] = b"id-smime-ct-TSTInfo\0";
1772pub const NID_id_smime_ct_TSTInfo: i32 = 207;
1773pub const SN_id_smime_ct_TDTInfo: &[u8; 20] = b"id-smime-ct-TDTInfo\0";
1774pub const NID_id_smime_ct_TDTInfo: i32 = 208;
1775pub const SN_id_smime_ct_contentInfo: &[u8; 24] = b"id-smime-ct-contentInfo\0";
1776pub const NID_id_smime_ct_contentInfo: i32 = 209;
1777pub const SN_id_smime_ct_DVCSRequestData: &[u8; 28] = b"id-smime-ct-DVCSRequestData\0";
1778pub const NID_id_smime_ct_DVCSRequestData: i32 = 210;
1779pub const SN_id_smime_ct_DVCSResponseData: &[u8; 29] = b"id-smime-ct-DVCSResponseData\0";
1780pub const NID_id_smime_ct_DVCSResponseData: i32 = 211;
1781pub const SN_id_smime_aa_receiptRequest: &[u8; 27] = b"id-smime-aa-receiptRequest\0";
1782pub const NID_id_smime_aa_receiptRequest: i32 = 212;
1783pub const SN_id_smime_aa_securityLabel: &[u8; 26] = b"id-smime-aa-securityLabel\0";
1784pub const NID_id_smime_aa_securityLabel: i32 = 213;
1785pub const SN_id_smime_aa_mlExpandHistory: &[u8; 28] = b"id-smime-aa-mlExpandHistory\0";
1786pub const NID_id_smime_aa_mlExpandHistory: i32 = 214;
1787pub const SN_id_smime_aa_contentHint: &[u8; 24] = b"id-smime-aa-contentHint\0";
1788pub const NID_id_smime_aa_contentHint: i32 = 215;
1789pub const SN_id_smime_aa_msgSigDigest: &[u8; 25] = b"id-smime-aa-msgSigDigest\0";
1790pub const NID_id_smime_aa_msgSigDigest: i32 = 216;
1791pub const SN_id_smime_aa_encapContentType: &[u8; 29] = b"id-smime-aa-encapContentType\0";
1792pub const NID_id_smime_aa_encapContentType: i32 = 217;
1793pub const SN_id_smime_aa_contentIdentifier: &[u8; 30] = b"id-smime-aa-contentIdentifier\0";
1794pub const NID_id_smime_aa_contentIdentifier: i32 = 218;
1795pub const SN_id_smime_aa_macValue: &[u8; 21] = b"id-smime-aa-macValue\0";
1796pub const NID_id_smime_aa_macValue: i32 = 219;
1797pub const SN_id_smime_aa_equivalentLabels: &[u8; 29] = b"id-smime-aa-equivalentLabels\0";
1798pub const NID_id_smime_aa_equivalentLabels: i32 = 220;
1799pub const SN_id_smime_aa_contentReference: &[u8; 29] = b"id-smime-aa-contentReference\0";
1800pub const NID_id_smime_aa_contentReference: i32 = 221;
1801pub const SN_id_smime_aa_encrypKeyPref: &[u8; 26] = b"id-smime-aa-encrypKeyPref\0";
1802pub const NID_id_smime_aa_encrypKeyPref: i32 = 222;
1803pub const SN_id_smime_aa_signingCertificate: &[u8; 31] = b"id-smime-aa-signingCertificate\0";
1804pub const NID_id_smime_aa_signingCertificate: i32 = 223;
1805pub const SN_id_smime_aa_smimeEncryptCerts: &[u8; 30] = b"id-smime-aa-smimeEncryptCerts\0";
1806pub const NID_id_smime_aa_smimeEncryptCerts: i32 = 224;
1807pub const SN_id_smime_aa_timeStampToken: &[u8; 27] = b"id-smime-aa-timeStampToken\0";
1808pub const NID_id_smime_aa_timeStampToken: i32 = 225;
1809pub const SN_id_smime_aa_ets_sigPolicyId: &[u8; 28] = b"id-smime-aa-ets-sigPolicyId\0";
1810pub const NID_id_smime_aa_ets_sigPolicyId: i32 = 226;
1811pub const SN_id_smime_aa_ets_commitmentType: &[u8; 31] = b"id-smime-aa-ets-commitmentType\0";
1812pub const NID_id_smime_aa_ets_commitmentType: i32 = 227;
1813pub const SN_id_smime_aa_ets_signerLocation: &[u8; 31] = b"id-smime-aa-ets-signerLocation\0";
1814pub const NID_id_smime_aa_ets_signerLocation: i32 = 228;
1815pub const SN_id_smime_aa_ets_signerAttr: &[u8; 27] = b"id-smime-aa-ets-signerAttr\0";
1816pub const NID_id_smime_aa_ets_signerAttr: i32 = 229;
1817pub const SN_id_smime_aa_ets_otherSigCert: &[u8; 29] = b"id-smime-aa-ets-otherSigCert\0";
1818pub const NID_id_smime_aa_ets_otherSigCert: i32 = 230;
1819pub const SN_id_smime_aa_ets_contentTimestamp: &[u8; 33] = b"id-smime-aa-ets-contentTimestamp\0";
1820pub const NID_id_smime_aa_ets_contentTimestamp: i32 = 231;
1821pub const SN_id_smime_aa_ets_CertificateRefs: &[u8; 32] = b"id-smime-aa-ets-CertificateRefs\0";
1822pub const NID_id_smime_aa_ets_CertificateRefs: i32 = 232;
1823pub const SN_id_smime_aa_ets_RevocationRefs: &[u8; 31] = b"id-smime-aa-ets-RevocationRefs\0";
1824pub const NID_id_smime_aa_ets_RevocationRefs: i32 = 233;
1825pub const SN_id_smime_aa_ets_certValues: &[u8; 27] = b"id-smime-aa-ets-certValues\0";
1826pub const NID_id_smime_aa_ets_certValues: i32 = 234;
1827pub const SN_id_smime_aa_ets_revocationValues: &[u8; 33] = b"id-smime-aa-ets-revocationValues\0";
1828pub const NID_id_smime_aa_ets_revocationValues: i32 = 235;
1829pub const SN_id_smime_aa_ets_escTimeStamp: &[u8; 29] = b"id-smime-aa-ets-escTimeStamp\0";
1830pub const NID_id_smime_aa_ets_escTimeStamp: i32 = 236;
1831pub const SN_id_smime_aa_ets_certCRLTimestamp: &[u8; 33] = b"id-smime-aa-ets-certCRLTimestamp\0";
1832pub const NID_id_smime_aa_ets_certCRLTimestamp: i32 = 237;
1833pub const SN_id_smime_aa_ets_archiveTimeStamp: &[u8; 33] = b"id-smime-aa-ets-archiveTimeStamp\0";
1834pub const NID_id_smime_aa_ets_archiveTimeStamp: i32 = 238;
1835pub const SN_id_smime_aa_signatureType: &[u8; 26] = b"id-smime-aa-signatureType\0";
1836pub const NID_id_smime_aa_signatureType: i32 = 239;
1837pub const SN_id_smime_aa_dvcs_dvc: &[u8; 21] = b"id-smime-aa-dvcs-dvc\0";
1838pub const NID_id_smime_aa_dvcs_dvc: i32 = 240;
1839pub const SN_id_smime_alg_ESDHwith3DES: &[u8; 26] = b"id-smime-alg-ESDHwith3DES\0";
1840pub const NID_id_smime_alg_ESDHwith3DES: i32 = 241;
1841pub const SN_id_smime_alg_ESDHwithRC2: &[u8; 25] = b"id-smime-alg-ESDHwithRC2\0";
1842pub const NID_id_smime_alg_ESDHwithRC2: i32 = 242;
1843pub const SN_id_smime_alg_3DESwrap: &[u8; 22] = b"id-smime-alg-3DESwrap\0";
1844pub const NID_id_smime_alg_3DESwrap: i32 = 243;
1845pub const SN_id_smime_alg_RC2wrap: &[u8; 21] = b"id-smime-alg-RC2wrap\0";
1846pub const NID_id_smime_alg_RC2wrap: i32 = 244;
1847pub const SN_id_smime_alg_ESDH: &[u8; 18] = b"id-smime-alg-ESDH\0";
1848pub const NID_id_smime_alg_ESDH: i32 = 245;
1849pub const SN_id_smime_alg_CMS3DESwrap: &[u8; 25] = b"id-smime-alg-CMS3DESwrap\0";
1850pub const NID_id_smime_alg_CMS3DESwrap: i32 = 246;
1851pub const SN_id_smime_alg_CMSRC2wrap: &[u8; 24] = b"id-smime-alg-CMSRC2wrap\0";
1852pub const NID_id_smime_alg_CMSRC2wrap: i32 = 247;
1853pub const SN_id_smime_cd_ldap: &[u8; 17] = b"id-smime-cd-ldap\0";
1854pub const NID_id_smime_cd_ldap: i32 = 248;
1855pub const SN_id_smime_spq_ets_sqt_uri: &[u8; 25] = b"id-smime-spq-ets-sqt-uri\0";
1856pub const NID_id_smime_spq_ets_sqt_uri: i32 = 249;
1857pub const SN_id_smime_spq_ets_sqt_unotice: &[u8; 29] = b"id-smime-spq-ets-sqt-unotice\0";
1858pub const NID_id_smime_spq_ets_sqt_unotice: i32 = 250;
1859pub const SN_id_smime_cti_ets_proofOfOrigin: &[u8; 31] = b"id-smime-cti-ets-proofOfOrigin\0";
1860pub const NID_id_smime_cti_ets_proofOfOrigin: i32 = 251;
1861pub const SN_id_smime_cti_ets_proofOfReceipt: &[u8; 32] = b"id-smime-cti-ets-proofOfReceipt\0";
1862pub const NID_id_smime_cti_ets_proofOfReceipt: i32 = 252;
1863pub const SN_id_smime_cti_ets_proofOfDelivery: &[u8; 33] = b"id-smime-cti-ets-proofOfDelivery\0";
1864pub const NID_id_smime_cti_ets_proofOfDelivery: i32 = 253;
1865pub const SN_id_smime_cti_ets_proofOfSender: &[u8; 31] = b"id-smime-cti-ets-proofOfSender\0";
1866pub const NID_id_smime_cti_ets_proofOfSender: i32 = 254;
1867pub const SN_id_smime_cti_ets_proofOfApproval: &[u8; 33] = b"id-smime-cti-ets-proofOfApproval\0";
1868pub const NID_id_smime_cti_ets_proofOfApproval: i32 = 255;
1869pub const SN_id_smime_cti_ets_proofOfCreation: &[u8; 33] = b"id-smime-cti-ets-proofOfCreation\0";
1870pub const NID_id_smime_cti_ets_proofOfCreation: i32 = 256;
1871pub const SN_md4: &[u8; 4] = b"MD4\0";
1872pub const LN_md4: &[u8; 4] = b"md4\0";
1873pub const NID_md4: i32 = 257;
1874pub const SN_id_pkix_mod: &[u8; 12] = b"id-pkix-mod\0";
1875pub const NID_id_pkix_mod: i32 = 258;
1876pub const SN_id_qt: &[u8; 6] = b"id-qt\0";
1877pub const NID_id_qt: i32 = 259;
1878pub const SN_id_it: &[u8; 6] = b"id-it\0";
1879pub const NID_id_it: i32 = 260;
1880pub const SN_id_pkip: &[u8; 8] = b"id-pkip\0";
1881pub const NID_id_pkip: i32 = 261;
1882pub const SN_id_alg: &[u8; 7] = b"id-alg\0";
1883pub const NID_id_alg: i32 = 262;
1884pub const SN_id_cmc: &[u8; 7] = b"id-cmc\0";
1885pub const NID_id_cmc: i32 = 263;
1886pub const SN_id_on: &[u8; 6] = b"id-on\0";
1887pub const NID_id_on: i32 = 264;
1888pub const SN_id_pda: &[u8; 7] = b"id-pda\0";
1889pub const NID_id_pda: i32 = 265;
1890pub const SN_id_aca: &[u8; 7] = b"id-aca\0";
1891pub const NID_id_aca: i32 = 266;
1892pub const SN_id_qcs: &[u8; 7] = b"id-qcs\0";
1893pub const NID_id_qcs: i32 = 267;
1894pub const SN_id_cct: &[u8; 7] = b"id-cct\0";
1895pub const NID_id_cct: i32 = 268;
1896pub const SN_id_pkix1_explicit_88: &[u8; 21] = b"id-pkix1-explicit-88\0";
1897pub const NID_id_pkix1_explicit_88: i32 = 269;
1898pub const SN_id_pkix1_implicit_88: &[u8; 21] = b"id-pkix1-implicit-88\0";
1899pub const NID_id_pkix1_implicit_88: i32 = 270;
1900pub const SN_id_pkix1_explicit_93: &[u8; 21] = b"id-pkix1-explicit-93\0";
1901pub const NID_id_pkix1_explicit_93: i32 = 271;
1902pub const SN_id_pkix1_implicit_93: &[u8; 21] = b"id-pkix1-implicit-93\0";
1903pub const NID_id_pkix1_implicit_93: i32 = 272;
1904pub const SN_id_mod_crmf: &[u8; 12] = b"id-mod-crmf\0";
1905pub const NID_id_mod_crmf: i32 = 273;
1906pub const SN_id_mod_cmc: &[u8; 11] = b"id-mod-cmc\0";
1907pub const NID_id_mod_cmc: i32 = 274;
1908pub const SN_id_mod_kea_profile_88: &[u8; 22] = b"id-mod-kea-profile-88\0";
1909pub const NID_id_mod_kea_profile_88: i32 = 275;
1910pub const SN_id_mod_kea_profile_93: &[u8; 22] = b"id-mod-kea-profile-93\0";
1911pub const NID_id_mod_kea_profile_93: i32 = 276;
1912pub const SN_id_mod_cmp: &[u8; 11] = b"id-mod-cmp\0";
1913pub const NID_id_mod_cmp: i32 = 277;
1914pub const SN_id_mod_qualified_cert_88: &[u8; 25] = b"id-mod-qualified-cert-88\0";
1915pub const NID_id_mod_qualified_cert_88: i32 = 278;
1916pub const SN_id_mod_qualified_cert_93: &[u8; 25] = b"id-mod-qualified-cert-93\0";
1917pub const NID_id_mod_qualified_cert_93: i32 = 279;
1918pub const SN_id_mod_attribute_cert: &[u8; 22] = b"id-mod-attribute-cert\0";
1919pub const NID_id_mod_attribute_cert: i32 = 280;
1920pub const SN_id_mod_timestamp_protocol: &[u8; 26] = b"id-mod-timestamp-protocol\0";
1921pub const NID_id_mod_timestamp_protocol: i32 = 281;
1922pub const SN_id_mod_ocsp: &[u8; 12] = b"id-mod-ocsp\0";
1923pub const NID_id_mod_ocsp: i32 = 282;
1924pub const SN_id_mod_dvcs: &[u8; 12] = b"id-mod-dvcs\0";
1925pub const NID_id_mod_dvcs: i32 = 283;
1926pub const SN_id_mod_cmp2000: &[u8; 15] = b"id-mod-cmp2000\0";
1927pub const NID_id_mod_cmp2000: i32 = 284;
1928pub const SN_biometricInfo: &[u8; 14] = b"biometricInfo\0";
1929pub const LN_biometricInfo: &[u8; 15] = b"Biometric Info\0";
1930pub const NID_biometricInfo: i32 = 285;
1931pub const SN_qcStatements: &[u8; 13] = b"qcStatements\0";
1932pub const NID_qcStatements: i32 = 286;
1933pub const SN_ac_auditEntity: &[u8; 15] = b"ac-auditEntity\0";
1934pub const NID_ac_auditEntity: i32 = 287;
1935pub const SN_ac_targeting: &[u8; 13] = b"ac-targeting\0";
1936pub const NID_ac_targeting: i32 = 288;
1937pub const SN_aaControls: &[u8; 11] = b"aaControls\0";
1938pub const NID_aaControls: i32 = 289;
1939pub const SN_sbgp_ipAddrBlock: &[u8; 17] = b"sbgp-ipAddrBlock\0";
1940pub const NID_sbgp_ipAddrBlock: i32 = 290;
1941pub const SN_sbgp_autonomousSysNum: &[u8; 22] = b"sbgp-autonomousSysNum\0";
1942pub const NID_sbgp_autonomousSysNum: i32 = 291;
1943pub const SN_sbgp_routerIdentifier: &[u8; 22] = b"sbgp-routerIdentifier\0";
1944pub const NID_sbgp_routerIdentifier: i32 = 292;
1945pub const SN_textNotice: &[u8; 11] = b"textNotice\0";
1946pub const NID_textNotice: i32 = 293;
1947pub const SN_ipsecEndSystem: &[u8; 15] = b"ipsecEndSystem\0";
1948pub const LN_ipsecEndSystem: &[u8; 17] = b"IPSec End System\0";
1949pub const NID_ipsecEndSystem: i32 = 294;
1950pub const SN_ipsecTunnel: &[u8; 12] = b"ipsecTunnel\0";
1951pub const LN_ipsecTunnel: &[u8; 13] = b"IPSec Tunnel\0";
1952pub const NID_ipsecTunnel: i32 = 295;
1953pub const SN_ipsecUser: &[u8; 10] = b"ipsecUser\0";
1954pub const LN_ipsecUser: &[u8; 11] = b"IPSec User\0";
1955pub const NID_ipsecUser: i32 = 296;
1956pub const SN_dvcs: &[u8; 5] = b"DVCS\0";
1957pub const LN_dvcs: &[u8; 5] = b"dvcs\0";
1958pub const NID_dvcs: i32 = 297;
1959pub const SN_id_it_caProtEncCert: &[u8; 20] = b"id-it-caProtEncCert\0";
1960pub const NID_id_it_caProtEncCert: i32 = 298;
1961pub const SN_id_it_signKeyPairTypes: &[u8; 23] = b"id-it-signKeyPairTypes\0";
1962pub const NID_id_it_signKeyPairTypes: i32 = 299;
1963pub const SN_id_it_encKeyPairTypes: &[u8; 22] = b"id-it-encKeyPairTypes\0";
1964pub const NID_id_it_encKeyPairTypes: i32 = 300;
1965pub const SN_id_it_preferredSymmAlg: &[u8; 23] = b"id-it-preferredSymmAlg\0";
1966pub const NID_id_it_preferredSymmAlg: i32 = 301;
1967pub const SN_id_it_caKeyUpdateInfo: &[u8; 22] = b"id-it-caKeyUpdateInfo\0";
1968pub const NID_id_it_caKeyUpdateInfo: i32 = 302;
1969pub const SN_id_it_currentCRL: &[u8; 17] = b"id-it-currentCRL\0";
1970pub const NID_id_it_currentCRL: i32 = 303;
1971pub const SN_id_it_unsupportedOIDs: &[u8; 22] = b"id-it-unsupportedOIDs\0";
1972pub const NID_id_it_unsupportedOIDs: i32 = 304;
1973pub const SN_id_it_subscriptionRequest: &[u8; 26] = b"id-it-subscriptionRequest\0";
1974pub const NID_id_it_subscriptionRequest: i32 = 305;
1975pub const SN_id_it_subscriptionResponse: &[u8; 27] = b"id-it-subscriptionResponse\0";
1976pub const NID_id_it_subscriptionResponse: i32 = 306;
1977pub const SN_id_it_keyPairParamReq: &[u8; 22] = b"id-it-keyPairParamReq\0";
1978pub const NID_id_it_keyPairParamReq: i32 = 307;
1979pub const SN_id_it_keyPairParamRep: &[u8; 22] = b"id-it-keyPairParamRep\0";
1980pub const NID_id_it_keyPairParamRep: i32 = 308;
1981pub const SN_id_it_revPassphrase: &[u8; 20] = b"id-it-revPassphrase\0";
1982pub const NID_id_it_revPassphrase: i32 = 309;
1983pub const SN_id_it_implicitConfirm: &[u8; 22] = b"id-it-implicitConfirm\0";
1984pub const NID_id_it_implicitConfirm: i32 = 310;
1985pub const SN_id_it_confirmWaitTime: &[u8; 22] = b"id-it-confirmWaitTime\0";
1986pub const NID_id_it_confirmWaitTime: i32 = 311;
1987pub const SN_id_it_origPKIMessage: &[u8; 21] = b"id-it-origPKIMessage\0";
1988pub const NID_id_it_origPKIMessage: i32 = 312;
1989pub const SN_id_regCtrl: &[u8; 11] = b"id-regCtrl\0";
1990pub const NID_id_regCtrl: i32 = 313;
1991pub const SN_id_regInfo: &[u8; 11] = b"id-regInfo\0";
1992pub const NID_id_regInfo: i32 = 314;
1993pub const SN_id_regCtrl_regToken: &[u8; 20] = b"id-regCtrl-regToken\0";
1994pub const NID_id_regCtrl_regToken: i32 = 315;
1995pub const SN_id_regCtrl_authenticator: &[u8; 25] = b"id-regCtrl-authenticator\0";
1996pub const NID_id_regCtrl_authenticator: i32 = 316;
1997pub const SN_id_regCtrl_pkiPublicationInfo: &[u8; 30] = b"id-regCtrl-pkiPublicationInfo\0";
1998pub const NID_id_regCtrl_pkiPublicationInfo: i32 = 317;
1999pub const SN_id_regCtrl_pkiArchiveOptions: &[u8; 29] = b"id-regCtrl-pkiArchiveOptions\0";
2000pub const NID_id_regCtrl_pkiArchiveOptions: i32 = 318;
2001pub const SN_id_regCtrl_oldCertID: &[u8; 21] = b"id-regCtrl-oldCertID\0";
2002pub const NID_id_regCtrl_oldCertID: i32 = 319;
2003pub const SN_id_regCtrl_protocolEncrKey: &[u8; 27] = b"id-regCtrl-protocolEncrKey\0";
2004pub const NID_id_regCtrl_protocolEncrKey: i32 = 320;
2005pub const SN_id_regInfo_utf8Pairs: &[u8; 21] = b"id-regInfo-utf8Pairs\0";
2006pub const NID_id_regInfo_utf8Pairs: i32 = 321;
2007pub const SN_id_regInfo_certReq: &[u8; 19] = b"id-regInfo-certReq\0";
2008pub const NID_id_regInfo_certReq: i32 = 322;
2009pub const SN_id_alg_des40: &[u8; 13] = b"id-alg-des40\0";
2010pub const NID_id_alg_des40: i32 = 323;
2011pub const SN_id_alg_noSignature: &[u8; 19] = b"id-alg-noSignature\0";
2012pub const NID_id_alg_noSignature: i32 = 324;
2013pub const SN_id_alg_dh_sig_hmac_sha1: &[u8; 24] = b"id-alg-dh-sig-hmac-sha1\0";
2014pub const NID_id_alg_dh_sig_hmac_sha1: i32 = 325;
2015pub const SN_id_alg_dh_pop: &[u8; 14] = b"id-alg-dh-pop\0";
2016pub const NID_id_alg_dh_pop: i32 = 326;
2017pub const SN_id_cmc_statusInfo: &[u8; 18] = b"id-cmc-statusInfo\0";
2018pub const NID_id_cmc_statusInfo: i32 = 327;
2019pub const SN_id_cmc_identification: &[u8; 22] = b"id-cmc-identification\0";
2020pub const NID_id_cmc_identification: i32 = 328;
2021pub const SN_id_cmc_identityProof: &[u8; 21] = b"id-cmc-identityProof\0";
2022pub const NID_id_cmc_identityProof: i32 = 329;
2023pub const SN_id_cmc_dataReturn: &[u8; 18] = b"id-cmc-dataReturn\0";
2024pub const NID_id_cmc_dataReturn: i32 = 330;
2025pub const SN_id_cmc_transactionId: &[u8; 21] = b"id-cmc-transactionId\0";
2026pub const NID_id_cmc_transactionId: i32 = 331;
2027pub const SN_id_cmc_senderNonce: &[u8; 19] = b"id-cmc-senderNonce\0";
2028pub const NID_id_cmc_senderNonce: i32 = 332;
2029pub const SN_id_cmc_recipientNonce: &[u8; 22] = b"id-cmc-recipientNonce\0";
2030pub const NID_id_cmc_recipientNonce: i32 = 333;
2031pub const SN_id_cmc_addExtensions: &[u8; 21] = b"id-cmc-addExtensions\0";
2032pub const NID_id_cmc_addExtensions: i32 = 334;
2033pub const SN_id_cmc_encryptedPOP: &[u8; 20] = b"id-cmc-encryptedPOP\0";
2034pub const NID_id_cmc_encryptedPOP: i32 = 335;
2035pub const SN_id_cmc_decryptedPOP: &[u8; 20] = b"id-cmc-decryptedPOP\0";
2036pub const NID_id_cmc_decryptedPOP: i32 = 336;
2037pub const SN_id_cmc_lraPOPWitness: &[u8; 21] = b"id-cmc-lraPOPWitness\0";
2038pub const NID_id_cmc_lraPOPWitness: i32 = 337;
2039pub const SN_id_cmc_getCert: &[u8; 15] = b"id-cmc-getCert\0";
2040pub const NID_id_cmc_getCert: i32 = 338;
2041pub const SN_id_cmc_getCRL: &[u8; 14] = b"id-cmc-getCRL\0";
2042pub const NID_id_cmc_getCRL: i32 = 339;
2043pub const SN_id_cmc_revokeRequest: &[u8; 21] = b"id-cmc-revokeRequest\0";
2044pub const NID_id_cmc_revokeRequest: i32 = 340;
2045pub const SN_id_cmc_regInfo: &[u8; 15] = b"id-cmc-regInfo\0";
2046pub const NID_id_cmc_regInfo: i32 = 341;
2047pub const SN_id_cmc_responseInfo: &[u8; 20] = b"id-cmc-responseInfo\0";
2048pub const NID_id_cmc_responseInfo: i32 = 342;
2049pub const SN_id_cmc_queryPending: &[u8; 20] = b"id-cmc-queryPending\0";
2050pub const NID_id_cmc_queryPending: i32 = 343;
2051pub const SN_id_cmc_popLinkRandom: &[u8; 21] = b"id-cmc-popLinkRandom\0";
2052pub const NID_id_cmc_popLinkRandom: i32 = 344;
2053pub const SN_id_cmc_popLinkWitness: &[u8; 22] = b"id-cmc-popLinkWitness\0";
2054pub const NID_id_cmc_popLinkWitness: i32 = 345;
2055pub const SN_id_cmc_confirmCertAcceptance: &[u8; 29] = b"id-cmc-confirmCertAcceptance\0";
2056pub const NID_id_cmc_confirmCertAcceptance: i32 = 346;
2057pub const SN_id_on_personalData: &[u8; 19] = b"id-on-personalData\0";
2058pub const NID_id_on_personalData: i32 = 347;
2059pub const SN_id_pda_dateOfBirth: &[u8; 19] = b"id-pda-dateOfBirth\0";
2060pub const NID_id_pda_dateOfBirth: i32 = 348;
2061pub const SN_id_pda_placeOfBirth: &[u8; 20] = b"id-pda-placeOfBirth\0";
2062pub const NID_id_pda_placeOfBirth: i32 = 349;
2063pub const SN_id_pda_gender: &[u8; 14] = b"id-pda-gender\0";
2064pub const NID_id_pda_gender: i32 = 351;
2065pub const SN_id_pda_countryOfCitizenship: &[u8; 28] = b"id-pda-countryOfCitizenship\0";
2066pub const NID_id_pda_countryOfCitizenship: i32 = 352;
2067pub const SN_id_pda_countryOfResidence: &[u8; 26] = b"id-pda-countryOfResidence\0";
2068pub const NID_id_pda_countryOfResidence: i32 = 353;
2069pub const SN_id_aca_authenticationInfo: &[u8; 26] = b"id-aca-authenticationInfo\0";
2070pub const NID_id_aca_authenticationInfo: i32 = 354;
2071pub const SN_id_aca_accessIdentity: &[u8; 22] = b"id-aca-accessIdentity\0";
2072pub const NID_id_aca_accessIdentity: i32 = 355;
2073pub const SN_id_aca_chargingIdentity: &[u8; 24] = b"id-aca-chargingIdentity\0";
2074pub const NID_id_aca_chargingIdentity: i32 = 356;
2075pub const SN_id_aca_group: &[u8; 13] = b"id-aca-group\0";
2076pub const NID_id_aca_group: i32 = 357;
2077pub const SN_id_aca_role: &[u8; 12] = b"id-aca-role\0";
2078pub const NID_id_aca_role: i32 = 358;
2079pub const SN_id_qcs_pkixQCSyntax_v1: &[u8; 23] = b"id-qcs-pkixQCSyntax-v1\0";
2080pub const NID_id_qcs_pkixQCSyntax_v1: i32 = 359;
2081pub const SN_id_cct_crs: &[u8; 11] = b"id-cct-crs\0";
2082pub const NID_id_cct_crs: i32 = 360;
2083pub const SN_id_cct_PKIData: &[u8; 15] = b"id-cct-PKIData\0";
2084pub const NID_id_cct_PKIData: i32 = 361;
2085pub const SN_id_cct_PKIResponse: &[u8; 19] = b"id-cct-PKIResponse\0";
2086pub const NID_id_cct_PKIResponse: i32 = 362;
2087pub const SN_ad_timeStamping: &[u8; 16] = b"ad_timestamping\0";
2088pub const LN_ad_timeStamping: &[u8; 17] = b"AD Time Stamping\0";
2089pub const NID_ad_timeStamping: i32 = 363;
2090pub const SN_ad_dvcs: &[u8; 8] = b"AD_DVCS\0";
2091pub const LN_ad_dvcs: &[u8; 8] = b"ad dvcs\0";
2092pub const NID_ad_dvcs: i32 = 364;
2093pub const SN_id_pkix_OCSP_basic: &[u8; 18] = b"basicOCSPResponse\0";
2094pub const LN_id_pkix_OCSP_basic: &[u8; 20] = b"Basic OCSP Response\0";
2095pub const NID_id_pkix_OCSP_basic: i32 = 365;
2096pub const SN_id_pkix_OCSP_Nonce: &[u8; 6] = b"Nonce\0";
2097pub const LN_id_pkix_OCSP_Nonce: &[u8; 11] = b"OCSP Nonce\0";
2098pub const NID_id_pkix_OCSP_Nonce: i32 = 366;
2099pub const SN_id_pkix_OCSP_CrlID: &[u8; 6] = b"CrlID\0";
2100pub const LN_id_pkix_OCSP_CrlID: &[u8; 12] = b"OCSP CRL ID\0";
2101pub const NID_id_pkix_OCSP_CrlID: i32 = 367;
2102pub const SN_id_pkix_OCSP_acceptableResponses: &[u8; 20] = b"acceptableResponses\0";
2103pub const LN_id_pkix_OCSP_acceptableResponses: &[u8; 26] = b"Acceptable OCSP Responses\0";
2104pub const NID_id_pkix_OCSP_acceptableResponses: i32 = 368;
2105pub const SN_id_pkix_OCSP_noCheck: &[u8; 8] = b"noCheck\0";
2106pub const LN_id_pkix_OCSP_noCheck: &[u8; 14] = b"OCSP No Check\0";
2107pub const NID_id_pkix_OCSP_noCheck: i32 = 369;
2108pub const SN_id_pkix_OCSP_archiveCutoff: &[u8; 14] = b"archiveCutoff\0";
2109pub const LN_id_pkix_OCSP_archiveCutoff: &[u8; 20] = b"OCSP Archive Cutoff\0";
2110pub const NID_id_pkix_OCSP_archiveCutoff: i32 = 370;
2111pub const SN_id_pkix_OCSP_serviceLocator: &[u8; 15] = b"serviceLocator\0";
2112pub const LN_id_pkix_OCSP_serviceLocator: &[u8; 21] = b"OCSP Service Locator\0";
2113pub const NID_id_pkix_OCSP_serviceLocator: i32 = 371;
2114pub const SN_id_pkix_OCSP_extendedStatus: &[u8; 15] = b"extendedStatus\0";
2115pub const LN_id_pkix_OCSP_extendedStatus: &[u8; 21] = b"Extended OCSP Status\0";
2116pub const NID_id_pkix_OCSP_extendedStatus: i32 = 372;
2117pub const SN_id_pkix_OCSP_valid: &[u8; 6] = b"valid\0";
2118pub const NID_id_pkix_OCSP_valid: i32 = 373;
2119pub const SN_id_pkix_OCSP_path: &[u8; 5] = b"path\0";
2120pub const NID_id_pkix_OCSP_path: i32 = 374;
2121pub const SN_id_pkix_OCSP_trustRoot: &[u8; 10] = b"trustRoot\0";
2122pub const LN_id_pkix_OCSP_trustRoot: &[u8; 11] = b"Trust Root\0";
2123pub const NID_id_pkix_OCSP_trustRoot: i32 = 375;
2124pub const SN_algorithm: &[u8; 10] = b"algorithm\0";
2125pub const LN_algorithm: &[u8; 10] = b"algorithm\0";
2126pub const NID_algorithm: i32 = 376;
2127pub const SN_rsaSignature: &[u8; 13] = b"rsaSignature\0";
2128pub const NID_rsaSignature: i32 = 377;
2129pub const SN_X500algorithms: &[u8; 15] = b"X500algorithms\0";
2130pub const LN_X500algorithms: &[u8; 32] = b"directory services - algorithms\0";
2131pub const NID_X500algorithms: i32 = 378;
2132pub const SN_org: &[u8; 4] = b"ORG\0";
2133pub const LN_org: &[u8; 4] = b"org\0";
2134pub const NID_org: i32 = 379;
2135pub const OBJ_ENC_org: i32 = 43;
2136pub const SN_dod: &[u8; 4] = b"DOD\0";
2137pub const LN_dod: &[u8; 4] = b"dod\0";
2138pub const NID_dod: i32 = 380;
2139pub const SN_iana: &[u8; 5] = b"IANA\0";
2140pub const LN_iana: &[u8; 5] = b"iana\0";
2141pub const NID_iana: i32 = 381;
2142pub const SN_Directory: &[u8; 10] = b"directory\0";
2143pub const LN_Directory: &[u8; 10] = b"Directory\0";
2144pub const NID_Directory: i32 = 382;
2145pub const SN_Management: &[u8; 5] = b"mgmt\0";
2146pub const LN_Management: &[u8; 11] = b"Management\0";
2147pub const NID_Management: i32 = 383;
2148pub const SN_Experimental: &[u8; 13] = b"experimental\0";
2149pub const LN_Experimental: &[u8; 13] = b"Experimental\0";
2150pub const NID_Experimental: i32 = 384;
2151pub const SN_Private: &[u8; 8] = b"private\0";
2152pub const LN_Private: &[u8; 8] = b"Private\0";
2153pub const NID_Private: i32 = 385;
2154pub const SN_Security: &[u8; 9] = b"security\0";
2155pub const LN_Security: &[u8; 9] = b"Security\0";
2156pub const NID_Security: i32 = 386;
2157pub const SN_SNMPv2: &[u8; 7] = b"snmpv2\0";
2158pub const LN_SNMPv2: &[u8; 7] = b"SNMPv2\0";
2159pub const NID_SNMPv2: i32 = 387;
2160pub const LN_Mail: &[u8; 5] = b"Mail\0";
2161pub const NID_Mail: i32 = 388;
2162pub const SN_Enterprises: &[u8; 12] = b"enterprises\0";
2163pub const LN_Enterprises: &[u8; 12] = b"Enterprises\0";
2164pub const NID_Enterprises: i32 = 389;
2165pub const SN_dcObject: &[u8; 9] = b"dcobject\0";
2166pub const LN_dcObject: &[u8; 9] = b"dcObject\0";
2167pub const NID_dcObject: i32 = 390;
2168pub const SN_domainComponent: &[u8; 3] = b"DC\0";
2169pub const LN_domainComponent: &[u8; 16] = b"domainComponent\0";
2170pub const NID_domainComponent: i32 = 391;
2171pub const SN_Domain: &[u8; 7] = b"domain\0";
2172pub const LN_Domain: &[u8; 7] = b"Domain\0";
2173pub const NID_Domain: i32 = 392;
2174pub const SN_selected_attribute_types: &[u8; 25] = b"selected-attribute-types\0";
2175pub const LN_selected_attribute_types: &[u8; 25] = b"Selected Attribute Types\0";
2176pub const NID_selected_attribute_types: i32 = 394;
2177pub const SN_clearance: &[u8; 10] = b"clearance\0";
2178pub const NID_clearance: i32 = 395;
2179pub const SN_md4WithRSAEncryption: &[u8; 8] = b"RSA-MD4\0";
2180pub const LN_md4WithRSAEncryption: &[u8; 21] = b"md4WithRSAEncryption\0";
2181pub const NID_md4WithRSAEncryption: i32 = 396;
2182pub const SN_ac_proxying: &[u8; 12] = b"ac-proxying\0";
2183pub const NID_ac_proxying: i32 = 397;
2184pub const SN_sinfo_access: &[u8; 18] = b"subjectInfoAccess\0";
2185pub const LN_sinfo_access: &[u8; 27] = b"Subject Information Access\0";
2186pub const NID_sinfo_access: i32 = 398;
2187pub const SN_id_aca_encAttrs: &[u8; 16] = b"id-aca-encAttrs\0";
2188pub const NID_id_aca_encAttrs: i32 = 399;
2189pub const SN_role: &[u8; 5] = b"role\0";
2190pub const LN_role: &[u8; 5] = b"role\0";
2191pub const NID_role: i32 = 400;
2192pub const SN_policy_constraints: &[u8; 18] = b"policyConstraints\0";
2193pub const LN_policy_constraints: &[u8; 26] = b"X509v3 Policy Constraints\0";
2194pub const NID_policy_constraints: i32 = 401;
2195pub const SN_target_information: &[u8; 18] = b"targetInformation\0";
2196pub const LN_target_information: &[u8; 20] = b"X509v3 AC Targeting\0";
2197pub const NID_target_information: i32 = 402;
2198pub const SN_no_rev_avail: &[u8; 11] = b"noRevAvail\0";
2199pub const LN_no_rev_avail: &[u8; 31] = b"X509v3 No Revocation Available\0";
2200pub const NID_no_rev_avail: i32 = 403;
2201pub const SN_ansi_X9_62: &[u8; 11] = b"ansi-X9-62\0";
2202pub const LN_ansi_X9_62: &[u8; 11] = b"ANSI X9.62\0";
2203pub const NID_ansi_X9_62: i32 = 405;
2204pub const SN_X9_62_prime_field: &[u8; 12] = b"prime-field\0";
2205pub const NID_X9_62_prime_field: i32 = 406;
2206pub const SN_X9_62_characteristic_two_field: &[u8; 25] = b"characteristic-two-field\0";
2207pub const NID_X9_62_characteristic_two_field: i32 = 407;
2208pub const SN_X9_62_id_ecPublicKey: &[u8; 15] = b"id-ecPublicKey\0";
2209pub const NID_X9_62_id_ecPublicKey: i32 = 408;
2210pub const SN_X9_62_prime192v1: &[u8; 11] = b"prime192v1\0";
2211pub const NID_X9_62_prime192v1: i32 = 409;
2212pub const SN_X9_62_prime192v2: &[u8; 11] = b"prime192v2\0";
2213pub const NID_X9_62_prime192v2: i32 = 410;
2214pub const SN_X9_62_prime192v3: &[u8; 11] = b"prime192v3\0";
2215pub const NID_X9_62_prime192v3: i32 = 411;
2216pub const SN_X9_62_prime239v1: &[u8; 11] = b"prime239v1\0";
2217pub const NID_X9_62_prime239v1: i32 = 412;
2218pub const SN_X9_62_prime239v2: &[u8; 11] = b"prime239v2\0";
2219pub const NID_X9_62_prime239v2: i32 = 413;
2220pub const SN_X9_62_prime239v3: &[u8; 11] = b"prime239v3\0";
2221pub const NID_X9_62_prime239v3: i32 = 414;
2222pub const SN_X9_62_prime256v1: &[u8; 11] = b"prime256v1\0";
2223pub const NID_X9_62_prime256v1: i32 = 415;
2224pub const SN_ecdsa_with_SHA1: &[u8; 16] = b"ecdsa-with-SHA1\0";
2225pub const NID_ecdsa_with_SHA1: i32 = 416;
2226pub const SN_ms_csp_name: &[u8; 8] = b"CSPName\0";
2227pub const LN_ms_csp_name: &[u8; 19] = b"Microsoft CSP Name\0";
2228pub const NID_ms_csp_name: i32 = 417;
2229pub const SN_aes_128_ecb: &[u8; 12] = b"AES-128-ECB\0";
2230pub const LN_aes_128_ecb: &[u8; 12] = b"aes-128-ecb\0";
2231pub const NID_aes_128_ecb: i32 = 418;
2232pub const SN_aes_128_cbc: &[u8; 12] = b"AES-128-CBC\0";
2233pub const LN_aes_128_cbc: &[u8; 12] = b"aes-128-cbc\0";
2234pub const NID_aes_128_cbc: i32 = 419;
2235pub const SN_aes_128_ofb128: &[u8; 12] = b"AES-128-OFB\0";
2236pub const LN_aes_128_ofb128: &[u8; 12] = b"aes-128-ofb\0";
2237pub const NID_aes_128_ofb128: i32 = 420;
2238pub const SN_aes_128_cfb128: &[u8; 12] = b"AES-128-CFB\0";
2239pub const LN_aes_128_cfb128: &[u8; 12] = b"aes-128-cfb\0";
2240pub const NID_aes_128_cfb128: i32 = 421;
2241pub const SN_aes_192_ecb: &[u8; 12] = b"AES-192-ECB\0";
2242pub const LN_aes_192_ecb: &[u8; 12] = b"aes-192-ecb\0";
2243pub const NID_aes_192_ecb: i32 = 422;
2244pub const SN_aes_192_cbc: &[u8; 12] = b"AES-192-CBC\0";
2245pub const LN_aes_192_cbc: &[u8; 12] = b"aes-192-cbc\0";
2246pub const NID_aes_192_cbc: i32 = 423;
2247pub const SN_aes_192_ofb128: &[u8; 12] = b"AES-192-OFB\0";
2248pub const LN_aes_192_ofb128: &[u8; 12] = b"aes-192-ofb\0";
2249pub const NID_aes_192_ofb128: i32 = 424;
2250pub const SN_aes_192_cfb128: &[u8; 12] = b"AES-192-CFB\0";
2251pub const LN_aes_192_cfb128: &[u8; 12] = b"aes-192-cfb\0";
2252pub const NID_aes_192_cfb128: i32 = 425;
2253pub const SN_aes_256_ecb: &[u8; 12] = b"AES-256-ECB\0";
2254pub const LN_aes_256_ecb: &[u8; 12] = b"aes-256-ecb\0";
2255pub const NID_aes_256_ecb: i32 = 426;
2256pub const SN_aes_256_cbc: &[u8; 12] = b"AES-256-CBC\0";
2257pub const LN_aes_256_cbc: &[u8; 12] = b"aes-256-cbc\0";
2258pub const NID_aes_256_cbc: i32 = 427;
2259pub const SN_aes_256_ofb128: &[u8; 12] = b"AES-256-OFB\0";
2260pub const LN_aes_256_ofb128: &[u8; 12] = b"aes-256-ofb\0";
2261pub const NID_aes_256_ofb128: i32 = 428;
2262pub const SN_aes_256_cfb128: &[u8; 12] = b"AES-256-CFB\0";
2263pub const LN_aes_256_cfb128: &[u8; 12] = b"aes-256-cfb\0";
2264pub const NID_aes_256_cfb128: i32 = 429;
2265pub const SN_hold_instruction_code: &[u8; 20] = b"holdInstructionCode\0";
2266pub const LN_hold_instruction_code: &[u8; 22] = b"Hold Instruction Code\0";
2267pub const NID_hold_instruction_code: i32 = 430;
2268pub const SN_hold_instruction_none: &[u8; 20] = b"holdInstructionNone\0";
2269pub const LN_hold_instruction_none: &[u8; 22] = b"Hold Instruction None\0";
2270pub const NID_hold_instruction_none: i32 = 431;
2271pub const SN_hold_instruction_call_issuer: &[u8; 26] = b"holdInstructionCallIssuer\0";
2272pub const LN_hold_instruction_call_issuer: &[u8; 29] = b"Hold Instruction Call Issuer\0";
2273pub const NID_hold_instruction_call_issuer: i32 = 432;
2274pub const SN_hold_instruction_reject: &[u8; 22] = b"holdInstructionReject\0";
2275pub const LN_hold_instruction_reject: &[u8; 24] = b"Hold Instruction Reject\0";
2276pub const NID_hold_instruction_reject: i32 = 433;
2277pub const SN_data: &[u8; 5] = b"data\0";
2278pub const NID_data: i32 = 434;
2279pub const OBJ_ENC_data: i32 = 9;
2280pub const SN_pss: &[u8; 4] = b"pss\0";
2281pub const NID_pss: i32 = 435;
2282pub const SN_ucl: &[u8; 4] = b"ucl\0";
2283pub const NID_ucl: i32 = 436;
2284pub const SN_pilot: &[u8; 6] = b"pilot\0";
2285pub const NID_pilot: i32 = 437;
2286pub const LN_pilotAttributeType: &[u8; 19] = b"pilotAttributeType\0";
2287pub const NID_pilotAttributeType: i32 = 438;
2288pub const LN_pilotAttributeSyntax: &[u8; 21] = b"pilotAttributeSyntax\0";
2289pub const NID_pilotAttributeSyntax: i32 = 439;
2290pub const LN_pilotObjectClass: &[u8; 17] = b"pilotObjectClass\0";
2291pub const NID_pilotObjectClass: i32 = 440;
2292pub const LN_pilotGroups: &[u8; 12] = b"pilotGroups\0";
2293pub const NID_pilotGroups: i32 = 441;
2294pub const LN_iA5StringSyntax: &[u8; 16] = b"iA5StringSyntax\0";
2295pub const NID_iA5StringSyntax: i32 = 442;
2296pub const LN_caseIgnoreIA5StringSyntax: &[u8; 26] = b"caseIgnoreIA5StringSyntax\0";
2297pub const NID_caseIgnoreIA5StringSyntax: i32 = 443;
2298pub const LN_pilotObject: &[u8; 12] = b"pilotObject\0";
2299pub const NID_pilotObject: i32 = 444;
2300pub const LN_pilotPerson: &[u8; 12] = b"pilotPerson\0";
2301pub const NID_pilotPerson: i32 = 445;
2302pub const SN_account: &[u8; 8] = b"account\0";
2303pub const NID_account: i32 = 446;
2304pub const SN_document: &[u8; 9] = b"document\0";
2305pub const NID_document: i32 = 447;
2306pub const SN_room: &[u8; 5] = b"room\0";
2307pub const NID_room: i32 = 448;
2308pub const LN_documentSeries: &[u8; 15] = b"documentSeries\0";
2309pub const NID_documentSeries: i32 = 449;
2310pub const LN_rFC822localPart: &[u8; 16] = b"rFC822localPart\0";
2311pub const NID_rFC822localPart: i32 = 450;
2312pub const LN_dNSDomain: &[u8; 10] = b"dNSDomain\0";
2313pub const NID_dNSDomain: i32 = 451;
2314pub const LN_domainRelatedObject: &[u8; 20] = b"domainRelatedObject\0";
2315pub const NID_domainRelatedObject: i32 = 452;
2316pub const LN_friendlyCountry: &[u8; 16] = b"friendlyCountry\0";
2317pub const NID_friendlyCountry: i32 = 453;
2318pub const LN_simpleSecurityObject: &[u8; 21] = b"simpleSecurityObject\0";
2319pub const NID_simpleSecurityObject: i32 = 454;
2320pub const LN_pilotOrganization: &[u8; 18] = b"pilotOrganization\0";
2321pub const NID_pilotOrganization: i32 = 455;
2322pub const LN_pilotDSA: &[u8; 9] = b"pilotDSA\0";
2323pub const NID_pilotDSA: i32 = 456;
2324pub const LN_qualityLabelledData: &[u8; 20] = b"qualityLabelledData\0";
2325pub const NID_qualityLabelledData: i32 = 457;
2326pub const SN_userId: &[u8; 4] = b"UID\0";
2327pub const LN_userId: &[u8; 7] = b"userId\0";
2328pub const NID_userId: i32 = 458;
2329pub const LN_textEncodedORAddress: &[u8; 21] = b"textEncodedORAddress\0";
2330pub const NID_textEncodedORAddress: i32 = 459;
2331pub const SN_rfc822Mailbox: &[u8; 5] = b"mail\0";
2332pub const LN_rfc822Mailbox: &[u8; 14] = b"rfc822Mailbox\0";
2333pub const NID_rfc822Mailbox: i32 = 460;
2334pub const SN_info: &[u8; 5] = b"info\0";
2335pub const NID_info: i32 = 461;
2336pub const LN_favouriteDrink: &[u8; 15] = b"favouriteDrink\0";
2337pub const NID_favouriteDrink: i32 = 462;
2338pub const LN_roomNumber: &[u8; 11] = b"roomNumber\0";
2339pub const NID_roomNumber: i32 = 463;
2340pub const SN_photo: &[u8; 6] = b"photo\0";
2341pub const NID_photo: i32 = 464;
2342pub const LN_userClass: &[u8; 10] = b"userClass\0";
2343pub const NID_userClass: i32 = 465;
2344pub const SN_host: &[u8; 5] = b"host\0";
2345pub const NID_host: i32 = 466;
2346pub const SN_manager: &[u8; 8] = b"manager\0";
2347pub const NID_manager: i32 = 467;
2348pub const LN_documentIdentifier: &[u8; 19] = b"documentIdentifier\0";
2349pub const NID_documentIdentifier: i32 = 468;
2350pub const LN_documentTitle: &[u8; 14] = b"documentTitle\0";
2351pub const NID_documentTitle: i32 = 469;
2352pub const LN_documentVersion: &[u8; 16] = b"documentVersion\0";
2353pub const NID_documentVersion: i32 = 470;
2354pub const LN_documentAuthor: &[u8; 15] = b"documentAuthor\0";
2355pub const NID_documentAuthor: i32 = 471;
2356pub const LN_documentLocation: &[u8; 17] = b"documentLocation\0";
2357pub const NID_documentLocation: i32 = 472;
2358pub const LN_homeTelephoneNumber: &[u8; 20] = b"homeTelephoneNumber\0";
2359pub const NID_homeTelephoneNumber: i32 = 473;
2360pub const SN_secretary: &[u8; 10] = b"secretary\0";
2361pub const NID_secretary: i32 = 474;
2362pub const LN_otherMailbox: &[u8; 13] = b"otherMailbox\0";
2363pub const NID_otherMailbox: i32 = 475;
2364pub const LN_lastModifiedTime: &[u8; 17] = b"lastModifiedTime\0";
2365pub const NID_lastModifiedTime: i32 = 476;
2366pub const LN_lastModifiedBy: &[u8; 15] = b"lastModifiedBy\0";
2367pub const NID_lastModifiedBy: i32 = 477;
2368pub const LN_aRecord: &[u8; 8] = b"aRecord\0";
2369pub const NID_aRecord: i32 = 478;
2370pub const LN_pilotAttributeType27: &[u8; 21] = b"pilotAttributeType27\0";
2371pub const NID_pilotAttributeType27: i32 = 479;
2372pub const LN_mXRecord: &[u8; 9] = b"mXRecord\0";
2373pub const NID_mXRecord: i32 = 480;
2374pub const LN_nSRecord: &[u8; 9] = b"nSRecord\0";
2375pub const NID_nSRecord: i32 = 481;
2376pub const LN_sOARecord: &[u8; 10] = b"sOARecord\0";
2377pub const NID_sOARecord: i32 = 482;
2378pub const LN_cNAMERecord: &[u8; 12] = b"cNAMERecord\0";
2379pub const NID_cNAMERecord: i32 = 483;
2380pub const LN_associatedDomain: &[u8; 17] = b"associatedDomain\0";
2381pub const NID_associatedDomain: i32 = 484;
2382pub const LN_associatedName: &[u8; 15] = b"associatedName\0";
2383pub const NID_associatedName: i32 = 485;
2384pub const LN_homePostalAddress: &[u8; 18] = b"homePostalAddress\0";
2385pub const NID_homePostalAddress: i32 = 486;
2386pub const LN_personalTitle: &[u8; 14] = b"personalTitle\0";
2387pub const NID_personalTitle: i32 = 487;
2388pub const LN_mobileTelephoneNumber: &[u8; 22] = b"mobileTelephoneNumber\0";
2389pub const NID_mobileTelephoneNumber: i32 = 488;
2390pub const LN_pagerTelephoneNumber: &[u8; 21] = b"pagerTelephoneNumber\0";
2391pub const NID_pagerTelephoneNumber: i32 = 489;
2392pub const LN_friendlyCountryName: &[u8; 20] = b"friendlyCountryName\0";
2393pub const NID_friendlyCountryName: i32 = 490;
2394pub const LN_organizationalStatus: &[u8; 21] = b"organizationalStatus\0";
2395pub const NID_organizationalStatus: i32 = 491;
2396pub const LN_janetMailbox: &[u8; 13] = b"janetMailbox\0";
2397pub const NID_janetMailbox: i32 = 492;
2398pub const LN_mailPreferenceOption: &[u8; 21] = b"mailPreferenceOption\0";
2399pub const NID_mailPreferenceOption: i32 = 493;
2400pub const LN_buildingName: &[u8; 13] = b"buildingName\0";
2401pub const NID_buildingName: i32 = 494;
2402pub const LN_dSAQuality: &[u8; 11] = b"dSAQuality\0";
2403pub const NID_dSAQuality: i32 = 495;
2404pub const LN_singleLevelQuality: &[u8; 19] = b"singleLevelQuality\0";
2405pub const NID_singleLevelQuality: i32 = 496;
2406pub const LN_subtreeMinimumQuality: &[u8; 22] = b"subtreeMinimumQuality\0";
2407pub const NID_subtreeMinimumQuality: i32 = 497;
2408pub const LN_subtreeMaximumQuality: &[u8; 22] = b"subtreeMaximumQuality\0";
2409pub const NID_subtreeMaximumQuality: i32 = 498;
2410pub const LN_personalSignature: &[u8; 18] = b"personalSignature\0";
2411pub const NID_personalSignature: i32 = 499;
2412pub const LN_dITRedirect: &[u8; 12] = b"dITRedirect\0";
2413pub const NID_dITRedirect: i32 = 500;
2414pub const SN_audio: &[u8; 6] = b"audio\0";
2415pub const NID_audio: i32 = 501;
2416pub const LN_documentPublisher: &[u8; 18] = b"documentPublisher\0";
2417pub const NID_documentPublisher: i32 = 502;
2418pub const LN_x500UniqueIdentifier: &[u8; 21] = b"x500UniqueIdentifier\0";
2419pub const NID_x500UniqueIdentifier: i32 = 503;
2420pub const SN_mime_mhs: &[u8; 9] = b"mime-mhs\0";
2421pub const LN_mime_mhs: &[u8; 9] = b"MIME MHS\0";
2422pub const NID_mime_mhs: i32 = 504;
2423pub const SN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2424pub const LN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2425pub const NID_mime_mhs_headings: i32 = 505;
2426pub const SN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2427pub const LN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2428pub const NID_mime_mhs_bodies: i32 = 506;
2429pub const SN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2430pub const LN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2431pub const NID_id_hex_partial_message: i32 = 507;
2432pub const SN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2433pub const LN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2434pub const NID_id_hex_multipart_message: i32 = 508;
2435pub const LN_generationQualifier: &[u8; 20] = b"generationQualifier\0";
2436pub const NID_generationQualifier: i32 = 509;
2437pub const LN_pseudonym: &[u8; 10] = b"pseudonym\0";
2438pub const NID_pseudonym: i32 = 510;
2439pub const SN_id_set: &[u8; 7] = b"id-set\0";
2440pub const LN_id_set: &[u8; 31] = b"Secure Electronic Transactions\0";
2441pub const NID_id_set: i32 = 512;
2442pub const SN_set_ctype: &[u8; 10] = b"set-ctype\0";
2443pub const LN_set_ctype: &[u8; 14] = b"content types\0";
2444pub const NID_set_ctype: i32 = 513;
2445pub const SN_set_msgExt: &[u8; 11] = b"set-msgExt\0";
2446pub const LN_set_msgExt: &[u8; 19] = b"message extensions\0";
2447pub const NID_set_msgExt: i32 = 514;
2448pub const SN_set_attr: &[u8; 9] = b"set-attr\0";
2449pub const NID_set_attr: i32 = 515;
2450pub const SN_set_policy: &[u8; 11] = b"set-policy\0";
2451pub const NID_set_policy: i32 = 516;
2452pub const SN_set_certExt: &[u8; 12] = b"set-certExt\0";
2453pub const LN_set_certExt: &[u8; 23] = b"certificate extensions\0";
2454pub const NID_set_certExt: i32 = 517;
2455pub const SN_set_brand: &[u8; 10] = b"set-brand\0";
2456pub const NID_set_brand: i32 = 518;
2457pub const SN_setct_PANData: &[u8; 14] = b"setct-PANData\0";
2458pub const NID_setct_PANData: i32 = 519;
2459pub const SN_setct_PANToken: &[u8; 15] = b"setct-PANToken\0";
2460pub const NID_setct_PANToken: i32 = 520;
2461pub const SN_setct_PANOnly: &[u8; 14] = b"setct-PANOnly\0";
2462pub const NID_setct_PANOnly: i32 = 521;
2463pub const SN_setct_OIData: &[u8; 13] = b"setct-OIData\0";
2464pub const NID_setct_OIData: i32 = 522;
2465pub const SN_setct_PI: &[u8; 9] = b"setct-PI\0";
2466pub const NID_setct_PI: i32 = 523;
2467pub const SN_setct_PIData: &[u8; 13] = b"setct-PIData\0";
2468pub const NID_setct_PIData: i32 = 524;
2469pub const SN_setct_PIDataUnsigned: &[u8; 21] = b"setct-PIDataUnsigned\0";
2470pub const NID_setct_PIDataUnsigned: i32 = 525;
2471pub const SN_setct_HODInput: &[u8; 15] = b"setct-HODInput\0";
2472pub const NID_setct_HODInput: i32 = 526;
2473pub const SN_setct_AuthResBaggage: &[u8; 21] = b"setct-AuthResBaggage\0";
2474pub const NID_setct_AuthResBaggage: i32 = 527;
2475pub const SN_setct_AuthRevReqBaggage: &[u8; 24] = b"setct-AuthRevReqBaggage\0";
2476pub const NID_setct_AuthRevReqBaggage: i32 = 528;
2477pub const SN_setct_AuthRevResBaggage: &[u8; 24] = b"setct-AuthRevResBaggage\0";
2478pub const NID_setct_AuthRevResBaggage: i32 = 529;
2479pub const SN_setct_CapTokenSeq: &[u8; 18] = b"setct-CapTokenSeq\0";
2480pub const NID_setct_CapTokenSeq: i32 = 530;
2481pub const SN_setct_PInitResData: &[u8; 19] = b"setct-PInitResData\0";
2482pub const NID_setct_PInitResData: i32 = 531;
2483pub const SN_setct_PI_TBS: &[u8; 13] = b"setct-PI-TBS\0";
2484pub const NID_setct_PI_TBS: i32 = 532;
2485pub const SN_setct_PResData: &[u8; 15] = b"setct-PResData\0";
2486pub const NID_setct_PResData: i32 = 533;
2487pub const SN_setct_AuthReqTBS: &[u8; 17] = b"setct-AuthReqTBS\0";
2488pub const NID_setct_AuthReqTBS: i32 = 534;
2489pub const SN_setct_AuthResTBS: &[u8; 17] = b"setct-AuthResTBS\0";
2490pub const NID_setct_AuthResTBS: i32 = 535;
2491pub const SN_setct_AuthResTBSX: &[u8; 18] = b"setct-AuthResTBSX\0";
2492pub const NID_setct_AuthResTBSX: i32 = 536;
2493pub const SN_setct_AuthTokenTBS: &[u8; 19] = b"setct-AuthTokenTBS\0";
2494pub const NID_setct_AuthTokenTBS: i32 = 537;
2495pub const SN_setct_CapTokenData: &[u8; 19] = b"setct-CapTokenData\0";
2496pub const NID_setct_CapTokenData: i32 = 538;
2497pub const SN_setct_CapTokenTBS: &[u8; 18] = b"setct-CapTokenTBS\0";
2498pub const NID_setct_CapTokenTBS: i32 = 539;
2499pub const SN_setct_AcqCardCodeMsg: &[u8; 21] = b"setct-AcqCardCodeMsg\0";
2500pub const NID_setct_AcqCardCodeMsg: i32 = 540;
2501pub const SN_setct_AuthRevReqTBS: &[u8; 20] = b"setct-AuthRevReqTBS\0";
2502pub const NID_setct_AuthRevReqTBS: i32 = 541;
2503pub const SN_setct_AuthRevResData: &[u8; 21] = b"setct-AuthRevResData\0";
2504pub const NID_setct_AuthRevResData: i32 = 542;
2505pub const SN_setct_AuthRevResTBS: &[u8; 20] = b"setct-AuthRevResTBS\0";
2506pub const NID_setct_AuthRevResTBS: i32 = 543;
2507pub const SN_setct_CapReqTBS: &[u8; 16] = b"setct-CapReqTBS\0";
2508pub const NID_setct_CapReqTBS: i32 = 544;
2509pub const SN_setct_CapReqTBSX: &[u8; 17] = b"setct-CapReqTBSX\0";
2510pub const NID_setct_CapReqTBSX: i32 = 545;
2511pub const SN_setct_CapResData: &[u8; 17] = b"setct-CapResData\0";
2512pub const NID_setct_CapResData: i32 = 546;
2513pub const SN_setct_CapRevReqTBS: &[u8; 19] = b"setct-CapRevReqTBS\0";
2514pub const NID_setct_CapRevReqTBS: i32 = 547;
2515pub const SN_setct_CapRevReqTBSX: &[u8; 20] = b"setct-CapRevReqTBSX\0";
2516pub const NID_setct_CapRevReqTBSX: i32 = 548;
2517pub const SN_setct_CapRevResData: &[u8; 20] = b"setct-CapRevResData\0";
2518pub const NID_setct_CapRevResData: i32 = 549;
2519pub const SN_setct_CredReqTBS: &[u8; 17] = b"setct-CredReqTBS\0";
2520pub const NID_setct_CredReqTBS: i32 = 550;
2521pub const SN_setct_CredReqTBSX: &[u8; 18] = b"setct-CredReqTBSX\0";
2522pub const NID_setct_CredReqTBSX: i32 = 551;
2523pub const SN_setct_CredResData: &[u8; 18] = b"setct-CredResData\0";
2524pub const NID_setct_CredResData: i32 = 552;
2525pub const SN_setct_CredRevReqTBS: &[u8; 20] = b"setct-CredRevReqTBS\0";
2526pub const NID_setct_CredRevReqTBS: i32 = 553;
2527pub const SN_setct_CredRevReqTBSX: &[u8; 21] = b"setct-CredRevReqTBSX\0";
2528pub const NID_setct_CredRevReqTBSX: i32 = 554;
2529pub const SN_setct_CredRevResData: &[u8; 21] = b"setct-CredRevResData\0";
2530pub const NID_setct_CredRevResData: i32 = 555;
2531pub const SN_setct_PCertReqData: &[u8; 19] = b"setct-PCertReqData\0";
2532pub const NID_setct_PCertReqData: i32 = 556;
2533pub const SN_setct_PCertResTBS: &[u8; 18] = b"setct-PCertResTBS\0";
2534pub const NID_setct_PCertResTBS: i32 = 557;
2535pub const SN_setct_BatchAdminReqData: &[u8; 24] = b"setct-BatchAdminReqData\0";
2536pub const NID_setct_BatchAdminReqData: i32 = 558;
2537pub const SN_setct_BatchAdminResData: &[u8; 24] = b"setct-BatchAdminResData\0";
2538pub const NID_setct_BatchAdminResData: i32 = 559;
2539pub const SN_setct_CardCInitResTBS: &[u8; 22] = b"setct-CardCInitResTBS\0";
2540pub const NID_setct_CardCInitResTBS: i32 = 560;
2541pub const SN_setct_MeAqCInitResTBS: &[u8; 22] = b"setct-MeAqCInitResTBS\0";
2542pub const NID_setct_MeAqCInitResTBS: i32 = 561;
2543pub const SN_setct_RegFormResTBS: &[u8; 20] = b"setct-RegFormResTBS\0";
2544pub const NID_setct_RegFormResTBS: i32 = 562;
2545pub const SN_setct_CertReqData: &[u8; 18] = b"setct-CertReqData\0";
2546pub const NID_setct_CertReqData: i32 = 563;
2547pub const SN_setct_CertReqTBS: &[u8; 17] = b"setct-CertReqTBS\0";
2548pub const NID_setct_CertReqTBS: i32 = 564;
2549pub const SN_setct_CertResData: &[u8; 18] = b"setct-CertResData\0";
2550pub const NID_setct_CertResData: i32 = 565;
2551pub const SN_setct_CertInqReqTBS: &[u8; 20] = b"setct-CertInqReqTBS\0";
2552pub const NID_setct_CertInqReqTBS: i32 = 566;
2553pub const SN_setct_ErrorTBS: &[u8; 15] = b"setct-ErrorTBS\0";
2554pub const NID_setct_ErrorTBS: i32 = 567;
2555pub const SN_setct_PIDualSignedTBE: &[u8; 22] = b"setct-PIDualSignedTBE\0";
2556pub const NID_setct_PIDualSignedTBE: i32 = 568;
2557pub const SN_setct_PIUnsignedTBE: &[u8; 20] = b"setct-PIUnsignedTBE\0";
2558pub const NID_setct_PIUnsignedTBE: i32 = 569;
2559pub const SN_setct_AuthReqTBE: &[u8; 17] = b"setct-AuthReqTBE\0";
2560pub const NID_setct_AuthReqTBE: i32 = 570;
2561pub const SN_setct_AuthResTBE: &[u8; 17] = b"setct-AuthResTBE\0";
2562pub const NID_setct_AuthResTBE: i32 = 571;
2563pub const SN_setct_AuthResTBEX: &[u8; 18] = b"setct-AuthResTBEX\0";
2564pub const NID_setct_AuthResTBEX: i32 = 572;
2565pub const SN_setct_AuthTokenTBE: &[u8; 19] = b"setct-AuthTokenTBE\0";
2566pub const NID_setct_AuthTokenTBE: i32 = 573;
2567pub const SN_setct_CapTokenTBE: &[u8; 18] = b"setct-CapTokenTBE\0";
2568pub const NID_setct_CapTokenTBE: i32 = 574;
2569pub const SN_setct_CapTokenTBEX: &[u8; 19] = b"setct-CapTokenTBEX\0";
2570pub const NID_setct_CapTokenTBEX: i32 = 575;
2571pub const SN_setct_AcqCardCodeMsgTBE: &[u8; 24] = b"setct-AcqCardCodeMsgTBE\0";
2572pub const NID_setct_AcqCardCodeMsgTBE: i32 = 576;
2573pub const SN_setct_AuthRevReqTBE: &[u8; 20] = b"setct-AuthRevReqTBE\0";
2574pub const NID_setct_AuthRevReqTBE: i32 = 577;
2575pub const SN_setct_AuthRevResTBE: &[u8; 20] = b"setct-AuthRevResTBE\0";
2576pub const NID_setct_AuthRevResTBE: i32 = 578;
2577pub const SN_setct_AuthRevResTBEB: &[u8; 21] = b"setct-AuthRevResTBEB\0";
2578pub const NID_setct_AuthRevResTBEB: i32 = 579;
2579pub const SN_setct_CapReqTBE: &[u8; 16] = b"setct-CapReqTBE\0";
2580pub const NID_setct_CapReqTBE: i32 = 580;
2581pub const SN_setct_CapReqTBEX: &[u8; 17] = b"setct-CapReqTBEX\0";
2582pub const NID_setct_CapReqTBEX: i32 = 581;
2583pub const SN_setct_CapResTBE: &[u8; 16] = b"setct-CapResTBE\0";
2584pub const NID_setct_CapResTBE: i32 = 582;
2585pub const SN_setct_CapRevReqTBE: &[u8; 19] = b"setct-CapRevReqTBE\0";
2586pub const NID_setct_CapRevReqTBE: i32 = 583;
2587pub const SN_setct_CapRevReqTBEX: &[u8; 20] = b"setct-CapRevReqTBEX\0";
2588pub const NID_setct_CapRevReqTBEX: i32 = 584;
2589pub const SN_setct_CapRevResTBE: &[u8; 19] = b"setct-CapRevResTBE\0";
2590pub const NID_setct_CapRevResTBE: i32 = 585;
2591pub const SN_setct_CredReqTBE: &[u8; 17] = b"setct-CredReqTBE\0";
2592pub const NID_setct_CredReqTBE: i32 = 586;
2593pub const SN_setct_CredReqTBEX: &[u8; 18] = b"setct-CredReqTBEX\0";
2594pub const NID_setct_CredReqTBEX: i32 = 587;
2595pub const SN_setct_CredResTBE: &[u8; 17] = b"setct-CredResTBE\0";
2596pub const NID_setct_CredResTBE: i32 = 588;
2597pub const SN_setct_CredRevReqTBE: &[u8; 20] = b"setct-CredRevReqTBE\0";
2598pub const NID_setct_CredRevReqTBE: i32 = 589;
2599pub const SN_setct_CredRevReqTBEX: &[u8; 21] = b"setct-CredRevReqTBEX\0";
2600pub const NID_setct_CredRevReqTBEX: i32 = 590;
2601pub const SN_setct_CredRevResTBE: &[u8; 20] = b"setct-CredRevResTBE\0";
2602pub const NID_setct_CredRevResTBE: i32 = 591;
2603pub const SN_setct_BatchAdminReqTBE: &[u8; 23] = b"setct-BatchAdminReqTBE\0";
2604pub const NID_setct_BatchAdminReqTBE: i32 = 592;
2605pub const SN_setct_BatchAdminResTBE: &[u8; 23] = b"setct-BatchAdminResTBE\0";
2606pub const NID_setct_BatchAdminResTBE: i32 = 593;
2607pub const SN_setct_RegFormReqTBE: &[u8; 20] = b"setct-RegFormReqTBE\0";
2608pub const NID_setct_RegFormReqTBE: i32 = 594;
2609pub const SN_setct_CertReqTBE: &[u8; 17] = b"setct-CertReqTBE\0";
2610pub const NID_setct_CertReqTBE: i32 = 595;
2611pub const SN_setct_CertReqTBEX: &[u8; 18] = b"setct-CertReqTBEX\0";
2612pub const NID_setct_CertReqTBEX: i32 = 596;
2613pub const SN_setct_CertResTBE: &[u8; 17] = b"setct-CertResTBE\0";
2614pub const NID_setct_CertResTBE: i32 = 597;
2615pub const SN_setct_CRLNotificationTBS: &[u8; 25] = b"setct-CRLNotificationTBS\0";
2616pub const NID_setct_CRLNotificationTBS: i32 = 598;
2617pub const SN_setct_CRLNotificationResTBS: &[u8; 28] = b"setct-CRLNotificationResTBS\0";
2618pub const NID_setct_CRLNotificationResTBS: i32 = 599;
2619pub const SN_setct_BCIDistributionTBS: &[u8; 25] = b"setct-BCIDistributionTBS\0";
2620pub const NID_setct_BCIDistributionTBS: i32 = 600;
2621pub const SN_setext_genCrypt: &[u8; 16] = b"setext-genCrypt\0";
2622pub const LN_setext_genCrypt: &[u8; 19] = b"generic cryptogram\0";
2623pub const NID_setext_genCrypt: i32 = 601;
2624pub const SN_setext_miAuth: &[u8; 14] = b"setext-miAuth\0";
2625pub const LN_setext_miAuth: &[u8; 24] = b"merchant initiated auth\0";
2626pub const NID_setext_miAuth: i32 = 602;
2627pub const SN_setext_pinSecure: &[u8; 17] = b"setext-pinSecure\0";
2628pub const NID_setext_pinSecure: i32 = 603;
2629pub const SN_setext_pinAny: &[u8; 14] = b"setext-pinAny\0";
2630pub const NID_setext_pinAny: i32 = 604;
2631pub const SN_setext_track2: &[u8; 14] = b"setext-track2\0";
2632pub const NID_setext_track2: i32 = 605;
2633pub const SN_setext_cv: &[u8; 10] = b"setext-cv\0";
2634pub const LN_setext_cv: &[u8; 24] = b"additional verification\0";
2635pub const NID_setext_cv: i32 = 606;
2636pub const SN_set_policy_root: &[u8; 16] = b"set-policy-root\0";
2637pub const NID_set_policy_root: i32 = 607;
2638pub const SN_setCext_hashedRoot: &[u8; 19] = b"setCext-hashedRoot\0";
2639pub const NID_setCext_hashedRoot: i32 = 608;
2640pub const SN_setCext_certType: &[u8; 17] = b"setCext-certType\0";
2641pub const NID_setCext_certType: i32 = 609;
2642pub const SN_setCext_merchData: &[u8; 18] = b"setCext-merchData\0";
2643pub const NID_setCext_merchData: i32 = 610;
2644pub const SN_setCext_cCertRequired: &[u8; 22] = b"setCext-cCertRequired\0";
2645pub const NID_setCext_cCertRequired: i32 = 611;
2646pub const SN_setCext_tunneling: &[u8; 18] = b"setCext-tunneling\0";
2647pub const NID_setCext_tunneling: i32 = 612;
2648pub const SN_setCext_setExt: &[u8; 15] = b"setCext-setExt\0";
2649pub const NID_setCext_setExt: i32 = 613;
2650pub const SN_setCext_setQualf: &[u8; 17] = b"setCext-setQualf\0";
2651pub const NID_setCext_setQualf: i32 = 614;
2652pub const SN_setCext_PGWYcapabilities: &[u8; 25] = b"setCext-PGWYcapabilities\0";
2653pub const NID_setCext_PGWYcapabilities: i32 = 615;
2654pub const SN_setCext_TokenIdentifier: &[u8; 24] = b"setCext-TokenIdentifier\0";
2655pub const NID_setCext_TokenIdentifier: i32 = 616;
2656pub const SN_setCext_Track2Data: &[u8; 19] = b"setCext-Track2Data\0";
2657pub const NID_setCext_Track2Data: i32 = 617;
2658pub const SN_setCext_TokenType: &[u8; 18] = b"setCext-TokenType\0";
2659pub const NID_setCext_TokenType: i32 = 618;
2660pub const SN_setCext_IssuerCapabilities: &[u8; 27] = b"setCext-IssuerCapabilities\0";
2661pub const NID_setCext_IssuerCapabilities: i32 = 619;
2662pub const SN_setAttr_Cert: &[u8; 13] = b"setAttr-Cert\0";
2663pub const NID_setAttr_Cert: i32 = 620;
2664pub const SN_setAttr_PGWYcap: &[u8; 16] = b"setAttr-PGWYcap\0";
2665pub const LN_setAttr_PGWYcap: &[u8; 29] = b"payment gateway capabilities\0";
2666pub const NID_setAttr_PGWYcap: i32 = 621;
2667pub const SN_setAttr_TokenType: &[u8; 18] = b"setAttr-TokenType\0";
2668pub const NID_setAttr_TokenType: i32 = 622;
2669pub const SN_setAttr_IssCap: &[u8; 15] = b"setAttr-IssCap\0";
2670pub const LN_setAttr_IssCap: &[u8; 20] = b"issuer capabilities\0";
2671pub const NID_setAttr_IssCap: i32 = 623;
2672pub const SN_set_rootKeyThumb: &[u8; 17] = b"set-rootKeyThumb\0";
2673pub const NID_set_rootKeyThumb: i32 = 624;
2674pub const SN_set_addPolicy: &[u8; 14] = b"set-addPolicy\0";
2675pub const NID_set_addPolicy: i32 = 625;
2676pub const SN_setAttr_Token_EMV: &[u8; 18] = b"setAttr-Token-EMV\0";
2677pub const NID_setAttr_Token_EMV: i32 = 626;
2678pub const SN_setAttr_Token_B0Prime: &[u8; 22] = b"setAttr-Token-B0Prime\0";
2679pub const NID_setAttr_Token_B0Prime: i32 = 627;
2680pub const SN_setAttr_IssCap_CVM: &[u8; 19] = b"setAttr-IssCap-CVM\0";
2681pub const NID_setAttr_IssCap_CVM: i32 = 628;
2682pub const SN_setAttr_IssCap_T2: &[u8; 18] = b"setAttr-IssCap-T2\0";
2683pub const NID_setAttr_IssCap_T2: i32 = 629;
2684pub const SN_setAttr_IssCap_Sig: &[u8; 19] = b"setAttr-IssCap-Sig\0";
2685pub const NID_setAttr_IssCap_Sig: i32 = 630;
2686pub const SN_setAttr_GenCryptgrm: &[u8; 20] = b"setAttr-GenCryptgrm\0";
2687pub const LN_setAttr_GenCryptgrm: &[u8; 20] = b"generate cryptogram\0";
2688pub const NID_setAttr_GenCryptgrm: i32 = 631;
2689pub const SN_setAttr_T2Enc: &[u8; 14] = b"setAttr-T2Enc\0";
2690pub const LN_setAttr_T2Enc: &[u8; 18] = b"encrypted track 2\0";
2691pub const NID_setAttr_T2Enc: i32 = 632;
2692pub const SN_setAttr_T2cleartxt: &[u8; 19] = b"setAttr-T2cleartxt\0";
2693pub const LN_setAttr_T2cleartxt: &[u8; 18] = b"cleartext track 2\0";
2694pub const NID_setAttr_T2cleartxt: i32 = 633;
2695pub const SN_setAttr_TokICCsig: &[u8; 18] = b"setAttr-TokICCsig\0";
2696pub const LN_setAttr_TokICCsig: &[u8; 23] = b"ICC or token signature\0";
2697pub const NID_setAttr_TokICCsig: i32 = 634;
2698pub const SN_setAttr_SecDevSig: &[u8; 18] = b"setAttr-SecDevSig\0";
2699pub const LN_setAttr_SecDevSig: &[u8; 24] = b"secure device signature\0";
2700pub const NID_setAttr_SecDevSig: i32 = 635;
2701pub const SN_set_brand_IATA_ATA: &[u8; 19] = b"set-brand-IATA-ATA\0";
2702pub const NID_set_brand_IATA_ATA: i32 = 636;
2703pub const SN_set_brand_Diners: &[u8; 17] = b"set-brand-Diners\0";
2704pub const NID_set_brand_Diners: i32 = 637;
2705pub const SN_set_brand_AmericanExpress: &[u8; 26] = b"set-brand-AmericanExpress\0";
2706pub const NID_set_brand_AmericanExpress: i32 = 638;
2707pub const SN_set_brand_JCB: &[u8; 14] = b"set-brand-JCB\0";
2708pub const NID_set_brand_JCB: i32 = 639;
2709pub const SN_set_brand_Visa: &[u8; 15] = b"set-brand-Visa\0";
2710pub const NID_set_brand_Visa: i32 = 640;
2711pub const SN_set_brand_MasterCard: &[u8; 21] = b"set-brand-MasterCard\0";
2712pub const NID_set_brand_MasterCard: i32 = 641;
2713pub const SN_set_brand_Novus: &[u8; 16] = b"set-brand-Novus\0";
2714pub const NID_set_brand_Novus: i32 = 642;
2715pub const SN_des_cdmf: &[u8; 9] = b"DES-CDMF\0";
2716pub const LN_des_cdmf: &[u8; 9] = b"des-cdmf\0";
2717pub const NID_des_cdmf: i32 = 643;
2718pub const SN_rsaOAEPEncryptionSET: &[u8; 21] = b"rsaOAEPEncryptionSET\0";
2719pub const NID_rsaOAEPEncryptionSET: i32 = 644;
2720pub const SN_itu_t: &[u8; 6] = b"ITU-T\0";
2721pub const LN_itu_t: &[u8; 6] = b"itu-t\0";
2722pub const NID_itu_t: i32 = 645;
2723pub const OBJ_itu_t: i32 = 0;
2724pub const SN_joint_iso_itu_t: &[u8; 16] = b"JOINT-ISO-ITU-T\0";
2725pub const LN_joint_iso_itu_t: &[u8; 16] = b"joint-iso-itu-t\0";
2726pub const NID_joint_iso_itu_t: i32 = 646;
2727pub const OBJ_joint_iso_itu_t: i32 = 2;
2728pub const SN_international_organizations: &[u8; 28] = b"international-organizations\0";
2729pub const LN_international_organizations: &[u8; 28] = b"International Organizations\0";
2730pub const NID_international_organizations: i32 = 647;
2731pub const OBJ_ENC_international_organizations: i32 = 103;
2732pub const SN_ms_smartcard_login: &[u8; 17] = b"msSmartcardLogin\0";
2733pub const LN_ms_smartcard_login: &[u8; 25] = b"Microsoft Smartcardlogin\0";
2734pub const NID_ms_smartcard_login: i32 = 648;
2735pub const SN_ms_upn: &[u8; 6] = b"msUPN\0";
2736pub const LN_ms_upn: &[u8; 35] = b"Microsoft Universal Principal Name\0";
2737pub const NID_ms_upn: i32 = 649;
2738pub const SN_aes_128_cfb1: &[u8; 13] = b"AES-128-CFB1\0";
2739pub const LN_aes_128_cfb1: &[u8; 13] = b"aes-128-cfb1\0";
2740pub const NID_aes_128_cfb1: i32 = 650;
2741pub const SN_aes_192_cfb1: &[u8; 13] = b"AES-192-CFB1\0";
2742pub const LN_aes_192_cfb1: &[u8; 13] = b"aes-192-cfb1\0";
2743pub const NID_aes_192_cfb1: i32 = 651;
2744pub const SN_aes_256_cfb1: &[u8; 13] = b"AES-256-CFB1\0";
2745pub const LN_aes_256_cfb1: &[u8; 13] = b"aes-256-cfb1\0";
2746pub const NID_aes_256_cfb1: i32 = 652;
2747pub const SN_aes_128_cfb8: &[u8; 13] = b"AES-128-CFB8\0";
2748pub const LN_aes_128_cfb8: &[u8; 13] = b"aes-128-cfb8\0";
2749pub const NID_aes_128_cfb8: i32 = 653;
2750pub const SN_aes_192_cfb8: &[u8; 13] = b"AES-192-CFB8\0";
2751pub const LN_aes_192_cfb8: &[u8; 13] = b"aes-192-cfb8\0";
2752pub const NID_aes_192_cfb8: i32 = 654;
2753pub const SN_aes_256_cfb8: &[u8; 13] = b"AES-256-CFB8\0";
2754pub const LN_aes_256_cfb8: &[u8; 13] = b"aes-256-cfb8\0";
2755pub const NID_aes_256_cfb8: i32 = 655;
2756pub const SN_des_cfb1: &[u8; 9] = b"DES-CFB1\0";
2757pub const LN_des_cfb1: &[u8; 9] = b"des-cfb1\0";
2758pub const NID_des_cfb1: i32 = 656;
2759pub const SN_des_cfb8: &[u8; 9] = b"DES-CFB8\0";
2760pub const LN_des_cfb8: &[u8; 9] = b"des-cfb8\0";
2761pub const NID_des_cfb8: i32 = 657;
2762pub const SN_des_ede3_cfb1: &[u8; 14] = b"DES-EDE3-CFB1\0";
2763pub const LN_des_ede3_cfb1: &[u8; 14] = b"des-ede3-cfb1\0";
2764pub const NID_des_ede3_cfb1: i32 = 658;
2765pub const SN_des_ede3_cfb8: &[u8; 14] = b"DES-EDE3-CFB8\0";
2766pub const LN_des_ede3_cfb8: &[u8; 14] = b"des-ede3-cfb8\0";
2767pub const NID_des_ede3_cfb8: i32 = 659;
2768pub const SN_streetAddress: &[u8; 7] = b"street\0";
2769pub const LN_streetAddress: &[u8; 14] = b"streetAddress\0";
2770pub const NID_streetAddress: i32 = 660;
2771pub const LN_postalCode: &[u8; 11] = b"postalCode\0";
2772pub const NID_postalCode: i32 = 661;
2773pub const SN_id_ppl: &[u8; 7] = b"id-ppl\0";
2774pub const NID_id_ppl: i32 = 662;
2775pub const SN_proxyCertInfo: &[u8; 14] = b"proxyCertInfo\0";
2776pub const LN_proxyCertInfo: &[u8; 30] = b"Proxy Certificate Information\0";
2777pub const NID_proxyCertInfo: i32 = 663;
2778pub const SN_id_ppl_anyLanguage: &[u8; 19] = b"id-ppl-anyLanguage\0";
2779pub const LN_id_ppl_anyLanguage: &[u8; 13] = b"Any language\0";
2780pub const NID_id_ppl_anyLanguage: i32 = 664;
2781pub const SN_id_ppl_inheritAll: &[u8; 18] = b"id-ppl-inheritAll\0";
2782pub const LN_id_ppl_inheritAll: &[u8; 12] = b"Inherit all\0";
2783pub const NID_id_ppl_inheritAll: i32 = 665;
2784pub const SN_name_constraints: &[u8; 16] = b"nameConstraints\0";
2785pub const LN_name_constraints: &[u8; 24] = b"X509v3 Name Constraints\0";
2786pub const NID_name_constraints: i32 = 666;
2787pub const SN_Independent: &[u8; 19] = b"id-ppl-independent\0";
2788pub const LN_Independent: &[u8; 12] = b"Independent\0";
2789pub const NID_Independent: i32 = 667;
2790pub const SN_sha256WithRSAEncryption: &[u8; 11] = b"RSA-SHA256\0";
2791pub const LN_sha256WithRSAEncryption: &[u8; 24] = b"sha256WithRSAEncryption\0";
2792pub const NID_sha256WithRSAEncryption: i32 = 668;
2793pub const SN_sha384WithRSAEncryption: &[u8; 11] = b"RSA-SHA384\0";
2794pub const LN_sha384WithRSAEncryption: &[u8; 24] = b"sha384WithRSAEncryption\0";
2795pub const NID_sha384WithRSAEncryption: i32 = 669;
2796pub const SN_sha512WithRSAEncryption: &[u8; 11] = b"RSA-SHA512\0";
2797pub const LN_sha512WithRSAEncryption: &[u8; 24] = b"sha512WithRSAEncryption\0";
2798pub const NID_sha512WithRSAEncryption: i32 = 670;
2799pub const SN_sha224WithRSAEncryption: &[u8; 11] = b"RSA-SHA224\0";
2800pub const LN_sha224WithRSAEncryption: &[u8; 24] = b"sha224WithRSAEncryption\0";
2801pub const NID_sha224WithRSAEncryption: i32 = 671;
2802pub const SN_sha256: &[u8; 7] = b"SHA256\0";
2803pub const LN_sha256: &[u8; 7] = b"sha256\0";
2804pub const NID_sha256: i32 = 672;
2805pub const SN_sha384: &[u8; 7] = b"SHA384\0";
2806pub const LN_sha384: &[u8; 7] = b"sha384\0";
2807pub const NID_sha384: i32 = 673;
2808pub const SN_sha512: &[u8; 7] = b"SHA512\0";
2809pub const LN_sha512: &[u8; 7] = b"sha512\0";
2810pub const NID_sha512: i32 = 674;
2811pub const SN_sha224: &[u8; 7] = b"SHA224\0";
2812pub const LN_sha224: &[u8; 7] = b"sha224\0";
2813pub const NID_sha224: i32 = 675;
2814pub const SN_identified_organization: &[u8; 24] = b"identified-organization\0";
2815pub const NID_identified_organization: i32 = 676;
2816pub const OBJ_ENC_identified_organization: i32 = 43;
2817pub const SN_certicom_arc: &[u8; 13] = b"certicom-arc\0";
2818pub const NID_certicom_arc: i32 = 677;
2819pub const SN_wap: &[u8; 4] = b"wap\0";
2820pub const NID_wap: i32 = 678;
2821pub const SN_wap_wsg: &[u8; 8] = b"wap-wsg\0";
2822pub const NID_wap_wsg: i32 = 679;
2823pub const SN_X9_62_id_characteristic_two_basis: &[u8; 28] = b"id-characteristic-two-basis\0";
2824pub const NID_X9_62_id_characteristic_two_basis: i32 = 680;
2825pub const SN_X9_62_onBasis: &[u8; 8] = b"onBasis\0";
2826pub const NID_X9_62_onBasis: i32 = 681;
2827pub const SN_X9_62_tpBasis: &[u8; 8] = b"tpBasis\0";
2828pub const NID_X9_62_tpBasis: i32 = 682;
2829pub const SN_X9_62_ppBasis: &[u8; 8] = b"ppBasis\0";
2830pub const NID_X9_62_ppBasis: i32 = 683;
2831pub const SN_X9_62_c2pnb163v1: &[u8; 11] = b"c2pnb163v1\0";
2832pub const NID_X9_62_c2pnb163v1: i32 = 684;
2833pub const SN_X9_62_c2pnb163v2: &[u8; 11] = b"c2pnb163v2\0";
2834pub const NID_X9_62_c2pnb163v2: i32 = 685;
2835pub const SN_X9_62_c2pnb163v3: &[u8; 11] = b"c2pnb163v3\0";
2836pub const NID_X9_62_c2pnb163v3: i32 = 686;
2837pub const SN_X9_62_c2pnb176v1: &[u8; 11] = b"c2pnb176v1\0";
2838pub const NID_X9_62_c2pnb176v1: i32 = 687;
2839pub const SN_X9_62_c2tnb191v1: &[u8; 11] = b"c2tnb191v1\0";
2840pub const NID_X9_62_c2tnb191v1: i32 = 688;
2841pub const SN_X9_62_c2tnb191v2: &[u8; 11] = b"c2tnb191v2\0";
2842pub const NID_X9_62_c2tnb191v2: i32 = 689;
2843pub const SN_X9_62_c2tnb191v3: &[u8; 11] = b"c2tnb191v3\0";
2844pub const NID_X9_62_c2tnb191v3: i32 = 690;
2845pub const SN_X9_62_c2onb191v4: &[u8; 11] = b"c2onb191v4\0";
2846pub const NID_X9_62_c2onb191v4: i32 = 691;
2847pub const SN_X9_62_c2onb191v5: &[u8; 11] = b"c2onb191v5\0";
2848pub const NID_X9_62_c2onb191v5: i32 = 692;
2849pub const SN_X9_62_c2pnb208w1: &[u8; 11] = b"c2pnb208w1\0";
2850pub const NID_X9_62_c2pnb208w1: i32 = 693;
2851pub const SN_X9_62_c2tnb239v1: &[u8; 11] = b"c2tnb239v1\0";
2852pub const NID_X9_62_c2tnb239v1: i32 = 694;
2853pub const SN_X9_62_c2tnb239v2: &[u8; 11] = b"c2tnb239v2\0";
2854pub const NID_X9_62_c2tnb239v2: i32 = 695;
2855pub const SN_X9_62_c2tnb239v3: &[u8; 11] = b"c2tnb239v3\0";
2856pub const NID_X9_62_c2tnb239v3: i32 = 696;
2857pub const SN_X9_62_c2onb239v4: &[u8; 11] = b"c2onb239v4\0";
2858pub const NID_X9_62_c2onb239v4: i32 = 697;
2859pub const SN_X9_62_c2onb239v5: &[u8; 11] = b"c2onb239v5\0";
2860pub const NID_X9_62_c2onb239v5: i32 = 698;
2861pub const SN_X9_62_c2pnb272w1: &[u8; 11] = b"c2pnb272w1\0";
2862pub const NID_X9_62_c2pnb272w1: i32 = 699;
2863pub const SN_X9_62_c2pnb304w1: &[u8; 11] = b"c2pnb304w1\0";
2864pub const NID_X9_62_c2pnb304w1: i32 = 700;
2865pub const SN_X9_62_c2tnb359v1: &[u8; 11] = b"c2tnb359v1\0";
2866pub const NID_X9_62_c2tnb359v1: i32 = 701;
2867pub const SN_X9_62_c2pnb368w1: &[u8; 11] = b"c2pnb368w1\0";
2868pub const NID_X9_62_c2pnb368w1: i32 = 702;
2869pub const SN_X9_62_c2tnb431r1: &[u8; 11] = b"c2tnb431r1\0";
2870pub const NID_X9_62_c2tnb431r1: i32 = 703;
2871pub const SN_secp112r1: &[u8; 10] = b"secp112r1\0";
2872pub const NID_secp112r1: i32 = 704;
2873pub const SN_secp112r2: &[u8; 10] = b"secp112r2\0";
2874pub const NID_secp112r2: i32 = 705;
2875pub const SN_secp128r1: &[u8; 10] = b"secp128r1\0";
2876pub const NID_secp128r1: i32 = 706;
2877pub const SN_secp128r2: &[u8; 10] = b"secp128r2\0";
2878pub const NID_secp128r2: i32 = 707;
2879pub const SN_secp160k1: &[u8; 10] = b"secp160k1\0";
2880pub const NID_secp160k1: i32 = 708;
2881pub const SN_secp160r1: &[u8; 10] = b"secp160r1\0";
2882pub const NID_secp160r1: i32 = 709;
2883pub const SN_secp160r2: &[u8; 10] = b"secp160r2\0";
2884pub const NID_secp160r2: i32 = 710;
2885pub const SN_secp192k1: &[u8; 10] = b"secp192k1\0";
2886pub const NID_secp192k1: i32 = 711;
2887pub const SN_secp224k1: &[u8; 10] = b"secp224k1\0";
2888pub const NID_secp224k1: i32 = 712;
2889pub const SN_secp224r1: &[u8; 10] = b"secp224r1\0";
2890pub const NID_secp224r1: i32 = 713;
2891pub const SN_secp256k1: &[u8; 10] = b"secp256k1\0";
2892pub const NID_secp256k1: i32 = 714;
2893pub const SN_secp384r1: &[u8; 10] = b"secp384r1\0";
2894pub const NID_secp384r1: i32 = 715;
2895pub const SN_secp521r1: &[u8; 10] = b"secp521r1\0";
2896pub const NID_secp521r1: i32 = 716;
2897pub const SN_sect113r1: &[u8; 10] = b"sect113r1\0";
2898pub const NID_sect113r1: i32 = 717;
2899pub const SN_sect113r2: &[u8; 10] = b"sect113r2\0";
2900pub const NID_sect113r2: i32 = 718;
2901pub const SN_sect131r1: &[u8; 10] = b"sect131r1\0";
2902pub const NID_sect131r1: i32 = 719;
2903pub const SN_sect131r2: &[u8; 10] = b"sect131r2\0";
2904pub const NID_sect131r2: i32 = 720;
2905pub const SN_sect163k1: &[u8; 10] = b"sect163k1\0";
2906pub const NID_sect163k1: i32 = 721;
2907pub const SN_sect163r1: &[u8; 10] = b"sect163r1\0";
2908pub const NID_sect163r1: i32 = 722;
2909pub const SN_sect163r2: &[u8; 10] = b"sect163r2\0";
2910pub const NID_sect163r2: i32 = 723;
2911pub const SN_sect193r1: &[u8; 10] = b"sect193r1\0";
2912pub const NID_sect193r1: i32 = 724;
2913pub const SN_sect193r2: &[u8; 10] = b"sect193r2\0";
2914pub const NID_sect193r2: i32 = 725;
2915pub const SN_sect233k1: &[u8; 10] = b"sect233k1\0";
2916pub const NID_sect233k1: i32 = 726;
2917pub const SN_sect233r1: &[u8; 10] = b"sect233r1\0";
2918pub const NID_sect233r1: i32 = 727;
2919pub const SN_sect239k1: &[u8; 10] = b"sect239k1\0";
2920pub const NID_sect239k1: i32 = 728;
2921pub const SN_sect283k1: &[u8; 10] = b"sect283k1\0";
2922pub const NID_sect283k1: i32 = 729;
2923pub const SN_sect283r1: &[u8; 10] = b"sect283r1\0";
2924pub const NID_sect283r1: i32 = 730;
2925pub const SN_sect409k1: &[u8; 10] = b"sect409k1\0";
2926pub const NID_sect409k1: i32 = 731;
2927pub const SN_sect409r1: &[u8; 10] = b"sect409r1\0";
2928pub const NID_sect409r1: i32 = 732;
2929pub const SN_sect571k1: &[u8; 10] = b"sect571k1\0";
2930pub const NID_sect571k1: i32 = 733;
2931pub const SN_sect571r1: &[u8; 10] = b"sect571r1\0";
2932pub const NID_sect571r1: i32 = 734;
2933pub const SN_wap_wsg_idm_ecid_wtls1: &[u8; 23] = b"wap-wsg-idm-ecid-wtls1\0";
2934pub const NID_wap_wsg_idm_ecid_wtls1: i32 = 735;
2935pub const SN_wap_wsg_idm_ecid_wtls3: &[u8; 23] = b"wap-wsg-idm-ecid-wtls3\0";
2936pub const NID_wap_wsg_idm_ecid_wtls3: i32 = 736;
2937pub const SN_wap_wsg_idm_ecid_wtls4: &[u8; 23] = b"wap-wsg-idm-ecid-wtls4\0";
2938pub const NID_wap_wsg_idm_ecid_wtls4: i32 = 737;
2939pub const SN_wap_wsg_idm_ecid_wtls5: &[u8; 23] = b"wap-wsg-idm-ecid-wtls5\0";
2940pub const NID_wap_wsg_idm_ecid_wtls5: i32 = 738;
2941pub const SN_wap_wsg_idm_ecid_wtls6: &[u8; 23] = b"wap-wsg-idm-ecid-wtls6\0";
2942pub const NID_wap_wsg_idm_ecid_wtls6: i32 = 739;
2943pub const SN_wap_wsg_idm_ecid_wtls7: &[u8; 23] = b"wap-wsg-idm-ecid-wtls7\0";
2944pub const NID_wap_wsg_idm_ecid_wtls7: i32 = 740;
2945pub const SN_wap_wsg_idm_ecid_wtls8: &[u8; 23] = b"wap-wsg-idm-ecid-wtls8\0";
2946pub const NID_wap_wsg_idm_ecid_wtls8: i32 = 741;
2947pub const SN_wap_wsg_idm_ecid_wtls9: &[u8; 23] = b"wap-wsg-idm-ecid-wtls9\0";
2948pub const NID_wap_wsg_idm_ecid_wtls9: i32 = 742;
2949pub const SN_wap_wsg_idm_ecid_wtls10: &[u8; 24] = b"wap-wsg-idm-ecid-wtls10\0";
2950pub const NID_wap_wsg_idm_ecid_wtls10: i32 = 743;
2951pub const SN_wap_wsg_idm_ecid_wtls11: &[u8; 24] = b"wap-wsg-idm-ecid-wtls11\0";
2952pub const NID_wap_wsg_idm_ecid_wtls11: i32 = 744;
2953pub const SN_wap_wsg_idm_ecid_wtls12: &[u8; 24] = b"wap-wsg-idm-ecid-wtls12\0";
2954pub const NID_wap_wsg_idm_ecid_wtls12: i32 = 745;
2955pub const SN_any_policy: &[u8; 10] = b"anyPolicy\0";
2956pub const LN_any_policy: &[u8; 18] = b"X509v3 Any Policy\0";
2957pub const NID_any_policy: i32 = 746;
2958pub const SN_policy_mappings: &[u8; 15] = b"policyMappings\0";
2959pub const LN_policy_mappings: &[u8; 23] = b"X509v3 Policy Mappings\0";
2960pub const NID_policy_mappings: i32 = 747;
2961pub const SN_inhibit_any_policy: &[u8; 17] = b"inhibitAnyPolicy\0";
2962pub const LN_inhibit_any_policy: &[u8; 26] = b"X509v3 Inhibit Any Policy\0";
2963pub const NID_inhibit_any_policy: i32 = 748;
2964pub const SN_ipsec3: &[u8; 14] = b"Oakley-EC2N-3\0";
2965pub const LN_ipsec3: &[u8; 7] = b"ipsec3\0";
2966pub const NID_ipsec3: i32 = 749;
2967pub const SN_ipsec4: &[u8; 14] = b"Oakley-EC2N-4\0";
2968pub const LN_ipsec4: &[u8; 7] = b"ipsec4\0";
2969pub const NID_ipsec4: i32 = 750;
2970pub const SN_camellia_128_cbc: &[u8; 17] = b"CAMELLIA-128-CBC\0";
2971pub const LN_camellia_128_cbc: &[u8; 17] = b"camellia-128-cbc\0";
2972pub const NID_camellia_128_cbc: i32 = 751;
2973pub const SN_camellia_192_cbc: &[u8; 17] = b"CAMELLIA-192-CBC\0";
2974pub const LN_camellia_192_cbc: &[u8; 17] = b"camellia-192-cbc\0";
2975pub const NID_camellia_192_cbc: i32 = 752;
2976pub const SN_camellia_256_cbc: &[u8; 17] = b"CAMELLIA-256-CBC\0";
2977pub const LN_camellia_256_cbc: &[u8; 17] = b"camellia-256-cbc\0";
2978pub const NID_camellia_256_cbc: i32 = 753;
2979pub const SN_camellia_128_ecb: &[u8; 17] = b"CAMELLIA-128-ECB\0";
2980pub const LN_camellia_128_ecb: &[u8; 17] = b"camellia-128-ecb\0";
2981pub const NID_camellia_128_ecb: i32 = 754;
2982pub const SN_camellia_192_ecb: &[u8; 17] = b"CAMELLIA-192-ECB\0";
2983pub const LN_camellia_192_ecb: &[u8; 17] = b"camellia-192-ecb\0";
2984pub const NID_camellia_192_ecb: i32 = 755;
2985pub const SN_camellia_256_ecb: &[u8; 17] = b"CAMELLIA-256-ECB\0";
2986pub const LN_camellia_256_ecb: &[u8; 17] = b"camellia-256-ecb\0";
2987pub const NID_camellia_256_ecb: i32 = 756;
2988pub const SN_camellia_128_cfb128: &[u8; 17] = b"CAMELLIA-128-CFB\0";
2989pub const LN_camellia_128_cfb128: &[u8; 17] = b"camellia-128-cfb\0";
2990pub const NID_camellia_128_cfb128: i32 = 757;
2991pub const SN_camellia_192_cfb128: &[u8; 17] = b"CAMELLIA-192-CFB\0";
2992pub const LN_camellia_192_cfb128: &[u8; 17] = b"camellia-192-cfb\0";
2993pub const NID_camellia_192_cfb128: i32 = 758;
2994pub const SN_camellia_256_cfb128: &[u8; 17] = b"CAMELLIA-256-CFB\0";
2995pub const LN_camellia_256_cfb128: &[u8; 17] = b"camellia-256-cfb\0";
2996pub const NID_camellia_256_cfb128: i32 = 759;
2997pub const SN_camellia_128_cfb1: &[u8; 18] = b"CAMELLIA-128-CFB1\0";
2998pub const LN_camellia_128_cfb1: &[u8; 18] = b"camellia-128-cfb1\0";
2999pub const NID_camellia_128_cfb1: i32 = 760;
3000pub const SN_camellia_192_cfb1: &[u8; 18] = b"CAMELLIA-192-CFB1\0";
3001pub const LN_camellia_192_cfb1: &[u8; 18] = b"camellia-192-cfb1\0";
3002pub const NID_camellia_192_cfb1: i32 = 761;
3003pub const SN_camellia_256_cfb1: &[u8; 18] = b"CAMELLIA-256-CFB1\0";
3004pub const LN_camellia_256_cfb1: &[u8; 18] = b"camellia-256-cfb1\0";
3005pub const NID_camellia_256_cfb1: i32 = 762;
3006pub const SN_camellia_128_cfb8: &[u8; 18] = b"CAMELLIA-128-CFB8\0";
3007pub const LN_camellia_128_cfb8: &[u8; 18] = b"camellia-128-cfb8\0";
3008pub const NID_camellia_128_cfb8: i32 = 763;
3009pub const SN_camellia_192_cfb8: &[u8; 18] = b"CAMELLIA-192-CFB8\0";
3010pub const LN_camellia_192_cfb8: &[u8; 18] = b"camellia-192-cfb8\0";
3011pub const NID_camellia_192_cfb8: i32 = 764;
3012pub const SN_camellia_256_cfb8: &[u8; 18] = b"CAMELLIA-256-CFB8\0";
3013pub const LN_camellia_256_cfb8: &[u8; 18] = b"camellia-256-cfb8\0";
3014pub const NID_camellia_256_cfb8: i32 = 765;
3015pub const SN_camellia_128_ofb128: &[u8; 17] = b"CAMELLIA-128-OFB\0";
3016pub const LN_camellia_128_ofb128: &[u8; 17] = b"camellia-128-ofb\0";
3017pub const NID_camellia_128_ofb128: i32 = 766;
3018pub const SN_camellia_192_ofb128: &[u8; 17] = b"CAMELLIA-192-OFB\0";
3019pub const LN_camellia_192_ofb128: &[u8; 17] = b"camellia-192-ofb\0";
3020pub const NID_camellia_192_ofb128: i32 = 767;
3021pub const SN_camellia_256_ofb128: &[u8; 17] = b"CAMELLIA-256-OFB\0";
3022pub const LN_camellia_256_ofb128: &[u8; 17] = b"camellia-256-ofb\0";
3023pub const NID_camellia_256_ofb128: i32 = 768;
3024pub const SN_subject_directory_attributes: &[u8; 27] = b"subjectDirectoryAttributes\0";
3025pub const LN_subject_directory_attributes: &[u8; 36] = b"X509v3 Subject Directory Attributes\0";
3026pub const NID_subject_directory_attributes: i32 = 769;
3027pub const SN_issuing_distribution_point: &[u8; 25] = b"issuingDistributionPoint\0";
3028pub const LN_issuing_distribution_point: &[u8; 34] = b"X509v3 Issuing Distribution Point\0";
3029pub const NID_issuing_distribution_point: i32 = 770;
3030pub const SN_certificate_issuer: &[u8; 18] = b"certificateIssuer\0";
3031pub const LN_certificate_issuer: &[u8; 26] = b"X509v3 Certificate Issuer\0";
3032pub const NID_certificate_issuer: i32 = 771;
3033pub const SN_kisa: &[u8; 5] = b"KISA\0";
3034pub const LN_kisa: &[u8; 5] = b"kisa\0";
3035pub const NID_kisa: i32 = 773;
3036pub const SN_seed_ecb: &[u8; 9] = b"SEED-ECB\0";
3037pub const LN_seed_ecb: &[u8; 9] = b"seed-ecb\0";
3038pub const NID_seed_ecb: i32 = 776;
3039pub const SN_seed_cbc: &[u8; 9] = b"SEED-CBC\0";
3040pub const LN_seed_cbc: &[u8; 9] = b"seed-cbc\0";
3041pub const NID_seed_cbc: i32 = 777;
3042pub const SN_seed_ofb128: &[u8; 9] = b"SEED-OFB\0";
3043pub const LN_seed_ofb128: &[u8; 9] = b"seed-ofb\0";
3044pub const NID_seed_ofb128: i32 = 778;
3045pub const SN_seed_cfb128: &[u8; 9] = b"SEED-CFB\0";
3046pub const LN_seed_cfb128: &[u8; 9] = b"seed-cfb\0";
3047pub const NID_seed_cfb128: i32 = 779;
3048pub const SN_hmac_md5: &[u8; 9] = b"HMAC-MD5\0";
3049pub const LN_hmac_md5: &[u8; 9] = b"hmac-md5\0";
3050pub const NID_hmac_md5: i32 = 780;
3051pub const SN_hmac_sha1: &[u8; 10] = b"HMAC-SHA1\0";
3052pub const LN_hmac_sha1: &[u8; 10] = b"hmac-sha1\0";
3053pub const NID_hmac_sha1: i32 = 781;
3054pub const SN_id_PasswordBasedMAC: &[u8; 20] = b"id-PasswordBasedMAC\0";
3055pub const LN_id_PasswordBasedMAC: &[u8; 19] = b"password based MAC\0";
3056pub const NID_id_PasswordBasedMAC: i32 = 782;
3057pub const SN_id_DHBasedMac: &[u8; 14] = b"id-DHBasedMac\0";
3058pub const LN_id_DHBasedMac: &[u8; 25] = b"Diffie-Hellman based MAC\0";
3059pub const NID_id_DHBasedMac: i32 = 783;
3060pub const SN_id_it_suppLangTags: &[u8; 19] = b"id-it-suppLangTags\0";
3061pub const NID_id_it_suppLangTags: i32 = 784;
3062pub const SN_caRepository: &[u8; 13] = b"caRepository\0";
3063pub const LN_caRepository: &[u8; 14] = b"CA Repository\0";
3064pub const NID_caRepository: i32 = 785;
3065pub const SN_id_smime_ct_compressedData: &[u8; 27] = b"id-smime-ct-compressedData\0";
3066pub const NID_id_smime_ct_compressedData: i32 = 786;
3067pub const SN_id_ct_asciiTextWithCRLF: &[u8; 24] = b"id-ct-asciiTextWithCRLF\0";
3068pub const NID_id_ct_asciiTextWithCRLF: i32 = 787;
3069pub const SN_id_aes128_wrap: &[u8; 15] = b"id-aes128-wrap\0";
3070pub const NID_id_aes128_wrap: i32 = 788;
3071pub const SN_id_aes192_wrap: &[u8; 15] = b"id-aes192-wrap\0";
3072pub const NID_id_aes192_wrap: i32 = 789;
3073pub const SN_id_aes256_wrap: &[u8; 15] = b"id-aes256-wrap\0";
3074pub const NID_id_aes256_wrap: i32 = 790;
3075pub const SN_ecdsa_with_Recommended: &[u8; 23] = b"ecdsa-with-Recommended\0";
3076pub const NID_ecdsa_with_Recommended: i32 = 791;
3077pub const SN_ecdsa_with_Specified: &[u8; 21] = b"ecdsa-with-Specified\0";
3078pub const NID_ecdsa_with_Specified: i32 = 792;
3079pub const SN_ecdsa_with_SHA224: &[u8; 18] = b"ecdsa-with-SHA224\0";
3080pub const NID_ecdsa_with_SHA224: i32 = 793;
3081pub const SN_ecdsa_with_SHA256: &[u8; 18] = b"ecdsa-with-SHA256\0";
3082pub const NID_ecdsa_with_SHA256: i32 = 794;
3083pub const SN_ecdsa_with_SHA384: &[u8; 18] = b"ecdsa-with-SHA384\0";
3084pub const NID_ecdsa_with_SHA384: i32 = 795;
3085pub const SN_ecdsa_with_SHA512: &[u8; 18] = b"ecdsa-with-SHA512\0";
3086pub const NID_ecdsa_with_SHA512: i32 = 796;
3087pub const LN_hmacWithMD5: &[u8; 12] = b"hmacWithMD5\0";
3088pub const NID_hmacWithMD5: i32 = 797;
3089pub const LN_hmacWithSHA224: &[u8; 15] = b"hmacWithSHA224\0";
3090pub const NID_hmacWithSHA224: i32 = 798;
3091pub const LN_hmacWithSHA256: &[u8; 15] = b"hmacWithSHA256\0";
3092pub const NID_hmacWithSHA256: i32 = 799;
3093pub const LN_hmacWithSHA384: &[u8; 15] = b"hmacWithSHA384\0";
3094pub const NID_hmacWithSHA384: i32 = 800;
3095pub const LN_hmacWithSHA512: &[u8; 15] = b"hmacWithSHA512\0";
3096pub const NID_hmacWithSHA512: i32 = 801;
3097pub const SN_dsa_with_SHA224: &[u8; 16] = b"dsa_with_SHA224\0";
3098pub const NID_dsa_with_SHA224: i32 = 802;
3099pub const SN_dsa_with_SHA256: &[u8; 16] = b"dsa_with_SHA256\0";
3100pub const NID_dsa_with_SHA256: i32 = 803;
3101pub const SN_whirlpool: &[u8; 10] = b"whirlpool\0";
3102pub const NID_whirlpool: i32 = 804;
3103pub const SN_cryptopro: &[u8; 10] = b"cryptopro\0";
3104pub const NID_cryptopro: i32 = 805;
3105pub const SN_cryptocom: &[u8; 10] = b"cryptocom\0";
3106pub const NID_cryptocom: i32 = 806;
3107pub const SN_id_GostR3411_94_with_GostR3410_2001: &[u8; 36] =
3108    b"id-GostR3411-94-with-GostR3410-2001\0";
3109pub const LN_id_GostR3411_94_with_GostR3410_2001: &[u8; 39] =
3110    b"GOST R 34.11-94 with GOST R 34.10-2001\0";
3111pub const NID_id_GostR3411_94_with_GostR3410_2001: i32 = 807;
3112pub const SN_id_GostR3411_94_with_GostR3410_94: &[u8; 34] = b"id-GostR3411-94-with-GostR3410-94\0";
3113pub const LN_id_GostR3411_94_with_GostR3410_94: &[u8; 37] =
3114    b"GOST R 34.11-94 with GOST R 34.10-94\0";
3115pub const NID_id_GostR3411_94_with_GostR3410_94: i32 = 808;
3116pub const SN_id_GostR3411_94: &[u8; 10] = b"md_gost94\0";
3117pub const LN_id_GostR3411_94: &[u8; 16] = b"GOST R 34.11-94\0";
3118pub const NID_id_GostR3411_94: i32 = 809;
3119pub const SN_id_HMACGostR3411_94: &[u8; 20] = b"id-HMACGostR3411-94\0";
3120pub const LN_id_HMACGostR3411_94: &[u8; 19] = b"HMAC GOST 34.11-94\0";
3121pub const NID_id_HMACGostR3411_94: i32 = 810;
3122pub const SN_id_GostR3410_2001: &[u8; 9] = b"gost2001\0";
3123pub const LN_id_GostR3410_2001: &[u8; 18] = b"GOST R 34.10-2001\0";
3124pub const NID_id_GostR3410_2001: i32 = 811;
3125pub const SN_id_GostR3410_94: &[u8; 7] = b"gost94\0";
3126pub const LN_id_GostR3410_94: &[u8; 16] = b"GOST R 34.10-94\0";
3127pub const NID_id_GostR3410_94: i32 = 812;
3128pub const SN_id_Gost28147_89: &[u8; 7] = b"gost89\0";
3129pub const LN_id_Gost28147_89: &[u8; 14] = b"GOST 28147-89\0";
3130pub const NID_id_Gost28147_89: i32 = 813;
3131pub const SN_gost89_cnt: &[u8; 11] = b"gost89-cnt\0";
3132pub const NID_gost89_cnt: i32 = 814;
3133pub const SN_id_Gost28147_89_MAC: &[u8; 9] = b"gost-mac\0";
3134pub const LN_id_Gost28147_89_MAC: &[u8; 18] = b"GOST 28147-89 MAC\0";
3135pub const NID_id_Gost28147_89_MAC: i32 = 815;
3136pub const SN_id_GostR3411_94_prf: &[u8; 17] = b"prf-gostr3411-94\0";
3137pub const LN_id_GostR3411_94_prf: &[u8; 20] = b"GOST R 34.11-94 PRF\0";
3138pub const NID_id_GostR3411_94_prf: i32 = 816;
3139pub const SN_id_GostR3410_2001DH: &[u8; 20] = b"id-GostR3410-2001DH\0";
3140pub const LN_id_GostR3410_2001DH: &[u8; 21] = b"GOST R 34.10-2001 DH\0";
3141pub const NID_id_GostR3410_2001DH: i32 = 817;
3142pub const SN_id_GostR3410_94DH: &[u8; 18] = b"id-GostR3410-94DH\0";
3143pub const LN_id_GostR3410_94DH: &[u8; 19] = b"GOST R 34.10-94 DH\0";
3144pub const NID_id_GostR3410_94DH: i32 = 818;
3145pub const SN_id_Gost28147_89_CryptoPro_KeyMeshing: &[u8; 37] =
3146    b"id-Gost28147-89-CryptoPro-KeyMeshing\0";
3147pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing: i32 = 819;
3148pub const SN_id_Gost28147_89_None_KeyMeshing: &[u8; 32] = b"id-Gost28147-89-None-KeyMeshing\0";
3149pub const NID_id_Gost28147_89_None_KeyMeshing: i32 = 820;
3150pub const SN_id_GostR3411_94_TestParamSet: &[u8; 29] = b"id-GostR3411-94-TestParamSet\0";
3151pub const NID_id_GostR3411_94_TestParamSet: i32 = 821;
3152pub const SN_id_GostR3411_94_CryptoProParamSet: &[u8; 34] = b"id-GostR3411-94-CryptoProParamSet\0";
3153pub const NID_id_GostR3411_94_CryptoProParamSet: i32 = 822;
3154pub const SN_id_Gost28147_89_TestParamSet: &[u8; 29] = b"id-Gost28147-89-TestParamSet\0";
3155pub const NID_id_Gost28147_89_TestParamSet: i32 = 823;
3156pub const SN_id_Gost28147_89_CryptoPro_A_ParamSet: &[u8; 37] =
3157    b"id-Gost28147-89-CryptoPro-A-ParamSet\0";
3158pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet: i32 = 824;
3159pub const SN_id_Gost28147_89_CryptoPro_B_ParamSet: &[u8; 37] =
3160    b"id-Gost28147-89-CryptoPro-B-ParamSet\0";
3161pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet: i32 = 825;
3162pub const SN_id_Gost28147_89_CryptoPro_C_ParamSet: &[u8; 37] =
3163    b"id-Gost28147-89-CryptoPro-C-ParamSet\0";
3164pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet: i32 = 826;
3165pub const SN_id_Gost28147_89_CryptoPro_D_ParamSet: &[u8; 37] =
3166    b"id-Gost28147-89-CryptoPro-D-ParamSet\0";
3167pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet: i32 = 827;
3168pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: &[u8; 45] =
3169    b"id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet\0";
3170pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: i32 = 828;
3171pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: &[u8; 45] =
3172    b"id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet\0";
3173pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: i32 = 829;
3174pub const SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: &[u8; 41] =
3175    b"id-Gost28147-89-CryptoPro-RIC-1-ParamSet\0";
3176pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: i32 = 830;
3177pub const SN_id_GostR3410_94_TestParamSet: &[u8; 29] = b"id-GostR3410-94-TestParamSet\0";
3178pub const NID_id_GostR3410_94_TestParamSet: i32 = 831;
3179pub const SN_id_GostR3410_94_CryptoPro_A_ParamSet: &[u8; 37] =
3180    b"id-GostR3410-94-CryptoPro-A-ParamSet\0";
3181pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet: i32 = 832;
3182pub const SN_id_GostR3410_94_CryptoPro_B_ParamSet: &[u8; 37] =
3183    b"id-GostR3410-94-CryptoPro-B-ParamSet\0";
3184pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet: i32 = 833;
3185pub const SN_id_GostR3410_94_CryptoPro_C_ParamSet: &[u8; 37] =
3186    b"id-GostR3410-94-CryptoPro-C-ParamSet\0";
3187pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet: i32 = 834;
3188pub const SN_id_GostR3410_94_CryptoPro_D_ParamSet: &[u8; 37] =
3189    b"id-GostR3410-94-CryptoPro-D-ParamSet\0";
3190pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet: i32 = 835;
3191pub const SN_id_GostR3410_94_CryptoPro_XchA_ParamSet: &[u8; 40] =
3192    b"id-GostR3410-94-CryptoPro-XchA-ParamSet\0";
3193pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet: i32 = 836;
3194pub const SN_id_GostR3410_94_CryptoPro_XchB_ParamSet: &[u8; 40] =
3195    b"id-GostR3410-94-CryptoPro-XchB-ParamSet\0";
3196pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet: i32 = 837;
3197pub const SN_id_GostR3410_94_CryptoPro_XchC_ParamSet: &[u8; 40] =
3198    b"id-GostR3410-94-CryptoPro-XchC-ParamSet\0";
3199pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet: i32 = 838;
3200pub const SN_id_GostR3410_2001_TestParamSet: &[u8; 31] = b"id-GostR3410-2001-TestParamSet\0";
3201pub const NID_id_GostR3410_2001_TestParamSet: i32 = 839;
3202pub const SN_id_GostR3410_2001_CryptoPro_A_ParamSet: &[u8; 39] =
3203    b"id-GostR3410-2001-CryptoPro-A-ParamSet\0";
3204pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet: i32 = 840;
3205pub const SN_id_GostR3410_2001_CryptoPro_B_ParamSet: &[u8; 39] =
3206    b"id-GostR3410-2001-CryptoPro-B-ParamSet\0";
3207pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet: i32 = 841;
3208pub const SN_id_GostR3410_2001_CryptoPro_C_ParamSet: &[u8; 39] =
3209    b"id-GostR3410-2001-CryptoPro-C-ParamSet\0";
3210pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet: i32 = 842;
3211pub const SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet: &[u8; 42] =
3212    b"id-GostR3410-2001-CryptoPro-XchA-ParamSet\0";
3213pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: i32 = 843;
3214pub const SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet: &[u8; 42] =
3215    b"id-GostR3410-2001-CryptoPro-XchB-ParamSet\0";
3216pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: i32 = 844;
3217pub const SN_id_GostR3410_94_a: &[u8; 18] = b"id-GostR3410-94-a\0";
3218pub const NID_id_GostR3410_94_a: i32 = 845;
3219pub const SN_id_GostR3410_94_aBis: &[u8; 21] = b"id-GostR3410-94-aBis\0";
3220pub const NID_id_GostR3410_94_aBis: i32 = 846;
3221pub const SN_id_GostR3410_94_b: &[u8; 18] = b"id-GostR3410-94-b\0";
3222pub const NID_id_GostR3410_94_b: i32 = 847;
3223pub const SN_id_GostR3410_94_bBis: &[u8; 21] = b"id-GostR3410-94-bBis\0";
3224pub const NID_id_GostR3410_94_bBis: i32 = 848;
3225pub const SN_id_Gost28147_89_cc: &[u8; 19] = b"id-Gost28147-89-cc\0";
3226pub const LN_id_Gost28147_89_cc: &[u8; 33] = b"GOST 28147-89 Cryptocom ParamSet\0";
3227pub const NID_id_Gost28147_89_cc: i32 = 849;
3228pub const SN_id_GostR3410_94_cc: &[u8; 9] = b"gost94cc\0";
3229pub const LN_id_GostR3410_94_cc: &[u8; 24] = b"GOST 34.10-94 Cryptocom\0";
3230pub const NID_id_GostR3410_94_cc: i32 = 850;
3231pub const SN_id_GostR3410_2001_cc: &[u8; 11] = b"gost2001cc\0";
3232pub const LN_id_GostR3410_2001_cc: &[u8; 26] = b"GOST 34.10-2001 Cryptocom\0";
3233pub const NID_id_GostR3410_2001_cc: i32 = 851;
3234pub const SN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 37] =
3235    b"id-GostR3411-94-with-GostR3410-94-cc\0";
3236pub const LN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 47] =
3237    b"GOST R 34.11-94 with GOST R 34.10-94 Cryptocom\0";
3238pub const NID_id_GostR3411_94_with_GostR3410_94_cc: i32 = 852;
3239pub const SN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 39] =
3240    b"id-GostR3411-94-with-GostR3410-2001-cc\0";
3241pub const LN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 49] =
3242    b"GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom\0";
3243pub const NID_id_GostR3411_94_with_GostR3410_2001_cc: i32 = 853;
3244pub const SN_id_GostR3410_2001_ParamSet_cc: &[u8; 30] = b"id-GostR3410-2001-ParamSet-cc\0";
3245pub const LN_id_GostR3410_2001_ParamSet_cc: &[u8; 41] =
3246    b"GOST R 3410-2001 Parameter Set Cryptocom\0";
3247pub const NID_id_GostR3410_2001_ParamSet_cc: i32 = 854;
3248pub const SN_hmac: &[u8; 5] = b"HMAC\0";
3249pub const LN_hmac: &[u8; 5] = b"hmac\0";
3250pub const NID_hmac: i32 = 855;
3251pub const SN_LocalKeySet: &[u8; 12] = b"LocalKeySet\0";
3252pub const LN_LocalKeySet: &[u8; 24] = b"Microsoft Local Key set\0";
3253pub const NID_LocalKeySet: i32 = 856;
3254pub const SN_freshest_crl: &[u8; 12] = b"freshestCRL\0";
3255pub const LN_freshest_crl: &[u8; 20] = b"X509v3 Freshest CRL\0";
3256pub const NID_freshest_crl: i32 = 857;
3257pub const SN_id_on_permanentIdentifier: &[u8; 26] = b"id-on-permanentIdentifier\0";
3258pub const LN_id_on_permanentIdentifier: &[u8; 21] = b"Permanent Identifier\0";
3259pub const NID_id_on_permanentIdentifier: i32 = 858;
3260pub const LN_searchGuide: &[u8; 12] = b"searchGuide\0";
3261pub const NID_searchGuide: i32 = 859;
3262pub const LN_businessCategory: &[u8; 17] = b"businessCategory\0";
3263pub const NID_businessCategory: i32 = 860;
3264pub const LN_postalAddress: &[u8; 14] = b"postalAddress\0";
3265pub const NID_postalAddress: i32 = 861;
3266pub const LN_postOfficeBox: &[u8; 14] = b"postOfficeBox\0";
3267pub const NID_postOfficeBox: i32 = 862;
3268pub const LN_physicalDeliveryOfficeName: &[u8; 27] = b"physicalDeliveryOfficeName\0";
3269pub const NID_physicalDeliveryOfficeName: i32 = 863;
3270pub const LN_telephoneNumber: &[u8; 16] = b"telephoneNumber\0";
3271pub const NID_telephoneNumber: i32 = 864;
3272pub const LN_telexNumber: &[u8; 12] = b"telexNumber\0";
3273pub const NID_telexNumber: i32 = 865;
3274pub const LN_teletexTerminalIdentifier: &[u8; 26] = b"teletexTerminalIdentifier\0";
3275pub const NID_teletexTerminalIdentifier: i32 = 866;
3276pub const LN_facsimileTelephoneNumber: &[u8; 25] = b"facsimileTelephoneNumber\0";
3277pub const NID_facsimileTelephoneNumber: i32 = 867;
3278pub const LN_x121Address: &[u8; 12] = b"x121Address\0";
3279pub const NID_x121Address: i32 = 868;
3280pub const LN_internationaliSDNNumber: &[u8; 24] = b"internationaliSDNNumber\0";
3281pub const NID_internationaliSDNNumber: i32 = 869;
3282pub const LN_registeredAddress: &[u8; 18] = b"registeredAddress\0";
3283pub const NID_registeredAddress: i32 = 870;
3284pub const LN_destinationIndicator: &[u8; 21] = b"destinationIndicator\0";
3285pub const NID_destinationIndicator: i32 = 871;
3286pub const LN_preferredDeliveryMethod: &[u8; 24] = b"preferredDeliveryMethod\0";
3287pub const NID_preferredDeliveryMethod: i32 = 872;
3288pub const LN_presentationAddress: &[u8; 20] = b"presentationAddress\0";
3289pub const NID_presentationAddress: i32 = 873;
3290pub const LN_supportedApplicationContext: &[u8; 28] = b"supportedApplicationContext\0";
3291pub const NID_supportedApplicationContext: i32 = 874;
3292pub const SN_member: &[u8; 7] = b"member\0";
3293pub const NID_member: i32 = 875;
3294pub const SN_owner: &[u8; 6] = b"owner\0";
3295pub const NID_owner: i32 = 876;
3296pub const LN_roleOccupant: &[u8; 13] = b"roleOccupant\0";
3297pub const NID_roleOccupant: i32 = 877;
3298pub const SN_seeAlso: &[u8; 8] = b"seeAlso\0";
3299pub const NID_seeAlso: i32 = 878;
3300pub const LN_userPassword: &[u8; 13] = b"userPassword\0";
3301pub const NID_userPassword: i32 = 879;
3302pub const LN_userCertificate: &[u8; 16] = b"userCertificate\0";
3303pub const NID_userCertificate: i32 = 880;
3304pub const LN_cACertificate: &[u8; 14] = b"cACertificate\0";
3305pub const NID_cACertificate: i32 = 881;
3306pub const LN_authorityRevocationList: &[u8; 24] = b"authorityRevocationList\0";
3307pub const NID_authorityRevocationList: i32 = 882;
3308pub const LN_certificateRevocationList: &[u8; 26] = b"certificateRevocationList\0";
3309pub const NID_certificateRevocationList: i32 = 883;
3310pub const LN_crossCertificatePair: &[u8; 21] = b"crossCertificatePair\0";
3311pub const NID_crossCertificatePair: i32 = 884;
3312pub const LN_enhancedSearchGuide: &[u8; 20] = b"enhancedSearchGuide\0";
3313pub const NID_enhancedSearchGuide: i32 = 885;
3314pub const LN_protocolInformation: &[u8; 20] = b"protocolInformation\0";
3315pub const NID_protocolInformation: i32 = 886;
3316pub const LN_distinguishedName: &[u8; 18] = b"distinguishedName\0";
3317pub const NID_distinguishedName: i32 = 887;
3318pub const LN_uniqueMember: &[u8; 13] = b"uniqueMember\0";
3319pub const NID_uniqueMember: i32 = 888;
3320pub const LN_houseIdentifier: &[u8; 16] = b"houseIdentifier\0";
3321pub const NID_houseIdentifier: i32 = 889;
3322pub const LN_supportedAlgorithms: &[u8; 20] = b"supportedAlgorithms\0";
3323pub const NID_supportedAlgorithms: i32 = 890;
3324pub const LN_deltaRevocationList: &[u8; 20] = b"deltaRevocationList\0";
3325pub const NID_deltaRevocationList: i32 = 891;
3326pub const SN_dmdName: &[u8; 8] = b"dmdName\0";
3327pub const NID_dmdName: i32 = 892;
3328pub const SN_id_alg_PWRI_KEK: &[u8; 16] = b"id-alg-PWRI-KEK\0";
3329pub const NID_id_alg_PWRI_KEK: i32 = 893;
3330pub const SN_cmac: &[u8; 5] = b"CMAC\0";
3331pub const LN_cmac: &[u8; 5] = b"cmac\0";
3332pub const NID_cmac: i32 = 894;
3333pub const SN_aes_128_gcm: &[u8; 14] = b"id-aes128-GCM\0";
3334pub const LN_aes_128_gcm: &[u8; 12] = b"aes-128-gcm\0";
3335pub const NID_aes_128_gcm: i32 = 895;
3336pub const SN_aes_128_ccm: &[u8; 14] = b"id-aes128-CCM\0";
3337pub const LN_aes_128_ccm: &[u8; 12] = b"aes-128-ccm\0";
3338pub const NID_aes_128_ccm: i32 = 896;
3339pub const SN_id_aes128_wrap_pad: &[u8; 19] = b"id-aes128-wrap-pad\0";
3340pub const NID_id_aes128_wrap_pad: i32 = 897;
3341pub const SN_aes_192_gcm: &[u8; 14] = b"id-aes192-GCM\0";
3342pub const LN_aes_192_gcm: &[u8; 12] = b"aes-192-gcm\0";
3343pub const NID_aes_192_gcm: i32 = 898;
3344pub const SN_aes_192_ccm: &[u8; 14] = b"id-aes192-CCM\0";
3345pub const LN_aes_192_ccm: &[u8; 12] = b"aes-192-ccm\0";
3346pub const NID_aes_192_ccm: i32 = 899;
3347pub const SN_id_aes192_wrap_pad: &[u8; 19] = b"id-aes192-wrap-pad\0";
3348pub const NID_id_aes192_wrap_pad: i32 = 900;
3349pub const SN_aes_256_gcm: &[u8; 14] = b"id-aes256-GCM\0";
3350pub const LN_aes_256_gcm: &[u8; 12] = b"aes-256-gcm\0";
3351pub const NID_aes_256_gcm: i32 = 901;
3352pub const SN_aes_256_ccm: &[u8; 14] = b"id-aes256-CCM\0";
3353pub const LN_aes_256_ccm: &[u8; 12] = b"aes-256-ccm\0";
3354pub const NID_aes_256_ccm: i32 = 902;
3355pub const SN_id_aes256_wrap_pad: &[u8; 19] = b"id-aes256-wrap-pad\0";
3356pub const NID_id_aes256_wrap_pad: i32 = 903;
3357pub const SN_aes_128_ctr: &[u8; 12] = b"AES-128-CTR\0";
3358pub const LN_aes_128_ctr: &[u8; 12] = b"aes-128-ctr\0";
3359pub const NID_aes_128_ctr: i32 = 904;
3360pub const SN_aes_192_ctr: &[u8; 12] = b"AES-192-CTR\0";
3361pub const LN_aes_192_ctr: &[u8; 12] = b"aes-192-ctr\0";
3362pub const NID_aes_192_ctr: i32 = 905;
3363pub const SN_aes_256_ctr: &[u8; 12] = b"AES-256-CTR\0";
3364pub const LN_aes_256_ctr: &[u8; 12] = b"aes-256-ctr\0";
3365pub const NID_aes_256_ctr: i32 = 906;
3366pub const SN_id_camellia128_wrap: &[u8; 20] = b"id-camellia128-wrap\0";
3367pub const NID_id_camellia128_wrap: i32 = 907;
3368pub const SN_id_camellia192_wrap: &[u8; 20] = b"id-camellia192-wrap\0";
3369pub const NID_id_camellia192_wrap: i32 = 908;
3370pub const SN_id_camellia256_wrap: &[u8; 20] = b"id-camellia256-wrap\0";
3371pub const NID_id_camellia256_wrap: i32 = 909;
3372pub const SN_anyExtendedKeyUsage: &[u8; 20] = b"anyExtendedKeyUsage\0";
3373pub const LN_anyExtendedKeyUsage: &[u8; 23] = b"Any Extended Key Usage\0";
3374pub const NID_anyExtendedKeyUsage: i32 = 910;
3375pub const SN_mgf1: &[u8; 5] = b"MGF1\0";
3376pub const LN_mgf1: &[u8; 5] = b"mgf1\0";
3377pub const NID_mgf1: i32 = 911;
3378pub const SN_rsassaPss: &[u8; 11] = b"RSASSA-PSS\0";
3379pub const LN_rsassaPss: &[u8; 10] = b"rsassaPss\0";
3380pub const NID_rsassaPss: i32 = 912;
3381pub const SN_aes_128_xts: &[u8; 12] = b"AES-128-XTS\0";
3382pub const LN_aes_128_xts: &[u8; 12] = b"aes-128-xts\0";
3383pub const NID_aes_128_xts: i32 = 913;
3384pub const SN_aes_256_xts: &[u8; 12] = b"AES-256-XTS\0";
3385pub const LN_aes_256_xts: &[u8; 12] = b"aes-256-xts\0";
3386pub const NID_aes_256_xts: i32 = 914;
3387pub const SN_rc4_hmac_md5: &[u8; 13] = b"RC4-HMAC-MD5\0";
3388pub const LN_rc4_hmac_md5: &[u8; 13] = b"rc4-hmac-md5\0";
3389pub const NID_rc4_hmac_md5: i32 = 915;
3390pub const SN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"AES-128-CBC-HMAC-SHA1\0";
3391pub const LN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"aes-128-cbc-hmac-sha1\0";
3392pub const NID_aes_128_cbc_hmac_sha1: i32 = 916;
3393pub const SN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"AES-192-CBC-HMAC-SHA1\0";
3394pub const LN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"aes-192-cbc-hmac-sha1\0";
3395pub const NID_aes_192_cbc_hmac_sha1: i32 = 917;
3396pub const SN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"AES-256-CBC-HMAC-SHA1\0";
3397pub const LN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"aes-256-cbc-hmac-sha1\0";
3398pub const NID_aes_256_cbc_hmac_sha1: i32 = 918;
3399pub const SN_rsaesOaep: &[u8; 11] = b"RSAES-OAEP\0";
3400pub const LN_rsaesOaep: &[u8; 10] = b"rsaesOaep\0";
3401pub const NID_rsaesOaep: i32 = 919;
3402pub const SN_dhpublicnumber: &[u8; 15] = b"dhpublicnumber\0";
3403pub const LN_dhpublicnumber: &[u8; 9] = b"X9.42 DH\0";
3404pub const NID_dhpublicnumber: i32 = 920;
3405pub const SN_brainpoolP160r1: &[u8; 16] = b"brainpoolP160r1\0";
3406pub const NID_brainpoolP160r1: i32 = 921;
3407pub const SN_brainpoolP160t1: &[u8; 16] = b"brainpoolP160t1\0";
3408pub const NID_brainpoolP160t1: i32 = 922;
3409pub const SN_brainpoolP192r1: &[u8; 16] = b"brainpoolP192r1\0";
3410pub const NID_brainpoolP192r1: i32 = 923;
3411pub const SN_brainpoolP192t1: &[u8; 16] = b"brainpoolP192t1\0";
3412pub const NID_brainpoolP192t1: i32 = 924;
3413pub const SN_brainpoolP224r1: &[u8; 16] = b"brainpoolP224r1\0";
3414pub const NID_brainpoolP224r1: i32 = 925;
3415pub const SN_brainpoolP224t1: &[u8; 16] = b"brainpoolP224t1\0";
3416pub const NID_brainpoolP224t1: i32 = 926;
3417pub const SN_brainpoolP256r1: &[u8; 16] = b"brainpoolP256r1\0";
3418pub const NID_brainpoolP256r1: i32 = 927;
3419pub const SN_brainpoolP256t1: &[u8; 16] = b"brainpoolP256t1\0";
3420pub const NID_brainpoolP256t1: i32 = 928;
3421pub const SN_brainpoolP320r1: &[u8; 16] = b"brainpoolP320r1\0";
3422pub const NID_brainpoolP320r1: i32 = 929;
3423pub const SN_brainpoolP320t1: &[u8; 16] = b"brainpoolP320t1\0";
3424pub const NID_brainpoolP320t1: i32 = 930;
3425pub const SN_brainpoolP384r1: &[u8; 16] = b"brainpoolP384r1\0";
3426pub const NID_brainpoolP384r1: i32 = 931;
3427pub const SN_brainpoolP384t1: &[u8; 16] = b"brainpoolP384t1\0";
3428pub const NID_brainpoolP384t1: i32 = 932;
3429pub const SN_brainpoolP512r1: &[u8; 16] = b"brainpoolP512r1\0";
3430pub const NID_brainpoolP512r1: i32 = 933;
3431pub const SN_brainpoolP512t1: &[u8; 16] = b"brainpoolP512t1\0";
3432pub const NID_brainpoolP512t1: i32 = 934;
3433pub const SN_pSpecified: &[u8; 11] = b"PSPECIFIED\0";
3434pub const LN_pSpecified: &[u8; 11] = b"pSpecified\0";
3435pub const NID_pSpecified: i32 = 935;
3436pub const SN_dhSinglePass_stdDH_sha1kdf_scheme: &[u8; 34] = b"dhSinglePass-stdDH-sha1kdf-scheme\0";
3437pub const NID_dhSinglePass_stdDH_sha1kdf_scheme: i32 = 936;
3438pub const SN_dhSinglePass_stdDH_sha224kdf_scheme: &[u8; 36] =
3439    b"dhSinglePass-stdDH-sha224kdf-scheme\0";
3440pub const NID_dhSinglePass_stdDH_sha224kdf_scheme: i32 = 937;
3441pub const SN_dhSinglePass_stdDH_sha256kdf_scheme: &[u8; 36] =
3442    b"dhSinglePass-stdDH-sha256kdf-scheme\0";
3443pub const NID_dhSinglePass_stdDH_sha256kdf_scheme: i32 = 938;
3444pub const SN_dhSinglePass_stdDH_sha384kdf_scheme: &[u8; 36] =
3445    b"dhSinglePass-stdDH-sha384kdf-scheme\0";
3446pub const NID_dhSinglePass_stdDH_sha384kdf_scheme: i32 = 939;
3447pub const SN_dhSinglePass_stdDH_sha512kdf_scheme: &[u8; 36] =
3448    b"dhSinglePass-stdDH-sha512kdf-scheme\0";
3449pub const NID_dhSinglePass_stdDH_sha512kdf_scheme: i32 = 940;
3450pub const SN_dhSinglePass_cofactorDH_sha1kdf_scheme: &[u8; 39] =
3451    b"dhSinglePass-cofactorDH-sha1kdf-scheme\0";
3452pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme: i32 = 941;
3453pub const SN_dhSinglePass_cofactorDH_sha224kdf_scheme: &[u8; 41] =
3454    b"dhSinglePass-cofactorDH-sha224kdf-scheme\0";
3455pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme: i32 = 942;
3456pub const SN_dhSinglePass_cofactorDH_sha256kdf_scheme: &[u8; 41] =
3457    b"dhSinglePass-cofactorDH-sha256kdf-scheme\0";
3458pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme: i32 = 943;
3459pub const SN_dhSinglePass_cofactorDH_sha384kdf_scheme: &[u8; 41] =
3460    b"dhSinglePass-cofactorDH-sha384kdf-scheme\0";
3461pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme: i32 = 944;
3462pub const SN_dhSinglePass_cofactorDH_sha512kdf_scheme: &[u8; 41] =
3463    b"dhSinglePass-cofactorDH-sha512kdf-scheme\0";
3464pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme: i32 = 945;
3465pub const SN_dh_std_kdf: &[u8; 11] = b"dh-std-kdf\0";
3466pub const NID_dh_std_kdf: i32 = 946;
3467pub const SN_dh_cofactor_kdf: &[u8; 16] = b"dh-cofactor-kdf\0";
3468pub const NID_dh_cofactor_kdf: i32 = 947;
3469pub const SN_X25519: &[u8; 7] = b"X25519\0";
3470pub const NID_X25519: i32 = 948;
3471pub const SN_ED25519: &[u8; 8] = b"ED25519\0";
3472pub const NID_ED25519: i32 = 949;
3473pub const SN_chacha20_poly1305: &[u8; 18] = b"ChaCha20-Poly1305\0";
3474pub const LN_chacha20_poly1305: &[u8; 18] = b"chacha20-poly1305\0";
3475pub const NID_chacha20_poly1305: i32 = 950;
3476pub const SN_kx_rsa: &[u8; 6] = b"KxRSA\0";
3477pub const LN_kx_rsa: &[u8; 7] = b"kx-rsa\0";
3478pub const NID_kx_rsa: i32 = 951;
3479pub const SN_kx_ecdhe: &[u8; 8] = b"KxECDHE\0";
3480pub const LN_kx_ecdhe: &[u8; 9] = b"kx-ecdhe\0";
3481pub const NID_kx_ecdhe: i32 = 952;
3482pub const SN_kx_psk: &[u8; 6] = b"KxPSK\0";
3483pub const LN_kx_psk: &[u8; 7] = b"kx-psk\0";
3484pub const NID_kx_psk: i32 = 953;
3485pub const SN_auth_rsa: &[u8; 8] = b"AuthRSA\0";
3486pub const LN_auth_rsa: &[u8; 9] = b"auth-rsa\0";
3487pub const NID_auth_rsa: i32 = 954;
3488pub const SN_auth_ecdsa: &[u8; 10] = b"AuthECDSA\0";
3489pub const LN_auth_ecdsa: &[u8; 11] = b"auth-ecdsa\0";
3490pub const NID_auth_ecdsa: i32 = 955;
3491pub const SN_auth_psk: &[u8; 8] = b"AuthPSK\0";
3492pub const LN_auth_psk: &[u8; 9] = b"auth-psk\0";
3493pub const NID_auth_psk: i32 = 956;
3494pub const SN_kx_any: &[u8; 6] = b"KxANY\0";
3495pub const LN_kx_any: &[u8; 7] = b"kx-any\0";
3496pub const NID_kx_any: i32 = 957;
3497pub const SN_auth_any: &[u8; 8] = b"AuthANY\0";
3498pub const LN_auth_any: &[u8; 9] = b"auth-any\0";
3499pub const NID_auth_any: i32 = 958;
3500pub const SN_ED448: &[u8; 6] = b"ED448\0";
3501pub const NID_ED448: i32 = 960;
3502pub const SN_X448: &[u8; 5] = b"X448\0";
3503pub const NID_X448: i32 = 961;
3504pub const SN_sha512_256: &[u8; 11] = b"SHA512-256\0";
3505pub const LN_sha512_256: &[u8; 11] = b"sha512-256\0";
3506pub const NID_sha512_256: i32 = 962;
3507pub const SN_hkdf: &[u8; 5] = b"HKDF\0";
3508pub const LN_hkdf: &[u8; 5] = b"hkdf\0";
3509pub const NID_hkdf: i32 = 963;
3510pub const SN_X25519Kyber768Draft00: &[u8; 22] = b"X25519Kyber768Draft00\0";
3511pub const NID_X25519Kyber768Draft00: i32 = 964;
3512pub const SN_X25519MLKEM768: &[u8; 15] = b"X25519MLKEM768\0";
3513pub const NID_X25519MLKEM768: i32 = 965;
3514pub const SN_ML_KEM_1024: &[u8; 19] = b"id-alg-ml-kem-1024\0";
3515pub const LN_ML_KEM_1024: &[u8; 12] = b"ML-KEM-1024\0";
3516pub const NID_ML_KEM_1024: i32 = 966;
3517pub const SN_ML_DSA_44: &[u8; 13] = b"id-ml-dsa-44\0";
3518pub const LN_ML_DSA_44: &[u8; 10] = b"ML-DSA-44\0";
3519pub const NID_ML_DSA_44: i32 = 967;
3520pub const SN_ML_DSA_65: &[u8; 13] = b"id-ml-dsa-65\0";
3521pub const LN_ML_DSA_65: &[u8; 10] = b"ML-DSA-65\0";
3522pub const NID_ML_DSA_65: i32 = 968;
3523pub const SN_ML_DSA_87: &[u8; 13] = b"id-ml-dsa-87\0";
3524pub const LN_ML_DSA_87: &[u8; 10] = b"ML-DSA-87\0";
3525pub const NID_ML_DSA_87: i32 = 969;
3526pub const SN_ML_KEM_768: &[u8; 18] = b"id-alg-ml-kem-768\0";
3527pub const LN_ML_KEM_768: &[u8; 11] = b"ML-KEM-768\0";
3528pub const NID_ML_KEM_768: i32 = 970;
3529pub const SN_X_Wing: &[u8; 7] = b"X-Wing\0";
3530pub const NID_X_Wing: i32 = 972;
3531pub const EVP_PKEY_NONE: i32 = 0;
3532pub const EVP_PKEY_RSA: i32 = 6;
3533pub const EVP_PKEY_RSA_PSS: i32 = 912;
3534pub const EVP_PKEY_DSA: i32 = 116;
3535pub const EVP_PKEY_EC: i32 = 408;
3536pub const EVP_PKEY_ED25519: i32 = 949;
3537pub const EVP_PKEY_X25519: i32 = 948;
3538pub const EVP_PKEY_HKDF: i32 = 963;
3539pub const EVP_PKEY_DH: i32 = 28;
3540pub const EVP_PKEY_ML_DSA_44: i32 = 967;
3541pub const EVP_PKEY_ML_DSA_65: i32 = 968;
3542pub const EVP_PKEY_ML_DSA_87: i32 = 969;
3543pub const EVP_PKEY_ML_KEM_768: i32 = 970;
3544pub const EVP_PKEY_ML_KEM_1024: i32 = 966;
3545pub const EVP_PKEY_XWING: i32 = 972;
3546pub const EVP_PKEY_RSA2: i32 = 19;
3547pub const EVP_PKEY_X448: i32 = 961;
3548pub const EVP_PKEY_ED448: i32 = 960;
3549pub const HKDF_R_OUTPUT_TOO_LARGE: i32 = 100;
3550pub const EVP_HPKE_DHKEM_P256_HKDF_SHA256: i32 = 16;
3551pub const EVP_HPKE_DHKEM_X25519_HKDF_SHA256: i32 = 32;
3552pub const EVP_HPKE_XWING: i32 = 25722;
3553pub const EVP_HPKE_MLKEM768: i32 = 65;
3554pub const EVP_HPKE_MLKEM1024: i32 = 66;
3555pub const EVP_HPKE_MAX_PUBLIC_KEY_LENGTH: i32 = 1568;
3556pub const EVP_HPKE_MAX_PRIVATE_KEY_LENGTH: i32 = 64;
3557pub const EVP_HPKE_MAX_ENC_LENGTH: i32 = 1568;
3558pub const EVP_HPKE_HKDF_SHA256: i32 = 1;
3559pub const EVP_HPKE_HKDF_SHA384: i32 = 2;
3560pub const EVP_HPKE_AES_128_GCM: i32 = 1;
3561pub const EVP_HPKE_AES_256_GCM: i32 = 2;
3562pub const EVP_HPKE_CHACHA20_POLY1305: i32 = 3;
3563pub const EVP_HPKE_MAX_OVERHEAD: i32 = 64;
3564pub const HRSS_SAMPLE_BYTES: i32 = 700;
3565pub const HRSS_GENERATE_KEY_BYTES: i32 = 1432;
3566pub const HRSS_ENCAP_BYTES: i32 = 1400;
3567pub const HRSS_PUBLIC_KEY_BYTES: i32 = 1138;
3568pub const HRSS_CIPHERTEXT_BYTES: i32 = 1138;
3569pub const HRSS_KEY_BYTES: i32 = 32;
3570pub const HRSS_POLY3_BYTES: i32 = 140;
3571pub const HRSS_PRIVATE_KEY_BYTES: i32 = 1452;
3572pub const EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND: i32 = 0;
3573pub const EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY: i32 = 1;
3574pub const EVP_PKEY_HKDEF_MODE_EXPAND_ONLY: i32 = 2;
3575pub const MD4_CBLOCK: i32 = 64;
3576pub const MD4_DIGEST_LENGTH: i32 = 16;
3577pub const MD5_CBLOCK: i32 = 64;
3578pub const MD5_DIGEST_LENGTH: i32 = 16;
3579pub const MLDSA_SEED_BYTES: i32 = 32;
3580pub const MLDSA_MU_BYTES: i32 = 64;
3581pub const MLDSA65_PUBLIC_KEY_BYTES: i32 = 1952;
3582pub const MLDSA65_SIGNATURE_BYTES: i32 = 3309;
3583pub const MLDSA87_PUBLIC_KEY_BYTES: i32 = 2592;
3584pub const MLDSA87_SIGNATURE_BYTES: i32 = 4627;
3585pub const MLDSA44_PUBLIC_KEY_BYTES: i32 = 1312;
3586pub const MLDSA44_SIGNATURE_BYTES: i32 = 2420;
3587pub const MLKEM768_PUBLIC_KEY_BYTES: i32 = 1184;
3588pub const MLKEM_SEED_BYTES: i32 = 64;
3589pub const MLKEM768_CIPHERTEXT_BYTES: i32 = 1088;
3590pub const MLKEM_SHARED_SECRET_BYTES: i32 = 32;
3591pub const MLKEM1024_PUBLIC_KEY_BYTES: i32 = 1568;
3592pub const MLKEM1024_CIPHERTEXT_BYTES: i32 = 1568;
3593pub const OBJ_NAME_TYPE_MD_METH: i32 = 1;
3594pub const OBJ_NAME_TYPE_CIPHER_METH: i32 = 2;
3595pub const OBJ_R_UNKNOWN_NID: i32 = 100;
3596pub const OBJ_R_INVALID_OID_STRING: i32 = 101;
3597pub const PKCS7_DETACHED: i32 = 64;
3598pub const PKCS7_TEXT: i32 = 1;
3599pub const PKCS7_NOCERTS: i32 = 2;
3600pub const PKCS7_NOSIGS: i32 = 4;
3601pub const PKCS7_NOCHAIN: i32 = 8;
3602pub const PKCS7_NOINTERN: i32 = 16;
3603pub const PKCS7_NOVERIFY: i32 = 32;
3604pub const PKCS7_BINARY: i32 = 128;
3605pub const PKCS7_NOATTR: i32 = 256;
3606pub const PKCS7_NOSMIMECAP: i32 = 512;
3607pub const PKCS7_STREAM: i32 = 4096;
3608pub const PKCS7_PARTIAL: i32 = 16384;
3609pub const PKCS7_R_BAD_PKCS7_VERSION: i32 = 100;
3610pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA: i32 = 101;
3611pub const PKCS7_R_NO_CERTIFICATES_INCLUDED: i32 = 102;
3612pub const PKCS7_R_NO_CRLS_INCLUDED: i32 = 103;
3613pub const OPENSSL_RSA_MAX_MODULUS_BITS: i32 = 16384;
3614pub const RSA_PKCS1_PADDING: i32 = 1;
3615pub const RSA_NO_PADDING: i32 = 3;
3616pub const RSA_PKCS1_OAEP_PADDING: i32 = 4;
3617pub const RSA_PKCS1_PSS_PADDING: i32 = 6;
3618pub const RSA_PSS_SALTLEN_DIGEST: i32 = -1;
3619pub const RSA_PSS_SALTLEN_AUTO: i32 = -2;
3620pub const RSA_FLAG_OPAQUE: i32 = 1;
3621pub const RSA_FLAG_NO_BLINDING: i32 = 8;
3622pub const RSA_FLAG_EXT_PKEY: i32 = 32;
3623pub const RSA_FLAG_NO_PUBLIC_EXPONENT: i32 = 64;
3624pub const RSA_FLAG_LARGE_PUBLIC_EXPONENT: i32 = 128;
3625pub const RSA_3: i32 = 3;
3626pub const RSA_F4: i32 = 65537;
3627pub const RSA_METHOD_FLAG_NO_CHECK: i32 = 1;
3628pub const RSA_R_BAD_ENCODING: i32 = 100;
3629pub const RSA_R_BAD_E_VALUE: i32 = 101;
3630pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: i32 = 102;
3631pub const RSA_R_BAD_PAD_BYTE_COUNT: i32 = 103;
3632pub const RSA_R_BAD_RSA_PARAMETERS: i32 = 104;
3633pub const RSA_R_BAD_SIGNATURE: i32 = 105;
3634pub const RSA_R_BAD_VERSION: i32 = 106;
3635pub const RSA_R_BLOCK_TYPE_IS_NOT_01: i32 = 107;
3636pub const RSA_R_BN_NOT_INITIALIZED: i32 = 108;
3637pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: i32 = 109;
3638pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: i32 = 110;
3639pub const RSA_R_CRT_VALUES_INCORRECT: i32 = 111;
3640pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: i32 = 112;
3641pub const RSA_R_DATA_TOO_LARGE: i32 = 113;
3642pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: i32 = 114;
3643pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: i32 = 115;
3644pub const RSA_R_DATA_TOO_SMALL: i32 = 116;
3645pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: i32 = 117;
3646pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: i32 = 118;
3647pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: i32 = 119;
3648pub const RSA_R_EMPTY_PUBLIC_KEY: i32 = 120;
3649pub const RSA_R_ENCODE_ERROR: i32 = 121;
3650pub const RSA_R_FIRST_OCTET_INVALID: i32 = 122;
3651pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: i32 = 123;
3652pub const RSA_R_INTERNAL_ERROR: i32 = 124;
3653pub const RSA_R_INVALID_MESSAGE_LENGTH: i32 = 125;
3654pub const RSA_R_KEY_SIZE_TOO_SMALL: i32 = 126;
3655pub const RSA_R_LAST_OCTET_INVALID: i32 = 127;
3656pub const RSA_R_MODULUS_TOO_LARGE: i32 = 128;
3657pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: i32 = 129;
3658pub const RSA_R_NO_PUBLIC_EXPONENT: i32 = 130;
3659pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: i32 = 131;
3660pub const RSA_R_N_NOT_EQUAL_P_Q: i32 = 132;
3661pub const RSA_R_OAEP_DECODING_ERROR: i32 = 133;
3662pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: i32 = 134;
3663pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: i32 = 135;
3664pub const RSA_R_PADDING_CHECK_FAILED: i32 = 136;
3665pub const RSA_R_PKCS_DECODING_ERROR: i32 = 137;
3666pub const RSA_R_SLEN_CHECK_FAILED: i32 = 138;
3667pub const RSA_R_SLEN_RECOVERY_FAILED: i32 = 139;
3668pub const RSA_R_TOO_LONG: i32 = 140;
3669pub const RSA_R_TOO_MANY_ITERATIONS: i32 = 141;
3670pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: i32 = 142;
3671pub const RSA_R_UNKNOWN_PADDING_TYPE: i32 = 143;
3672pub const RSA_R_VALUE_MISSING: i32 = 144;
3673pub const RSA_R_WRONG_SIGNATURE_LENGTH: i32 = 145;
3674pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 146;
3675pub const RSA_R_D_OUT_OF_RANGE: i32 = 147;
3676pub const RSA_R_BLOCK_TYPE_IS_NOT_02: i32 = 148;
3677pub const X509V3_R_BAD_IP_ADDRESS: i32 = 100;
3678pub const X509V3_R_BAD_OBJECT: i32 = 101;
3679pub const X509V3_R_BN_DEC2BN_ERROR: i32 = 102;
3680pub const X509V3_R_BN_TO_ASN1_INTEGER_ERROR: i32 = 103;
3681pub const X509V3_R_CANNOT_FIND_FREE_FUNCTION: i32 = 104;
3682pub const X509V3_R_DIRNAME_ERROR: i32 = 105;
3683pub const X509V3_R_DISTPOINT_ALREADY_SET: i32 = 106;
3684pub const X509V3_R_DUPLICATE_ZONE_ID: i32 = 107;
3685pub const X509V3_R_ERROR_CONVERTING_ZONE: i32 = 108;
3686pub const X509V3_R_ERROR_CREATING_EXTENSION: i32 = 109;
3687pub const X509V3_R_ERROR_IN_EXTENSION: i32 = 110;
3688pub const X509V3_R_EXPECTED_A_SECTION_NAME: i32 = 111;
3689pub const X509V3_R_EXTENSION_EXISTS: i32 = 112;
3690pub const X509V3_R_EXTENSION_NAME_ERROR: i32 = 113;
3691pub const X509V3_R_EXTENSION_NOT_FOUND: i32 = 114;
3692pub const X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED: i32 = 115;
3693pub const X509V3_R_EXTENSION_VALUE_ERROR: i32 = 116;
3694pub const X509V3_R_ILLEGAL_EMPTY_EXTENSION: i32 = 117;
3695pub const X509V3_R_ILLEGAL_HEX_DIGIT: i32 = 118;
3696pub const X509V3_R_INCORRECT_POLICY_SYNTAX_TAG: i32 = 119;
3697pub const X509V3_R_INVALID_BOOLEAN_STRING: i32 = 120;
3698pub const X509V3_R_INVALID_EXTENSION_STRING: i32 = 121;
3699pub const X509V3_R_INVALID_MULTIPLE_RDNS: i32 = 122;
3700pub const X509V3_R_INVALID_NAME: i32 = 123;
3701pub const X509V3_R_INVALID_NULL_ARGUMENT: i32 = 124;
3702pub const X509V3_R_INVALID_NULL_NAME: i32 = 125;
3703pub const X509V3_R_INVALID_NULL_VALUE: i32 = 126;
3704pub const X509V3_R_INVALID_NUMBER: i32 = 127;
3705pub const X509V3_R_INVALID_NUMBERS: i32 = 128;
3706pub const X509V3_R_INVALID_OBJECT_IDENTIFIER: i32 = 129;
3707pub const X509V3_R_INVALID_OPTION: i32 = 130;
3708pub const X509V3_R_INVALID_POLICY_IDENTIFIER: i32 = 131;
3709pub const X509V3_R_INVALID_PROXY_POLICY_SETTING: i32 = 132;
3710pub const X509V3_R_INVALID_PURPOSE: i32 = 133;
3711pub const X509V3_R_INVALID_SECTION: i32 = 134;
3712pub const X509V3_R_INVALID_SYNTAX: i32 = 135;
3713pub const X509V3_R_ISSUER_DECODE_ERROR: i32 = 136;
3714pub const X509V3_R_MISSING_VALUE: i32 = 137;
3715pub const X509V3_R_NEED_ORGANIZATION_AND_NUMBERS: i32 = 138;
3716pub const X509V3_R_NO_CONFIG_DATABASE: i32 = 139;
3717pub const X509V3_R_NO_ISSUER_CERTIFICATE: i32 = 140;
3718pub const X509V3_R_NO_ISSUER_DETAILS: i32 = 141;
3719pub const X509V3_R_NO_POLICY_IDENTIFIER: i32 = 142;
3720pub const X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED: i32 = 143;
3721pub const X509V3_R_NO_PUBLIC_KEY: i32 = 144;
3722pub const X509V3_R_NO_SUBJECT_DETAILS: i32 = 145;
3723pub const X509V3_R_ODD_NUMBER_OF_DIGITS: i32 = 146;
3724pub const X509V3_R_OPERATION_NOT_DEFINED: i32 = 147;
3725pub const X509V3_R_OTHERNAME_ERROR: i32 = 148;
3726pub const X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED: i32 = 149;
3727pub const X509V3_R_POLICY_PATH_LENGTH: i32 = 150;
3728pub const X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED: i32 = 151;
3729pub const X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY: i32 = 152;
3730pub const X509V3_R_SECTION_NOT_FOUND: i32 = 153;
3731pub const X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS: i32 = 154;
3732pub const X509V3_R_UNABLE_TO_GET_ISSUER_KEYID: i32 = 155;
3733pub const X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT: i32 = 156;
3734pub const X509V3_R_UNKNOWN_EXTENSION: i32 = 157;
3735pub const X509V3_R_UNKNOWN_EXTENSION_NAME: i32 = 158;
3736pub const X509V3_R_UNKNOWN_OPTION: i32 = 159;
3737pub const X509V3_R_UNSUPPORTED_OPTION: i32 = 160;
3738pub const X509V3_R_UNSUPPORTED_TYPE: i32 = 161;
3739pub const X509V3_R_USER_TOO_LONG: i32 = 162;
3740pub const X509V3_R_INVALID_VALUE: i32 = 163;
3741pub const X509V3_R_TRAILING_DATA_IN_EXTENSION: i32 = 164;
3742pub const X509_VERSION_1: i32 = 0;
3743pub const X509_VERSION_2: i32 = 1;
3744pub const X509_VERSION_3: i32 = 2;
3745pub const EXFLAG_BCONS: i32 = 1;
3746pub const EXFLAG_KUSAGE: i32 = 2;
3747pub const EXFLAG_XKUSAGE: i32 = 4;
3748pub const EXFLAG_CA: i32 = 16;
3749pub const EXFLAG_SI: i32 = 32;
3750pub const EXFLAG_V1: i32 = 64;
3751pub const EXFLAG_INVALID: i32 = 128;
3752pub const EXFLAG_SET: i32 = 256;
3753pub const EXFLAG_CRITICAL: i32 = 512;
3754pub const EXFLAG_SS: i32 = 8192;
3755pub const X509v3_KU_DIGITAL_SIGNATURE: i32 = 128;
3756pub const X509v3_KU_NON_REPUDIATION: i32 = 64;
3757pub const X509v3_KU_KEY_ENCIPHERMENT: i32 = 32;
3758pub const X509v3_KU_DATA_ENCIPHERMENT: i32 = 16;
3759pub const X509v3_KU_KEY_AGREEMENT: i32 = 8;
3760pub const X509v3_KU_KEY_CERT_SIGN: i32 = 4;
3761pub const X509v3_KU_CRL_SIGN: i32 = 2;
3762pub const X509v3_KU_ENCIPHER_ONLY: i32 = 1;
3763pub const X509v3_KU_DECIPHER_ONLY: i32 = 32768;
3764pub const XKU_SSL_SERVER: i32 = 1;
3765pub const XKU_SSL_CLIENT: i32 = 2;
3766pub const XKU_SMIME: i32 = 4;
3767pub const XKU_CODE_SIGN: i32 = 8;
3768pub const XKU_SGC: i32 = 16;
3769pub const XKU_OCSP_SIGN: i32 = 32;
3770pub const XKU_TIMESTAMP: i32 = 64;
3771pub const XKU_DVCS: i32 = 128;
3772pub const XKU_ANYEKU: i32 = 256;
3773pub const X509_CRL_VERSION_1: i32 = 0;
3774pub const X509_CRL_VERSION_2: i32 = 1;
3775pub const X509_REQ_VERSION_1: i32 = 0;
3776pub const X509V3_ADD_OP_MASK: i32 = 15;
3777pub const X509V3_ADD_DEFAULT: i32 = 0;
3778pub const X509V3_ADD_APPEND: i32 = 1;
3779pub const X509V3_ADD_REPLACE: i32 = 2;
3780pub const X509V3_ADD_REPLACE_EXISTING: i32 = 3;
3781pub const X509V3_ADD_KEEP_EXISTING: i32 = 4;
3782pub const X509V3_ADD_DELETE: i32 = 5;
3783pub const X509V3_ADD_SILENT: i32 = 16;
3784pub const GEN_OTHERNAME: i32 = 0;
3785pub const GEN_EMAIL: i32 = 1;
3786pub const GEN_DNS: i32 = 2;
3787pub const GEN_X400: i32 = 3;
3788pub const GEN_DIRNAME: i32 = 4;
3789pub const GEN_EDIPARTY: i32 = 5;
3790pub const GEN_URI: i32 = 6;
3791pub const GEN_IPADD: i32 = 7;
3792pub const GEN_RID: i32 = 8;
3793pub const X509_LU_NONE: i32 = 0;
3794pub const X509_LU_X509: i32 = 1;
3795pub const X509_LU_CRL: i32 = 2;
3796pub const X509_LU_PKEY: i32 = 3;
3797pub const X509_V_OK: i32 = 0;
3798pub const X509_V_ERR_UNSPECIFIED: i32 = 1;
3799pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: i32 = 2;
3800pub const X509_V_ERR_UNABLE_TO_GET_CRL: i32 = 3;
3801pub const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: i32 = 4;
3802pub const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: i32 = 5;
3803pub const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: i32 = 6;
3804pub const X509_V_ERR_CERT_SIGNATURE_FAILURE: i32 = 7;
3805pub const X509_V_ERR_CRL_SIGNATURE_FAILURE: i32 = 8;
3806pub const X509_V_ERR_CERT_NOT_YET_VALID: i32 = 9;
3807pub const X509_V_ERR_CERT_HAS_EXPIRED: i32 = 10;
3808pub const X509_V_ERR_CRL_NOT_YET_VALID: i32 = 11;
3809pub const X509_V_ERR_CRL_HAS_EXPIRED: i32 = 12;
3810pub const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: i32 = 13;
3811pub const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: i32 = 14;
3812pub const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: i32 = 15;
3813pub const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: i32 = 16;
3814pub const X509_V_ERR_OUT_OF_MEM: i32 = 17;
3815pub const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: i32 = 18;
3816pub const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: i32 = 19;
3817pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: i32 = 20;
3818pub const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: i32 = 21;
3819pub const X509_V_ERR_CERT_CHAIN_TOO_LONG: i32 = 22;
3820pub const X509_V_ERR_CERT_REVOKED: i32 = 23;
3821pub const X509_V_ERR_INVALID_CA: i32 = 24;
3822pub const X509_V_ERR_PATH_LENGTH_EXCEEDED: i32 = 25;
3823pub const X509_V_ERR_INVALID_PURPOSE: i32 = 26;
3824pub const X509_V_ERR_CERT_UNTRUSTED: i32 = 27;
3825pub const X509_V_ERR_CERT_REJECTED: i32 = 28;
3826pub const X509_V_ERR_SUBJECT_ISSUER_MISMATCH: i32 = 29;
3827pub const X509_V_ERR_AKID_SKID_MISMATCH: i32 = 30;
3828pub const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: i32 = 31;
3829pub const X509_V_ERR_KEYUSAGE_NO_CERTSIGN: i32 = 32;
3830pub const X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: i32 = 33;
3831pub const X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: i32 = 34;
3832pub const X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: i32 = 35;
3833pub const X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: i32 = 36;
3834pub const X509_V_ERR_INVALID_NON_CA: i32 = 37;
3835pub const X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: i32 = 38;
3836pub const X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: i32 = 39;
3837pub const X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: i32 = 40;
3838pub const X509_V_ERR_INVALID_EXTENSION: i32 = 41;
3839pub const X509_V_ERR_INVALID_POLICY_EXTENSION: i32 = 42;
3840pub const X509_V_ERR_NO_EXPLICIT_POLICY: i32 = 43;
3841pub const X509_V_ERR_DIFFERENT_CRL_SCOPE: i32 = 44;
3842pub const X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: i32 = 45;
3843pub const X509_V_ERR_UNNESTED_RESOURCE: i32 = 46;
3844pub const X509_V_ERR_PERMITTED_VIOLATION: i32 = 47;
3845pub const X509_V_ERR_EXCLUDED_VIOLATION: i32 = 48;
3846pub const X509_V_ERR_SUBTREE_MINMAX: i32 = 49;
3847pub const X509_V_ERR_APPLICATION_VERIFICATION: i32 = 50;
3848pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: i32 = 51;
3849pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: i32 = 52;
3850pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: i32 = 53;
3851pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR: i32 = 54;
3852pub const X509_V_ERR_HOSTNAME_MISMATCH: i32 = 62;
3853pub const X509_V_ERR_EMAIL_MISMATCH: i32 = 63;
3854pub const X509_V_ERR_IP_ADDRESS_MISMATCH: i32 = 64;
3855pub const X509_V_ERR_INVALID_CALL: i32 = 65;
3856pub const X509_V_ERR_STORE_LOOKUP: i32 = 66;
3857pub const X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS: i32 = 67;
3858pub const X509_V_FLAG_CB_ISSUER_CHECK: i32 = 1;
3859pub const X509_V_FLAG_USE_CHECK_TIME: i32 = 2;
3860pub const X509_V_FLAG_CRL_CHECK: i32 = 4;
3861pub const X509_V_FLAG_CRL_CHECK_ALL: i32 = 8;
3862pub const X509_V_FLAG_IGNORE_CRITICAL: i32 = 16;
3863pub const X509_V_FLAG_X509_STRICT: i32 = 0;
3864pub const X509_V_FLAG_ALLOW_PROXY_CERTS: i32 = 64;
3865pub const X509_V_FLAG_POLICY_CHECK: i32 = 128;
3866pub const X509_V_FLAG_EXPLICIT_POLICY: i32 = 256;
3867pub const X509_V_FLAG_INHIBIT_ANY: i32 = 512;
3868pub const X509_V_FLAG_INHIBIT_MAP: i32 = 1024;
3869pub const X509_V_FLAG_NOTIFY_POLICY: i32 = 2048;
3870pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT: i32 = 4096;
3871pub const X509_V_FLAG_USE_DELTAS: i32 = 8192;
3872pub const X509_V_FLAG_CHECK_SS_SIGNATURE: i32 = 16384;
3873pub const X509_V_FLAG_TRUSTED_FIRST: i32 = 32768;
3874pub const X509_V_FLAG_PARTIAL_CHAIN: i32 = 524288;
3875pub const X509_V_FLAG_NO_ALT_CHAINS: i32 = 1048576;
3876pub const X509_V_FLAG_NO_CHECK_TIME: i32 = 2097152;
3877pub const X509_CHECK_FLAG_NO_WILDCARDS: i32 = 2;
3878pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: i32 = 32;
3879pub const X509_PURPOSE_SSL_CLIENT: i32 = 1;
3880pub const X509_PURPOSE_SSL_SERVER: i32 = 2;
3881pub const X509_PURPOSE_NS_SSL_SERVER: i32 = 3;
3882pub const X509_PURPOSE_SMIME_SIGN: i32 = 4;
3883pub const X509_PURPOSE_SMIME_ENCRYPT: i32 = 5;
3884pub const X509_PURPOSE_CRL_SIGN: i32 = 6;
3885pub const X509_PURPOSE_ANY: i32 = 7;
3886pub const X509_PURPOSE_OCSP_HELPER: i32 = 8;
3887pub const X509_PURPOSE_TIMESTAMP_SIGN: i32 = 9;
3888pub const X509_TRUST_COMPAT: i32 = 1;
3889pub const X509_TRUST_SSL_CLIENT: i32 = 2;
3890pub const X509_TRUST_SSL_SERVER: i32 = 3;
3891pub const X509_TRUST_EMAIL: i32 = 4;
3892pub const X509_TRUST_OBJECT_SIGN: i32 = 5;
3893pub const X509_TRUST_TSA: i32 = 8;
3894pub const X509_FILETYPE_PEM: i32 = 1;
3895pub const X509_FILETYPE_ASN1: i32 = 2;
3896pub const X509_FILETYPE_DEFAULT: i32 = 3;
3897pub const X509_L_FILE_LOAD: i32 = 1;
3898pub const X509_L_ADD_DIR: i32 = 2;
3899pub const X509_FLAG_COMPAT: i32 = 0;
3900pub const X509_FLAG_NO_HEADER: i32 = 1;
3901pub const X509_FLAG_NO_VERSION: i32 = 2;
3902pub const X509_FLAG_NO_SERIAL: i32 = 4;
3903pub const X509_FLAG_NO_SIGNAME: i32 = 8;
3904pub const X509_FLAG_NO_ISSUER: i32 = 16;
3905pub const X509_FLAG_NO_VALIDITY: i32 = 32;
3906pub const X509_FLAG_NO_SUBJECT: i32 = 64;
3907pub const X509_FLAG_NO_PUBKEY: i32 = 128;
3908pub const X509_FLAG_NO_EXTENSIONS: i32 = 256;
3909pub const X509_FLAG_NO_SIGDUMP: i32 = 512;
3910pub const X509_FLAG_NO_AUX: i32 = 1024;
3911pub const X509_FLAG_NO_ATTRIBUTES: i32 = 2048;
3912pub const X509_FLAG_NO_IDS: i32 = 4096;
3913pub const X509V3_EXT_UNKNOWN_MASK: i32 = 983040;
3914pub const X509V3_EXT_DEFAULT: i32 = 0;
3915pub const X509V3_EXT_ERROR_UNKNOWN: i32 = 65536;
3916pub const X509V3_EXT_PARSE_UNKNOWN: i32 = 131072;
3917pub const X509V3_EXT_DUMP_UNKNOWN: i32 = 196608;
3918pub const XN_FLAG_COMPAT: i32 = 0;
3919pub const XN_FLAG_SEP_MASK: i32 = 983040;
3920pub const XN_FLAG_SEP_COMMA_PLUS: i32 = 65536;
3921pub const XN_FLAG_SEP_CPLUS_SPC: i32 = 131072;
3922pub const XN_FLAG_SEP_SPLUS_SPC: i32 = 196608;
3923pub const XN_FLAG_SEP_MULTILINE: i32 = 262144;
3924pub const XN_FLAG_DN_REV: i32 = 1048576;
3925pub const XN_FLAG_FN_MASK: i32 = 6291456;
3926pub const XN_FLAG_FN_SN: i32 = 0;
3927pub const XN_FLAG_SPC_EQ: i32 = 8388608;
3928pub const XN_FLAG_DUMP_UNKNOWN_FIELDS: i32 = 16777216;
3929pub const XN_FLAG_RFC2253: i32 = 17892119;
3930pub const XN_FLAG_ONELINE: i32 = 8520479;
3931pub const X509_TRUST_TRUSTED: i32 = 1;
3932pub const X509_TRUST_REJECTED: i32 = 2;
3933pub const X509_TRUST_UNTRUSTED: i32 = 3;
3934pub const X509V3_EXT_MULTILINE: i32 = 4;
3935pub const X509V3_CTX_TEST: i32 = 1;
3936pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: i32 = 0;
3937pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: i32 = 0;
3938pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: i32 = 0;
3939pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: i32 = 0;
3940pub const NS_SSL_CLIENT: i32 = 128;
3941pub const NS_SSL_SERVER: i32 = 64;
3942pub const NS_SMIME: i32 = 32;
3943pub const NS_OBJSIGN: i32 = 16;
3944pub const NS_SSL_CA: i32 = 4;
3945pub const NS_SMIME_CA: i32 = 2;
3946pub const NS_OBJSIGN_CA: i32 = 1;
3947pub const NS_ANY_CA: i32 = 7;
3948pub const X509_R_AKID_MISMATCH: i32 = 100;
3949pub const X509_R_BAD_PKCS7_VERSION: i32 = 101;
3950pub const X509_R_BAD_X509_FILETYPE: i32 = 102;
3951pub const X509_R_BASE64_DECODE_ERROR: i32 = 103;
3952pub const X509_R_CANT_CHECK_DH_KEY: i32 = 104;
3953pub const X509_R_CERT_ALREADY_IN_HASH_TABLE: i32 = 105;
3954pub const X509_R_CRL_ALREADY_DELTA: i32 = 106;
3955pub const X509_R_CRL_VERIFY_FAILURE: i32 = 107;
3956pub const X509_R_IDP_MISMATCH: i32 = 108;
3957pub const X509_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 109;
3958pub const X509_R_INVALID_DIRECTORY: i32 = 110;
3959pub const X509_R_INVALID_FIELD_NAME: i32 = 111;
3960pub const X509_R_INVALID_PSS_PARAMETERS: i32 = 112;
3961pub const X509_R_INVALID_TRUST: i32 = 113;
3962pub const X509_R_ISSUER_MISMATCH: i32 = 114;
3963pub const X509_R_KEY_TYPE_MISMATCH: i32 = 115;
3964pub const X509_R_KEY_VALUES_MISMATCH: i32 = 116;
3965pub const X509_R_LOADING_CERT_DIR: i32 = 117;
3966pub const X509_R_LOADING_DEFAULTS: i32 = 118;
3967pub const X509_R_NEWER_CRL_NOT_NEWER: i32 = 119;
3968pub const X509_R_NOT_PKCS7_SIGNED_DATA: i32 = 120;
3969pub const X509_R_NO_CERTIFICATES_INCLUDED: i32 = 121;
3970pub const X509_R_NO_CERT_SET_FOR_US_TO_VERIFY: i32 = 122;
3971pub const X509_R_NO_CRLS_INCLUDED: i32 = 123;
3972pub const X509_R_NO_CRL_NUMBER: i32 = 124;
3973pub const X509_R_PUBLIC_KEY_DECODE_ERROR: i32 = 125;
3974pub const X509_R_PUBLIC_KEY_ENCODE_ERROR: i32 = 126;
3975pub const X509_R_SHOULD_RETRY: i32 = 127;
3976pub const X509_R_UNKNOWN_KEY_TYPE: i32 = 128;
3977pub const X509_R_UNKNOWN_NID: i32 = 129;
3978pub const X509_R_UNKNOWN_PURPOSE_ID: i32 = 130;
3979pub const X509_R_UNKNOWN_TRUST_ID: i32 = 131;
3980pub const X509_R_UNSUPPORTED_ALGORITHM: i32 = 132;
3981pub const X509_R_WRONG_LOOKUP_TYPE: i32 = 133;
3982pub const X509_R_WRONG_TYPE: i32 = 134;
3983pub const X509_R_NAME_TOO_LONG: i32 = 135;
3984pub const X509_R_INVALID_PARAMETER: i32 = 136;
3985pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH: i32 = 137;
3986pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER: i32 = 138;
3987pub const X509_R_INVALID_FIELD_FOR_VERSION: i32 = 139;
3988pub const X509_R_INVALID_VERSION: i32 = 140;
3989pub const X509_R_NO_CERTIFICATE_FOUND: i32 = 141;
3990pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND: i32 = 142;
3991pub const X509_R_NO_CRL_FOUND: i32 = 143;
3992pub const X509_R_INVALID_POLICY_EXTENSION: i32 = 144;
3993pub const PEM_BUFSIZE: i32 = 1024;
3994pub const PEM_STRING_X509_OLD: &[u8; 17] = b"X509 CERTIFICATE\0";
3995pub const PEM_STRING_X509: &[u8; 12] = b"CERTIFICATE\0";
3996pub const PEM_STRING_X509_PAIR: &[u8; 17] = b"CERTIFICATE PAIR\0";
3997pub const PEM_STRING_X509_TRUSTED: &[u8; 20] = b"TRUSTED CERTIFICATE\0";
3998pub const PEM_STRING_X509_REQ_OLD: &[u8; 24] = b"NEW CERTIFICATE REQUEST\0";
3999pub const PEM_STRING_X509_REQ: &[u8; 20] = b"CERTIFICATE REQUEST\0";
4000pub const PEM_STRING_X509_CRL: &[u8; 9] = b"X509 CRL\0";
4001pub const PEM_STRING_PUBLIC: &[u8; 11] = b"PUBLIC KEY\0";
4002pub const PEM_STRING_RSA: &[u8; 16] = b"RSA PRIVATE KEY\0";
4003pub const PEM_STRING_RSA_PUBLIC: &[u8; 15] = b"RSA PUBLIC KEY\0";
4004pub const PEM_STRING_DSA: &[u8; 16] = b"DSA PRIVATE KEY\0";
4005pub const PEM_STRING_DSA_PUBLIC: &[u8; 15] = b"DSA PUBLIC KEY\0";
4006pub const PEM_STRING_EC: &[u8; 15] = b"EC PRIVATE KEY\0";
4007pub const PEM_STRING_PKCS7: &[u8; 6] = b"PKCS7\0";
4008pub const PEM_STRING_PKCS7_SIGNED: &[u8; 20] = b"PKCS #7 SIGNED DATA\0";
4009pub const PEM_STRING_PKCS8: &[u8; 22] = b"ENCRYPTED PRIVATE KEY\0";
4010pub const PEM_STRING_PKCS8INF: &[u8; 12] = b"PRIVATE KEY\0";
4011pub const PEM_STRING_DHPARAMS: &[u8; 14] = b"DH PARAMETERS\0";
4012pub const PEM_STRING_SSL_SESSION: &[u8; 23] = b"SSL SESSION PARAMETERS\0";
4013pub const PEM_STRING_DSAPARAMS: &[u8; 15] = b"DSA PARAMETERS\0";
4014pub const PEM_STRING_ECDSA_PUBLIC: &[u8; 17] = b"ECDSA PUBLIC KEY\0";
4015pub const PEM_STRING_ECPRIVATEKEY: &[u8; 15] = b"EC PRIVATE KEY\0";
4016pub const PEM_STRING_CMS: &[u8; 4] = b"CMS\0";
4017pub const PEM_STRING_EVP_PKEY: &[u8; 16] = b"ANY PRIVATE KEY\0";
4018pub const PEM_R_BAD_BASE64_DECODE: i32 = 100;
4019pub const PEM_R_BAD_DECRYPT: i32 = 101;
4020pub const PEM_R_BAD_END_LINE: i32 = 102;
4021pub const PEM_R_BAD_IV_CHARS: i32 = 103;
4022pub const PEM_R_BAD_PASSWORD_READ: i32 = 104;
4023pub const PEM_R_CIPHER_IS_NULL: i32 = 105;
4024pub const PEM_R_ERROR_CONVERTING_PRIVATE_KEY: i32 = 106;
4025pub const PEM_R_NOT_DEK_INFO: i32 = 107;
4026pub const PEM_R_NOT_ENCRYPTED: i32 = 108;
4027pub const PEM_R_NOT_PROC_TYPE: i32 = 109;
4028pub const PEM_R_NO_START_LINE: i32 = 110;
4029pub const PEM_R_READ_KEY: i32 = 111;
4030pub const PEM_R_SHORT_HEADER: i32 = 112;
4031pub const PEM_R_UNSUPPORTED_CIPHER: i32 = 113;
4032pub const PEM_R_UNSUPPORTED_ENCRYPTION: i32 = 114;
4033pub const PEM_R_UNSUPPORTED_PROC_TYPE_VERSION: i32 = 115;
4034pub const PEM_R_NO_DATA: i32 = 116;
4035pub const PKCS12_DEFAULT_ITER: i32 = 2048;
4036pub const PKCS8_R_BAD_PKCS12_DATA: i32 = 100;
4037pub const PKCS8_R_BAD_PKCS12_VERSION: i32 = 101;
4038pub const PKCS8_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 102;
4039pub const PKCS8_R_CRYPT_ERROR: i32 = 103;
4040pub const PKCS8_R_DECODE_ERROR: i32 = 104;
4041pub const PKCS8_R_ENCODE_ERROR: i32 = 105;
4042pub const PKCS8_R_ENCRYPT_ERROR: i32 = 106;
4043pub const PKCS8_R_ERROR_SETTING_CIPHER_PARAMS: i32 = 107;
4044pub const PKCS8_R_INCORRECT_PASSWORD: i32 = 108;
4045pub const PKCS8_R_KEYGEN_FAILURE: i32 = 109;
4046pub const PKCS8_R_KEY_GEN_ERROR: i32 = 110;
4047pub const PKCS8_R_METHOD_NOT_SUPPORTED: i32 = 111;
4048pub const PKCS8_R_MISSING_MAC: i32 = 112;
4049pub const PKCS8_R_MULTIPLE_PRIVATE_KEYS_IN_PKCS12: i32 = 113;
4050pub const PKCS8_R_PKCS12_PUBLIC_KEY_INTEGRITY_NOT_SUPPORTED: i32 = 114;
4051pub const PKCS8_R_PKCS12_TOO_DEEPLY_NESTED: i32 = 115;
4052pub const PKCS8_R_PRIVATE_KEY_DECODE_ERROR: i32 = 116;
4053pub const PKCS8_R_PRIVATE_KEY_ENCODE_ERROR: i32 = 117;
4054pub const PKCS8_R_TOO_LONG: i32 = 118;
4055pub const PKCS8_R_UNKNOWN_ALGORITHM: i32 = 119;
4056pub const PKCS8_R_UNKNOWN_CIPHER: i32 = 120;
4057pub const PKCS8_R_UNKNOWN_CIPHER_ALGORITHM: i32 = 121;
4058pub const PKCS8_R_UNKNOWN_DIGEST: i32 = 122;
4059pub const PKCS8_R_UNKNOWN_HASH: i32 = 123;
4060pub const PKCS8_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM: i32 = 124;
4061pub const PKCS8_R_UNSUPPORTED_KEYLENGTH: i32 = 125;
4062pub const PKCS8_R_UNSUPPORTED_SALT_TYPE: i32 = 126;
4063pub const PKCS8_R_UNSUPPORTED_CIPHER: i32 = 127;
4064pub const PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION: i32 = 128;
4065pub const PKCS8_R_BAD_ITERATION_COUNT: i32 = 129;
4066pub const PKCS8_R_UNSUPPORTED_PRF: i32 = 130;
4067pub const PKCS8_R_INVALID_CHARACTERS: i32 = 131;
4068pub const PKCS8_R_UNSUPPORTED_OPTIONS: i32 = 132;
4069pub const PKCS8_R_AMBIGUOUS_FRIENDLY_NAME: i32 = 133;
4070pub const RIPEMD160_CBLOCK: i32 = 64;
4071pub const RIPEMD160_LBLOCK: i32 = 16;
4072pub const RIPEMD160_DIGEST_LENGTH: i32 = 20;
4073pub const SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES: i32 = 32;
4074pub const SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES: i32 = 64;
4075pub const SLHDSA_SHA2_128S_SIGNATURE_BYTES: i32 = 7856;
4076pub const SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES: i32 = 64;
4077pub const SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES: i32 = 128;
4078pub const SLHDSA_SHAKE_256F_SIGNATURE_BYTES: i32 = 49856;
4079pub const SSL2_MT_CLIENT_HELLO: i32 = 1;
4080pub const SSL2_VERSION: i32 = 2;
4081pub const SSL3_CK_RSA_DES_192_CBC3_SHA: i32 = 50331658;
4082pub const SSL3_CK_SCSV: i32 = 50331903;
4083pub const SSL3_CK_FALLBACK_SCSV: i32 = 50353664;
4084pub const SSL3_TXT_RSA_DES_192_CBC3_SHA: &[u8; 13] = b"DES-CBC3-SHA\0";
4085pub const SSL3_SSL_SESSION_ID_LENGTH: i32 = 32;
4086pub const SSL3_MAX_SSL_SESSION_ID_LENGTH: i32 = 32;
4087pub const SSL3_MASTER_SECRET_SIZE: i32 = 48;
4088pub const SSL3_RANDOM_SIZE: i32 = 32;
4089pub const SSL3_SESSION_ID_SIZE: i32 = 32;
4090pub const SSL3_RT_HEADER_LENGTH: i32 = 5;
4091pub const SSL3_HM_HEADER_LENGTH: i32 = 4;
4092pub const SSL3_ALIGN_PAYLOAD: i32 = 8;
4093pub const SSL3_RT_MAX_MD_SIZE: i32 = 64;
4094pub const SSL_RT_MAX_CIPHER_BLOCK_SIZE: i32 = 16;
4095pub const SSL3_RT_MAX_PLAIN_LENGTH: i32 = 16384;
4096pub const SSL3_RT_MAX_COMPRESSED_OVERHEAD: i32 = 1024;
4097pub const SSL3_RT_MAX_ENCRYPTED_OVERHEAD: i32 = 320;
4098pub const SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD: i32 = 88;
4099pub const SSL3_RT_MAX_COMPRESSED_LENGTH: i32 = 16384;
4100pub const SSL3_RT_MAX_ENCRYPTED_LENGTH: i32 = 16704;
4101pub const SSL3_RT_MAX_PACKET_SIZE: i32 = 16709;
4102pub const SSL3_RT_CHANGE_CIPHER_SPEC: i32 = 20;
4103pub const SSL3_RT_ALERT: i32 = 21;
4104pub const SSL3_RT_HANDSHAKE: i32 = 22;
4105pub const SSL3_RT_APPLICATION_DATA: i32 = 23;
4106pub const SSL3_RT_ACK: i32 = 26;
4107pub const SSL3_RT_HEADER: i32 = 256;
4108pub const SSL3_RT_CLIENT_HELLO_INNER: i32 = 257;
4109pub const SSL3_AL_WARNING: i32 = 1;
4110pub const SSL3_AL_FATAL: i32 = 2;
4111pub const SSL3_AD_CLOSE_NOTIFY: i32 = 0;
4112pub const SSL3_AD_UNEXPECTED_MESSAGE: i32 = 10;
4113pub const SSL3_AD_BAD_RECORD_MAC: i32 = 20;
4114pub const SSL3_AD_DECOMPRESSION_FAILURE: i32 = 30;
4115pub const SSL3_AD_HANDSHAKE_FAILURE: i32 = 40;
4116pub const SSL3_AD_NO_CERTIFICATE: i32 = 41;
4117pub const SSL3_AD_BAD_CERTIFICATE: i32 = 42;
4118pub const SSL3_AD_UNSUPPORTED_CERTIFICATE: i32 = 43;
4119pub const SSL3_AD_CERTIFICATE_REVOKED: i32 = 44;
4120pub const SSL3_AD_CERTIFICATE_EXPIRED: i32 = 45;
4121pub const SSL3_AD_CERTIFICATE_UNKNOWN: i32 = 46;
4122pub const SSL3_AD_ILLEGAL_PARAMETER: i32 = 47;
4123pub const SSL3_AD_INAPPROPRIATE_FALLBACK: i32 = 86;
4124pub const SSL3_CT_RSA_SIGN: i32 = 1;
4125pub const SSL3_MT_HELLO_REQUEST: i32 = 0;
4126pub const SSL3_MT_CLIENT_HELLO: i32 = 1;
4127pub const SSL3_MT_SERVER_HELLO: i32 = 2;
4128pub const SSL3_MT_NEW_SESSION_TICKET: i32 = 4;
4129pub const SSL3_MT_END_OF_EARLY_DATA: i32 = 5;
4130pub const SSL3_MT_ENCRYPTED_EXTENSIONS: i32 = 8;
4131pub const SSL3_MT_CERTIFICATE: i32 = 11;
4132pub const SSL3_MT_SERVER_KEY_EXCHANGE: i32 = 12;
4133pub const SSL3_MT_CERTIFICATE_REQUEST: i32 = 13;
4134pub const SSL3_MT_SERVER_HELLO_DONE: i32 = 14;
4135pub const SSL3_MT_CERTIFICATE_VERIFY: i32 = 15;
4136pub const SSL3_MT_CLIENT_KEY_EXCHANGE: i32 = 16;
4137pub const SSL3_MT_FINISHED: i32 = 20;
4138pub const SSL3_MT_CERTIFICATE_STATUS: i32 = 22;
4139pub const SSL3_MT_SUPPLEMENTAL_DATA: i32 = 23;
4140pub const SSL3_MT_KEY_UPDATE: i32 = 24;
4141pub const SSL3_MT_COMPRESSED_CERTIFICATE: i32 = 25;
4142pub const SSL3_MT_NEXT_PROTO: i32 = 67;
4143pub const SSL3_MT_CHANNEL_ID: i32 = 203;
4144pub const SSL3_MT_MESSAGE_HASH: i32 = 254;
4145pub const DTLS1_MT_HELLO_VERIFY_REQUEST: i32 = 3;
4146pub const SSL3_MT_SERVER_DONE: i32 = 14;
4147pub const SSL3_MT_NEWSESSION_TICKET: i32 = 4;
4148pub const SSL3_MT_CCS: i32 = 1;
4149pub const TLS1_AD_END_OF_EARLY_DATA: i32 = 1;
4150pub const TLS1_AD_DECRYPTION_FAILED: i32 = 21;
4151pub const TLS1_AD_RECORD_OVERFLOW: i32 = 22;
4152pub const TLS1_AD_UNKNOWN_CA: i32 = 48;
4153pub const TLS1_AD_ACCESS_DENIED: i32 = 49;
4154pub const TLS1_AD_DECODE_ERROR: i32 = 50;
4155pub const TLS1_AD_DECRYPT_ERROR: i32 = 51;
4156pub const TLS1_AD_EXPORT_RESTRICTION: i32 = 60;
4157pub const TLS1_AD_PROTOCOL_VERSION: i32 = 70;
4158pub const TLS1_AD_INSUFFICIENT_SECURITY: i32 = 71;
4159pub const TLS1_AD_INTERNAL_ERROR: i32 = 80;
4160pub const TLS1_AD_USER_CANCELLED: i32 = 90;
4161pub const TLS1_AD_NO_RENEGOTIATION: i32 = 100;
4162pub const TLS1_AD_MISSING_EXTENSION: i32 = 109;
4163pub const TLS1_AD_UNSUPPORTED_EXTENSION: i32 = 110;
4164pub const TLS1_AD_CERTIFICATE_UNOBTAINABLE: i32 = 111;
4165pub const TLS1_AD_UNRECOGNIZED_NAME: i32 = 112;
4166pub const TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 113;
4167pub const TLS1_AD_BAD_CERTIFICATE_HASH_VALUE: i32 = 114;
4168pub const TLS1_AD_UNKNOWN_PSK_IDENTITY: i32 = 115;
4169pub const TLS1_AD_CERTIFICATE_REQUIRED: i32 = 116;
4170pub const TLS1_AD_NO_APPLICATION_PROTOCOL: i32 = 120;
4171pub const TLS1_AD_ECH_REQUIRED: i32 = 121;
4172pub const TLSEXT_TYPE_server_name: i32 = 0;
4173pub const TLSEXT_TYPE_status_request: i32 = 5;
4174pub const TLSEXT_TYPE_ec_point_formats: i32 = 11;
4175pub const TLSEXT_TYPE_signature_algorithms: i32 = 13;
4176pub const TLSEXT_TYPE_srtp: i32 = 14;
4177pub const TLSEXT_TYPE_application_layer_protocol_negotiation: i32 = 16;
4178pub const TLSEXT_TYPE_client_cert_type: i32 = 19;
4179pub const TLSEXT_TYPE_server_cert_type: i32 = 20;
4180pub const TLSEXT_TYPE_padding: i32 = 21;
4181pub const TLSEXT_TYPE_extended_master_secret: i32 = 23;
4182pub const TLSEXT_TYPE_quic_transport_parameters_legacy: i32 = 65445;
4183pub const TLSEXT_TYPE_quic_transport_parameters: i32 = 57;
4184pub const TLSEXT_TYPE_quic_transport_parameters_standard: i32 = 57;
4185pub const TLSEXT_TYPE_cert_compression: i32 = 27;
4186pub const TLSEXT_TYPE_session_ticket: i32 = 35;
4187pub const TLSEXT_TYPE_supported_groups: i32 = 10;
4188pub const TLSEXT_TYPE_pre_shared_key: i32 = 41;
4189pub const TLSEXT_TYPE_early_data: i32 = 42;
4190pub const TLSEXT_TYPE_supported_versions: i32 = 43;
4191pub const TLSEXT_TYPE_cookie: i32 = 44;
4192pub const TLSEXT_TYPE_psk_key_exchange_modes: i32 = 45;
4193pub const TLSEXT_TYPE_certificate_authorities: i32 = 47;
4194pub const TLSEXT_TYPE_signature_algorithms_cert: i32 = 50;
4195pub const TLSEXT_TYPE_key_share: i32 = 51;
4196pub const TLSEXT_TYPE_renegotiate: i32 = 65281;
4197pub const TLSEXT_TYPE_delegated_credential: i32 = 34;
4198pub const TLSEXT_TYPE_application_settings_old: i32 = 17513;
4199pub const TLSEXT_TYPE_application_settings: i32 = 17613;
4200pub const TLSEXT_TYPE_encrypted_client_hello: i32 = 65037;
4201pub const TLSEXT_TYPE_ech_outer_extensions: i32 = 64768;
4202pub const TLSEXT_TYPE_pake: i32 = 35387;
4203pub const TLSEXT_TYPE_certificate_timestamp: i32 = 18;
4204pub const TLSEXT_TYPE_next_proto_neg: i32 = 13172;
4205pub const TLSEXT_TYPE_channel_id: i32 = 30032;
4206pub const TLSEXT_TYPE_trust_anchors: i32 = 51764;
4207pub const TLSEXT_TYPE_server_padding: i32 = 4832;
4208pub const TLSEXT_TYPE_tls_flags: i32 = 62;
4209pub const TLSEXT_STATUSTYPE_nothing: i32 = -1;
4210pub const TLSEXT_STATUSTYPE_ocsp: i32 = 1;
4211pub const TLSEXT_ECPOINTFORMAT_uncompressed: i32 = 0;
4212pub const TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime: i32 = 1;
4213pub const TLSEXT_signature_anonymous: i32 = 0;
4214pub const TLSEXT_signature_rsa: i32 = 1;
4215pub const TLSEXT_signature_dsa: i32 = 2;
4216pub const TLSEXT_signature_ecdsa: i32 = 3;
4217pub const TLSEXT_hash_none: i32 = 0;
4218pub const TLSEXT_hash_md5: i32 = 1;
4219pub const TLSEXT_hash_sha1: i32 = 2;
4220pub const TLSEXT_hash_sha224: i32 = 3;
4221pub const TLSEXT_hash_sha256: i32 = 4;
4222pub const TLSEXT_hash_sha384: i32 = 5;
4223pub const TLSEXT_hash_sha512: i32 = 6;
4224pub const TLSEXT_cert_compression_zlib: i32 = 1;
4225pub const TLSEXT_cert_compression_brotli: i32 = 2;
4226pub const TLSEXT_MAXLEN_host_name: i32 = 255;
4227pub const TLS1_CK_PSK_WITH_AES_128_CBC_SHA: i32 = 50331788;
4228pub const TLS1_CK_PSK_WITH_AES_256_CBC_SHA: i32 = 50331789;
4229pub const TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA: i32 = 50380853;
4230pub const TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA: i32 = 50380854;
4231pub const TLS1_CK_RSA_WITH_AES_128_SHA: i32 = 50331695;
4232pub const TLS1_CK_RSA_WITH_AES_256_SHA: i32 = 50331701;
4233pub const TLS1_CK_RSA_WITH_AES_128_GCM_SHA256: i32 = 50331804;
4234pub const TLS1_CK_RSA_WITH_AES_256_GCM_SHA384: i32 = 50331805;
4235pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: i32 = 50380809;
4236pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: i32 = 50380810;
4237pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA: i32 = 50380819;
4238pub const TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA: i32 = 50380820;
4239pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: i32 = 50380835;
4240pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA256: i32 = 50380839;
4241pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: i32 = 50380843;
4242pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: i32 = 50380844;
4243pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256: i32 = 50380847;
4244pub const TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384: i32 = 50380848;
4245pub const TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384040;
4246pub const TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384041;
4247pub const TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384044;
4248pub const TLS1_3_CK_AES_128_GCM_SHA256: i32 = 50336513;
4249pub const TLS1_3_CK_AES_256_GCM_SHA384: i32 = 50336514;
4250pub const TLS1_3_CK_CHACHA20_POLY1305_SHA256: i32 = 50336515;
4251pub const TLS1_CK_AES_128_GCM_SHA256: i32 = 50336513;
4252pub const TLS1_CK_AES_256_GCM_SHA384: i32 = 50336514;
4253pub const TLS1_CK_CHACHA20_POLY1305_SHA256: i32 = 50336515;
4254pub const TLS1_TXT_PSK_WITH_AES_128_CBC_SHA: &[u8; 19] = b"PSK-AES128-CBC-SHA\0";
4255pub const TLS1_TXT_PSK_WITH_AES_256_CBC_SHA: &[u8; 19] = b"PSK-AES256-CBC-SHA\0";
4256pub const TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA: &[u8; 25] = b"ECDHE-PSK-AES128-CBC-SHA\0";
4257pub const TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA: &[u8; 25] = b"ECDHE-PSK-AES256-CBC-SHA\0";
4258pub const TLS1_TXT_RSA_WITH_AES_128_SHA: &[u8; 11] = b"AES128-SHA\0";
4259pub const TLS1_TXT_RSA_WITH_AES_256_SHA: &[u8; 11] = b"AES256-SHA\0";
4260pub const TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256: &[u8; 18] = b"AES128-GCM-SHA256\0";
4261pub const TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384: &[u8; 18] = b"AES256-GCM-SHA384\0";
4262pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: &[u8; 23] = b"ECDHE-ECDSA-AES128-SHA\0";
4263pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: &[u8; 23] = b"ECDHE-ECDSA-AES256-SHA\0";
4264pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA: &[u8; 21] = b"ECDHE-RSA-AES128-SHA\0";
4265pub const TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA: &[u8; 21] = b"ECDHE-RSA-AES256-SHA\0";
4266pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: &[u8; 26] = b"ECDHE-ECDSA-AES128-SHA256\0";
4267pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA256: &[u8; 24] = b"ECDHE-RSA-AES128-SHA256\0";
4268pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: &[u8; 30] =
4269    b"ECDHE-ECDSA-AES128-GCM-SHA256\0";
4270pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: &[u8; 30] =
4271    b"ECDHE-ECDSA-AES256-GCM-SHA384\0";
4272pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256: &[u8; 28] = b"ECDHE-RSA-AES128-GCM-SHA256\0";
4273pub const TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384: &[u8; 28] = b"ECDHE-RSA-AES256-GCM-SHA384\0";
4274pub const TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: &[u8; 28] =
4275    b"ECDHE-RSA-CHACHA20-POLY1305\0";
4276pub const TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: &[u8; 30] =
4277    b"ECDHE-ECDSA-CHACHA20-POLY1305\0";
4278pub const TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: &[u8; 28] =
4279    b"ECDHE-PSK-CHACHA20-POLY1305\0";
4280pub const TLS1_3_RFC_AES_128_GCM_SHA256: &[u8; 23] = b"TLS_AES_128_GCM_SHA256\0";
4281pub const TLS1_3_RFC_AES_256_GCM_SHA384: &[u8; 23] = b"TLS_AES_256_GCM_SHA384\0";
4282pub const TLS1_3_RFC_CHACHA20_POLY1305_SHA256: &[u8; 29] = b"TLS_CHACHA20_POLY1305_SHA256\0";
4283pub const TLS_CT_RSA_SIGN: i32 = 1;
4284pub const TLS_CT_DSS_SIGN: i32 = 2;
4285pub const TLS_CT_RSA_FIXED_DH: i32 = 3;
4286pub const TLS_CT_DSS_FIXED_DH: i32 = 4;
4287pub const TLS_CT_ECDSA_SIGN: i32 = 64;
4288pub const TLS_CT_RSA_FIXED_ECDH: i32 = 65;
4289pub const TLS_CT_ECDSA_FIXED_ECDH: i32 = 66;
4290pub const SSL_KEY_UPDATE_REQUESTED: i32 = 1;
4291pub const SSL_KEY_UPDATE_NOT_REQUESTED: i32 = 0;
4292pub const SSL_ERROR_NONE: i32 = 0;
4293pub const SSL_ERROR_SSL: i32 = 1;
4294pub const SSL_ERROR_WANT_READ: i32 = 2;
4295pub const SSL_ERROR_WANT_WRITE: i32 = 3;
4296pub const SSL_ERROR_WANT_X509_LOOKUP: i32 = 4;
4297pub const SSL_ERROR_SYSCALL: i32 = 5;
4298pub const SSL_ERROR_ZERO_RETURN: i32 = 6;
4299pub const SSL_ERROR_WANT_CONNECT: i32 = 7;
4300pub const SSL_ERROR_WANT_ACCEPT: i32 = 8;
4301pub const SSL_ERROR_WANT_CHANNEL_ID_LOOKUP: i32 = 9;
4302pub const SSL_ERROR_PENDING_SESSION: i32 = 11;
4303pub const SSL_ERROR_PENDING_CERTIFICATE: i32 = 12;
4304pub const SSL_ERROR_WANT_PRIVATE_KEY_OPERATION: i32 = 13;
4305pub const SSL_ERROR_PENDING_TICKET: i32 = 14;
4306pub const SSL_ERROR_EARLY_DATA_REJECTED: i32 = 15;
4307pub const SSL_ERROR_WANT_CERTIFICATE_VERIFY: i32 = 16;
4308pub const SSL_ERROR_HANDOFF: i32 = 17;
4309pub const SSL_ERROR_HANDBACK: i32 = 18;
4310pub const SSL_ERROR_WANT_RENEGOTIATE: i32 = 19;
4311pub const SSL_ERROR_HANDSHAKE_HINTS_READY: i32 = 20;
4312pub const DTLS1_VERSION_MAJOR: i32 = 254;
4313pub const SSL3_VERSION_MAJOR: i32 = 3;
4314pub const SSL3_VERSION: i32 = 768;
4315pub const TLS1_VERSION: i32 = 769;
4316pub const TLS1_1_VERSION: i32 = 770;
4317pub const TLS1_2_VERSION: i32 = 771;
4318pub const TLS1_3_VERSION: i32 = 772;
4319pub const DTLS1_VERSION: i32 = 65279;
4320pub const DTLS1_2_VERSION: i32 = 65277;
4321pub const DTLS1_3_VERSION: i32 = 65276;
4322pub const SSL_OP_LEGACY_SERVER_CONNECT: i32 = 4;
4323pub const SSL_OP_NO_QUERY_MTU: i32 = 4096;
4324pub const SSL_OP_NO_TICKET: i32 = 16384;
4325pub const SSL_OP_CIPHER_SERVER_PREFERENCE: i32 = 4194304;
4326pub const SSL_OP_ALL: i32 = 4;
4327pub const SSL_OP_NO_TLSv1: i32 = 67108864;
4328pub const SSL_OP_NO_TLSv1_2: i32 = 134217728;
4329pub const SSL_OP_NO_TLSv1_1: i32 = 268435456;
4330pub const SSL_OP_NO_TLSv1_3: i32 = 536870912;
4331pub const SSL_OP_NO_DTLSv1: i32 = 67108864;
4332pub const SSL_OP_NO_DTLSv1_2: i32 = 134217728;
4333pub const SSL_MODE_ENABLE_PARTIAL_WRITE: i32 = 1;
4334pub const SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER: i32 = 2;
4335pub const SSL_MODE_NO_AUTO_CHAIN: i32 = 8;
4336pub const SSL_MODE_ENABLE_FALSE_START: i32 = 128;
4337pub const SSL_MODE_CBC_RECORD_SPLITTING: i32 = 256;
4338pub const SSL_MODE_NO_SESSION_CREATION: i32 = 512;
4339pub const SSL_MODE_SEND_FALLBACK_SCSV: i32 = 1024;
4340pub const SSL_SIGN_RSA_PKCS1_SHA1: i32 = 513;
4341pub const SSL_SIGN_RSA_PKCS1_SHA256: i32 = 1025;
4342pub const SSL_SIGN_RSA_PKCS1_SHA384: i32 = 1281;
4343pub const SSL_SIGN_RSA_PKCS1_SHA512: i32 = 1537;
4344pub const SSL_SIGN_ECDSA_SHA1: i32 = 515;
4345pub const SSL_SIGN_ECDSA_SECP256R1_SHA256: i32 = 1027;
4346pub const SSL_SIGN_ECDSA_SECP384R1_SHA384: i32 = 1283;
4347pub const SSL_SIGN_ECDSA_SECP521R1_SHA512: i32 = 1539;
4348pub const SSL_SIGN_RSA_PSS_RSAE_SHA256: i32 = 2052;
4349pub const SSL_SIGN_RSA_PSS_RSAE_SHA384: i32 = 2053;
4350pub const SSL_SIGN_RSA_PSS_RSAE_SHA512: i32 = 2054;
4351pub const SSL_SIGN_ED25519: i32 = 2055;
4352pub const SSL_SIGN_ML_DSA_44: i32 = 2308;
4353pub const SSL_SIGN_ML_DSA_65: i32 = 2309;
4354pub const SSL_SIGN_ML_DSA_87: i32 = 2310;
4355pub const SSL_SIGN_RSA_PKCS1_SHA256_LEGACY: i32 = 1056;
4356pub const SSL_SIGN_RSA_PKCS1_MD5_SHA1: i32 = 65281;
4357pub const SSL_FILETYPE_PEM: i32 = 1;
4358pub const SSL_FILETYPE_ASN1: i32 = 2;
4359pub const SSL_CIPHER_AES_128_GCM_SHA256: i32 = 4865;
4360pub const SSL_CIPHER_AES_256_GCM_SHA384: i32 = 4866;
4361pub const SSL_CIPHER_CHACHA20_POLY1305_SHA256: i32 = 4867;
4362pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: i32 = 49195;
4363pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: i32 = 49196;
4364pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_GCM_SHA256: i32 = 49199;
4365pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_256_GCM_SHA384: i32 = 49200;
4366pub const SSL_CIPHER_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 52392;
4367pub const SSL_CIPHER_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 52393;
4368pub const SSL_CIPHER_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: i32 = 52396;
4369pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: i32 = 49161;
4370pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: i32 = 49162;
4371pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA: i32 = 49171;
4372pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_256_CBC_SHA: i32 = 49172;
4373pub const SSL_CIPHER_ECDHE_PSK_WITH_AES_128_CBC_SHA: i32 = 49205;
4374pub const SSL_CIPHER_ECDHE_PSK_WITH_AES_256_CBC_SHA: i32 = 49206;
4375pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: i32 = 49187;
4376pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA256: i32 = 49191;
4377pub const SSL_CIPHER_RSA_WITH_AES_128_GCM_SHA256: i32 = 156;
4378pub const SSL_CIPHER_RSA_WITH_AES_256_GCM_SHA384: i32 = 157;
4379pub const SSL_CIPHER_RSA_WITH_AES_128_CBC_SHA: i32 = 47;
4380pub const SSL_CIPHER_RSA_WITH_AES_256_CBC_SHA: i32 = 53;
4381pub const SSL_CIPHER_PSK_WITH_AES_128_CBC_SHA: i32 = 140;
4382pub const SSL_CIPHER_PSK_WITH_AES_256_CBC_SHA: i32 = 141;
4383pub const SSL_CIPHER_RSA_WITH_3DES_EDE_CBC_SHA: i32 = 10;
4384pub const SSL_CIPHER_EMPTY_RENEGOTIATION_INFO_SCSV: i32 = 255;
4385pub const SSL_CIPHER_FALLBACK_SCSV: i32 = 22016;
4386pub const SSL_DEFAULT_CIPHER_LIST: &[u8; 4] = b"ALL\0";
4387pub const SSL_MAX_SSL_SESSION_ID_LENGTH: i32 = 32;
4388pub const SSL_MAX_MASTER_KEY_LENGTH: i32 = 48;
4389pub const SSL_SESS_CACHE_OFF: i32 = 0;
4390pub const SSL_SESS_CACHE_CLIENT: i32 = 1;
4391pub const SSL_SESS_CACHE_SERVER: i32 = 2;
4392pub const SSL_SESS_CACHE_BOTH: i32 = 3;
4393pub const SSL_SESS_CACHE_NO_AUTO_CLEAR: i32 = 128;
4394pub const SSL_SESS_CACHE_NO_INTERNAL_LOOKUP: i32 = 256;
4395pub const SSL_SESS_CACHE_NO_INTERNAL_STORE: i32 = 512;
4396pub const SSL_SESS_CACHE_NO_INTERNAL: i32 = 768;
4397pub const SSL_DEFAULT_SESSION_TIMEOUT: i32 = 7200;
4398pub const SSL_DEFAULT_SESSION_PSK_DHE_TIMEOUT: i32 = 172800;
4399pub const SSL_DEFAULT_SESSION_AUTH_TIMEOUT: i32 = 604800;
4400pub const SSL_MAX_SID_CTX_LENGTH: i32 = 32;
4401pub const SSL_SESSION_CACHE_MAX_SIZE_DEFAULT: i32 = 20480;
4402pub const SSL_DEFAULT_TICKET_KEY_ROTATION_INTERVAL: i32 = 172800;
4403pub const SSL_TICKET_KEY_NAME_LEN: i32 = 16;
4404pub const SSL_GROUP_SECP256R1: i32 = 23;
4405pub const SSL_GROUP_SECP384R1: i32 = 24;
4406pub const SSL_GROUP_SECP521R1: i32 = 25;
4407pub const SSL_GROUP_X25519: i32 = 29;
4408pub const SSL_GROUP_X25519_MLKEM768: i32 = 4588;
4409pub const SSL_GROUP_X25519_KYBER768_DRAFT00: i32 = 25497;
4410pub const SSL_GROUP_MLKEM1024: i32 = 514;
4411pub const SSL_GROUP_FLAG_EQUAL_PREFERENCE_WITH_NEXT: i32 = 1;
4412pub const SSL_VERIFY_NONE: i32 = 0;
4413pub const SSL_VERIFY_PEER: i32 = 1;
4414pub const SSL_VERIFY_FAIL_IF_NO_PEER_CERT: i32 = 2;
4415pub const TLSEXT_NAMETYPE_host_name: i32 = 0;
4416pub const SSL_TLSEXT_ERR_OK: i32 = 0;
4417pub const SSL_TLSEXT_ERR_ALERT_WARNING: i32 = 1;
4418pub const SSL_TLSEXT_ERR_ALERT_FATAL: i32 = 2;
4419pub const SSL_TLSEXT_ERR_NOACK: i32 = 3;
4420pub const OPENSSL_NPN_UNSUPPORTED: i32 = 0;
4421pub const OPENSSL_NPN_NEGOTIATED: i32 = 1;
4422pub const OPENSSL_NPN_NO_OVERLAP: i32 = 2;
4423pub const SRTP_AES128_CM_SHA1_80: i32 = 1;
4424pub const SRTP_AES128_CM_SHA1_32: i32 = 2;
4425pub const SRTP_AES128_F8_SHA1_80: i32 = 3;
4426pub const SRTP_AES128_F8_SHA1_32: i32 = 4;
4427pub const SRTP_NULL_SHA1_80: i32 = 5;
4428pub const SRTP_NULL_SHA1_32: i32 = 6;
4429pub const SRTP_AEAD_AES_128_GCM: i32 = 7;
4430pub const SRTP_AEAD_AES_256_GCM: i32 = 8;
4431pub const PSK_MAX_IDENTITY_LEN: i32 = 128;
4432pub const PSK_MAX_PSK_LEN: i32 = 256;
4433pub const TLSEXT_cert_type_x509: i32 = 0;
4434pub const TLSEXT_cert_type_rpk: i32 = 2;
4435pub const SSL_PAKE_SPAKE2PLUSV1: i32 = 32150;
4436pub const SSL_AD_REASON_OFFSET: i32 = 1000;
4437pub const SSL_AD_CLOSE_NOTIFY: i32 = 0;
4438pub const SSL_AD_UNEXPECTED_MESSAGE: i32 = 10;
4439pub const SSL_AD_BAD_RECORD_MAC: i32 = 20;
4440pub const SSL_AD_DECRYPTION_FAILED: i32 = 21;
4441pub const SSL_AD_RECORD_OVERFLOW: i32 = 22;
4442pub const SSL_AD_DECOMPRESSION_FAILURE: i32 = 30;
4443pub const SSL_AD_HANDSHAKE_FAILURE: i32 = 40;
4444pub const SSL_AD_NO_CERTIFICATE: i32 = 41;
4445pub const SSL_AD_BAD_CERTIFICATE: i32 = 42;
4446pub const SSL_AD_UNSUPPORTED_CERTIFICATE: i32 = 43;
4447pub const SSL_AD_CERTIFICATE_REVOKED: i32 = 44;
4448pub const SSL_AD_CERTIFICATE_EXPIRED: i32 = 45;
4449pub const SSL_AD_CERTIFICATE_UNKNOWN: i32 = 46;
4450pub const SSL_AD_ILLEGAL_PARAMETER: i32 = 47;
4451pub const SSL_AD_UNKNOWN_CA: i32 = 48;
4452pub const SSL_AD_ACCESS_DENIED: i32 = 49;
4453pub const SSL_AD_DECODE_ERROR: i32 = 50;
4454pub const SSL_AD_DECRYPT_ERROR: i32 = 51;
4455pub const SSL_AD_EXPORT_RESTRICTION: i32 = 60;
4456pub const SSL_AD_PROTOCOL_VERSION: i32 = 70;
4457pub const SSL_AD_INSUFFICIENT_SECURITY: i32 = 71;
4458pub const SSL_AD_INTERNAL_ERROR: i32 = 80;
4459pub const SSL_AD_INAPPROPRIATE_FALLBACK: i32 = 86;
4460pub const SSL_AD_USER_CANCELLED: i32 = 90;
4461pub const SSL_AD_NO_RENEGOTIATION: i32 = 100;
4462pub const SSL_AD_MISSING_EXTENSION: i32 = 109;
4463pub const SSL_AD_UNSUPPORTED_EXTENSION: i32 = 110;
4464pub const SSL_AD_CERTIFICATE_UNOBTAINABLE: i32 = 111;
4465pub const SSL_AD_UNRECOGNIZED_NAME: i32 = 112;
4466pub const SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 113;
4467pub const SSL_AD_BAD_CERTIFICATE_HASH_VALUE: i32 = 114;
4468pub const SSL_AD_UNKNOWN_PSK_IDENTITY: i32 = 115;
4469pub const SSL_AD_CERTIFICATE_REQUIRED: i32 = 116;
4470pub const SSL_AD_NO_APPLICATION_PROTOCOL: i32 = 120;
4471pub const SSL_AD_ECH_REQUIRED: i32 = 121;
4472pub const SSL_MAX_CERT_LIST_DEFAULT: i32 = 102400;
4473pub const SSL_ST_CONNECT: i32 = 4096;
4474pub const SSL_ST_ACCEPT: i32 = 8192;
4475pub const SSL_ST_MASK: i32 = 4095;
4476pub const SSL_ST_INIT: i32 = 12288;
4477pub const SSL_ST_OK: i32 = 3;
4478pub const SSL_ST_RENEGOTIATE: i32 = 12292;
4479pub const SSL_ST_BEFORE: i32 = 12293;
4480pub const TLS_ST_OK: i32 = 3;
4481pub const TLS_ST_BEFORE: i32 = 12293;
4482pub const SSL_CB_LOOP: i32 = 1;
4483pub const SSL_CB_EXIT: i32 = 2;
4484pub const SSL_CB_READ: i32 = 4;
4485pub const SSL_CB_WRITE: i32 = 8;
4486pub const SSL_CB_ALERT: i32 = 16384;
4487pub const SSL_CB_READ_ALERT: i32 = 16388;
4488pub const SSL_CB_WRITE_ALERT: i32 = 16392;
4489pub const SSL_CB_ACCEPT_LOOP: i32 = 8193;
4490pub const SSL_CB_ACCEPT_EXIT: i32 = 8194;
4491pub const SSL_CB_CONNECT_LOOP: i32 = 4097;
4492pub const SSL_CB_CONNECT_EXIT: i32 = 4098;
4493pub const SSL_CB_HANDSHAKE_START: i32 = 16;
4494pub const SSL_CB_HANDSHAKE_DONE: i32 = 32;
4495pub const SSL_SENT_SHUTDOWN: i32 = 1;
4496pub const SSL_RECEIVED_SHUTDOWN: i32 = 2;
4497pub const SSL_MODE_HANDSHAKE_CUTTHROUGH: i32 = 128;
4498pub const SSL_MODE_AUTO_RETRY: i32 = 0;
4499pub const SSL_MODE_RELEASE_BUFFERS: i32 = 0;
4500pub const SSL_MODE_SEND_CLIENTHELLO_TIME: i32 = 0;
4501pub const SSL_MODE_SEND_SERVERHELLO_TIME: i32 = 0;
4502pub const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: i32 = 0;
4503pub const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: i32 = 0;
4504pub const SSL_OP_EPHEMERAL_RSA: i32 = 0;
4505pub const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: i32 = 0;
4506pub const SSL_OP_MICROSOFT_SESS_ID_BUG: i32 = 0;
4507pub const SSL_OP_MSIE_SSLV2_RSA_PADDING: i32 = 0;
4508pub const SSL_OP_NETSCAPE_CA_DN_BUG: i32 = 0;
4509pub const SSL_OP_NETSCAPE_CHALLENGE_BUG: i32 = 0;
4510pub const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: i32 = 0;
4511pub const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: i32 = 0;
4512pub const SSL_OP_NO_COMPRESSION: i32 = 0;
4513pub const SSL_OP_NO_RENEGOTIATION: i32 = 0;
4514pub const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: i32 = 0;
4515pub const SSL_OP_NO_SSLv2: i32 = 0;
4516pub const SSL_OP_NO_SSLv3: i32 = 0;
4517pub const SSL_OP_PKCS1_CHECK_1: i32 = 0;
4518pub const SSL_OP_PKCS1_CHECK_2: i32 = 0;
4519pub const SSL_OP_SINGLE_DH_USE: i32 = 0;
4520pub const SSL_OP_SINGLE_ECDH_USE: i32 = 0;
4521pub const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: i32 = 0;
4522pub const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: i32 = 0;
4523pub const SSL_OP_TLS_BLOCK_PADDING_BUG: i32 = 0;
4524pub const SSL_OP_TLS_D5_BUG: i32 = 0;
4525pub const SSL_OP_TLS_ROLLBACK_BUG: i32 = 0;
4526pub const SSL_VERIFY_CLIENT_ONCE: i32 = 0;
4527pub const SSL_NOTHING: i32 = 0;
4528pub const SSL_WRITING: i32 = 3;
4529pub const SSL_READING: i32 = 2;
4530pub const SSL_TXT_MEDIUM: &[u8; 7] = b"MEDIUM\0";
4531pub const SSL_TXT_HIGH: &[u8; 5] = b"HIGH\0";
4532pub const SSL_TXT_FIPS: &[u8; 5] = b"FIPS\0";
4533pub const SSL_TXT_kRSA: &[u8; 5] = b"kRSA\0";
4534pub const SSL_TXT_kDHE: &[u8; 5] = b"kDHE\0";
4535pub const SSL_TXT_kEDH: &[u8; 5] = b"kEDH\0";
4536pub const SSL_TXT_kECDHE: &[u8; 7] = b"kECDHE\0";
4537pub const SSL_TXT_kEECDH: &[u8; 7] = b"kEECDH\0";
4538pub const SSL_TXT_kPSK: &[u8; 5] = b"kPSK\0";
4539pub const SSL_TXT_aRSA: &[u8; 5] = b"aRSA\0";
4540pub const SSL_TXT_aECDSA: &[u8; 7] = b"aECDSA\0";
4541pub const SSL_TXT_aPSK: &[u8; 5] = b"aPSK\0";
4542pub const SSL_TXT_DH: &[u8; 3] = b"DH\0";
4543pub const SSL_TXT_DHE: &[u8; 4] = b"DHE\0";
4544pub const SSL_TXT_EDH: &[u8; 4] = b"EDH\0";
4545pub const SSL_TXT_RSA: &[u8; 4] = b"RSA\0";
4546pub const SSL_TXT_ECDH: &[u8; 5] = b"ECDH\0";
4547pub const SSL_TXT_ECDHE: &[u8; 6] = b"ECDHE\0";
4548pub const SSL_TXT_EECDH: &[u8; 6] = b"EECDH\0";
4549pub const SSL_TXT_ECDSA: &[u8; 6] = b"ECDSA\0";
4550pub const SSL_TXT_PSK: &[u8; 4] = b"PSK\0";
4551pub const SSL_TXT_3DES: &[u8; 5] = b"3DES\0";
4552pub const SSL_TXT_RC4: &[u8; 4] = b"RC4\0";
4553pub const SSL_TXT_AES128: &[u8; 7] = b"AES128\0";
4554pub const SSL_TXT_AES256: &[u8; 7] = b"AES256\0";
4555pub const SSL_TXT_AES: &[u8; 4] = b"AES\0";
4556pub const SSL_TXT_AES_GCM: &[u8; 7] = b"AESGCM\0";
4557pub const SSL_TXT_CHACHA20: &[u8; 9] = b"CHACHA20\0";
4558pub const SSL_TXT_MD5: &[u8; 4] = b"MD5\0";
4559pub const SSL_TXT_SHA1: &[u8; 5] = b"SHA1\0";
4560pub const SSL_TXT_SHA: &[u8; 4] = b"SHA\0";
4561pub const SSL_TXT_SHA256: &[u8; 7] = b"SHA256\0";
4562pub const SSL_TXT_SHA384: &[u8; 7] = b"SHA384\0";
4563pub const SSL_TXT_SSLV3: &[u8; 6] = b"SSLv3\0";
4564pub const SSL_TXT_TLSV1: &[u8; 6] = b"TLSv1\0";
4565pub const SSL_TXT_TLSV1_1: &[u8; 8] = b"TLSv1.1\0";
4566pub const SSL_TXT_TLSV1_2: &[u8; 8] = b"TLSv1.2\0";
4567pub const SSL_TXT_TLSV1_3: &[u8; 8] = b"TLSv1.3\0";
4568pub const SSL_TXT_ALL: &[u8; 4] = b"ALL\0";
4569pub const SSL_TXT_CMPDEF: &[u8; 20] = b"COMPLEMENTOFDEFAULT\0";
4570pub const OPENSSL_INIT_NO_LOAD_SSL_STRINGS: i32 = 0;
4571pub const OPENSSL_INIT_LOAD_SSL_STRINGS: i32 = 0;
4572pub const OPENSSL_INIT_SSL_DEFAULT: i32 = 0;
4573pub const SSL_SIGN_RSA_PSS_SHA256: i32 = 2052;
4574pub const SSL_SIGN_RSA_PSS_SHA384: i32 = 2053;
4575pub const SSL_SIGN_RSA_PSS_SHA512: i32 = 2054;
4576pub const SSL_CURVE_SECP256R1: i32 = 23;
4577pub const SSL_CURVE_SECP384R1: i32 = 24;
4578pub const SSL_CURVE_SECP521R1: i32 = 25;
4579pub const SSL_CURVE_X25519: i32 = 29;
4580pub const SSL_CURVE_X25519_KYBER768_DRAFT00: i32 = 25497;
4581pub const TLSEXT_nid_unknown: i32 = 16777216;
4582pub const SSL_R_APP_DATA_IN_HANDSHAKE: i32 = 100;
4583pub const SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT: i32 = 101;
4584pub const SSL_R_BAD_ALERT: i32 = 102;
4585pub const SSL_R_BAD_CHANGE_CIPHER_SPEC: i32 = 103;
4586pub const SSL_R_BAD_DATA_RETURNED_BY_CALLBACK: i32 = 104;
4587pub const SSL_R_BAD_DH_P_LENGTH: i32 = 105;
4588pub const SSL_R_BAD_DIGEST_LENGTH: i32 = 106;
4589pub const SSL_R_BAD_ECC_CERT: i32 = 107;
4590pub const SSL_R_BAD_ECPOINT: i32 = 108;
4591pub const SSL_R_BAD_HANDSHAKE_RECORD: i32 = 109;
4592pub const SSL_R_BAD_HELLO_REQUEST: i32 = 110;
4593pub const SSL_R_BAD_LENGTH: i32 = 111;
4594pub const SSL_R_BAD_PACKET_LENGTH: i32 = 112;
4595pub const SSL_R_BAD_RSA_ENCRYPT: i32 = 113;
4596pub const SSL_R_BAD_SIGNATURE: i32 = 114;
4597pub const SSL_R_BAD_SRTP_MKI_VALUE: i32 = 115;
4598pub const SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST: i32 = 116;
4599pub const SSL_R_BAD_SSL_FILETYPE: i32 = 117;
4600pub const SSL_R_BAD_WRITE_RETRY: i32 = 118;
4601pub const SSL_R_BIO_NOT_SET: i32 = 119;
4602pub const SSL_R_BN_LIB: i32 = 120;
4603pub const SSL_R_BUFFER_TOO_SMALL: i32 = 121;
4604pub const SSL_R_CA_DN_LENGTH_MISMATCH: i32 = 122;
4605pub const SSL_R_CA_DN_TOO_LONG: i32 = 123;
4606pub const SSL_R_CCS_RECEIVED_EARLY: i32 = 124;
4607pub const SSL_R_CERTIFICATE_VERIFY_FAILED: i32 = 125;
4608pub const SSL_R_CERT_CB_ERROR: i32 = 126;
4609pub const SSL_R_CERT_LENGTH_MISMATCH: i32 = 127;
4610pub const SSL_R_CHANNEL_ID_NOT_P256: i32 = 128;
4611pub const SSL_R_CHANNEL_ID_SIGNATURE_INVALID: i32 = 129;
4612pub const SSL_R_CIPHER_OR_HASH_UNAVAILABLE: i32 = 130;
4613pub const SSL_R_CLIENTHELLO_PARSE_FAILED: i32 = 131;
4614pub const SSL_R_CLIENTHELLO_TLSEXT: i32 = 132;
4615pub const SSL_R_CONNECTION_REJECTED: i32 = 133;
4616pub const SSL_R_CONNECTION_TYPE_NOT_SET: i32 = 134;
4617pub const SSL_R_CUSTOM_EXTENSION_ERROR: i32 = 135;
4618pub const SSL_R_DATA_LENGTH_TOO_LONG: i32 = 136;
4619pub const SSL_R_DECODE_ERROR: i32 = 137;
4620pub const SSL_R_DECRYPTION_FAILED: i32 = 138;
4621pub const SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC: i32 = 139;
4622pub const SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG: i32 = 140;
4623pub const SSL_R_DH_P_TOO_LONG: i32 = 141;
4624pub const SSL_R_DIGEST_CHECK_FAILED: i32 = 142;
4625pub const SSL_R_DTLS_MESSAGE_TOO_BIG: i32 = 143;
4626pub const SSL_R_ECC_CERT_NOT_FOR_SIGNING: i32 = 144;
4627pub const SSL_R_EMS_STATE_INCONSISTENT: i32 = 145;
4628pub const SSL_R_ENCRYPTED_LENGTH_TOO_LONG: i32 = 146;
4629pub const SSL_R_ERROR_ADDING_EXTENSION: i32 = 147;
4630pub const SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST: i32 = 148;
4631pub const SSL_R_ERROR_PARSING_EXTENSION: i32 = 149;
4632pub const SSL_R_EXCESSIVE_MESSAGE_SIZE: i32 = 150;
4633pub const SSL_R_EXTRA_DATA_IN_MESSAGE: i32 = 151;
4634pub const SSL_R_FRAGMENT_MISMATCH: i32 = 152;
4635pub const SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION: i32 = 153;
4636pub const SSL_R_HANDSHAKE_FAILURE_ON_CLIENT_HELLO: i32 = 154;
4637pub const SSL_R_HTTPS_PROXY_REQUEST: i32 = 155;
4638pub const SSL_R_HTTP_REQUEST: i32 = 156;
4639pub const SSL_R_INAPPROPRIATE_FALLBACK: i32 = 157;
4640pub const SSL_R_INVALID_COMMAND: i32 = 158;
4641pub const SSL_R_INVALID_MESSAGE: i32 = 159;
4642pub const SSL_R_INVALID_SSL_SESSION: i32 = 160;
4643pub const SSL_R_INVALID_TICKET_KEYS_LENGTH: i32 = 161;
4644pub const SSL_R_LENGTH_MISMATCH: i32 = 162;
4645pub const SSL_R_MISSING_EXTENSION: i32 = 164;
4646pub const SSL_R_MISSING_RSA_CERTIFICATE: i32 = 165;
4647pub const SSL_R_MISSING_TMP_DH_KEY: i32 = 166;
4648pub const SSL_R_MISSING_TMP_ECDH_KEY: i32 = 167;
4649pub const SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS: i32 = 168;
4650pub const SSL_R_MTU_TOO_SMALL: i32 = 169;
4651pub const SSL_R_NEGOTIATED_BOTH_NPN_AND_ALPN: i32 = 170;
4652pub const SSL_R_NESTED_GROUP: i32 = 171;
4653pub const SSL_R_NO_CERTIFICATES_RETURNED: i32 = 172;
4654pub const SSL_R_NO_CERTIFICATE_ASSIGNED: i32 = 173;
4655pub const SSL_R_NO_CERTIFICATE_SET: i32 = 174;
4656pub const SSL_R_NO_CIPHERS_AVAILABLE: i32 = 175;
4657pub const SSL_R_NO_CIPHERS_PASSED: i32 = 176;
4658pub const SSL_R_NO_CIPHER_MATCH: i32 = 177;
4659pub const SSL_R_NO_COMPRESSION_SPECIFIED: i32 = 178;
4660pub const SSL_R_NO_METHOD_SPECIFIED: i32 = 179;
4661pub const SSL_R_NO_PRIVATE_KEY_ASSIGNED: i32 = 181;
4662pub const SSL_R_NO_RENEGOTIATION: i32 = 182;
4663pub const SSL_R_NO_REQUIRED_DIGEST: i32 = 183;
4664pub const SSL_R_NO_SHARED_CIPHER: i32 = 184;
4665pub const SSL_R_NULL_SSL_CTX: i32 = 185;
4666pub const SSL_R_NULL_SSL_METHOD_PASSED: i32 = 186;
4667pub const SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED: i32 = 187;
4668pub const SSL_R_OLD_SESSION_VERSION_NOT_RETURNED: i32 = 188;
4669pub const SSL_R_OUTPUT_ALIASES_INPUT: i32 = 189;
4670pub const SSL_R_PARSE_TLSEXT: i32 = 190;
4671pub const SSL_R_PATH_TOO_LONG: i32 = 191;
4672pub const SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE: i32 = 192;
4673pub const SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE: i32 = 193;
4674pub const SSL_R_PROTOCOL_IS_SHUTDOWN: i32 = 194;
4675pub const SSL_R_PSK_IDENTITY_NOT_FOUND: i32 = 195;
4676pub const SSL_R_PSK_NO_CLIENT_CB: i32 = 196;
4677pub const SSL_R_PSK_NO_SERVER_CB: i32 = 197;
4678pub const SSL_R_READ_TIMEOUT_EXPIRED: i32 = 198;
4679pub const SSL_R_RECORD_LENGTH_MISMATCH: i32 = 199;
4680pub const SSL_R_RECORD_TOO_LARGE: i32 = 200;
4681pub const SSL_R_RENEGOTIATION_ENCODING_ERR: i32 = 201;
4682pub const SSL_R_RENEGOTIATION_MISMATCH: i32 = 202;
4683pub const SSL_R_REQUIRED_CIPHER_MISSING: i32 = 203;
4684pub const SSL_R_RESUMED_EMS_SESSION_WITHOUT_EMS_EXTENSION: i32 = 204;
4685pub const SSL_R_RESUMED_NON_EMS_SESSION_WITH_EMS_EXTENSION: i32 = 205;
4686pub const SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING: i32 = 206;
4687pub const SSL_R_SERVERHELLO_TLSEXT: i32 = 207;
4688pub const SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED: i32 = 208;
4689pub const SSL_R_SESSION_MAY_NOT_BE_CREATED: i32 = 209;
4690pub const SSL_R_SIGNATURE_ALGORITHMS_EXTENSION_SENT_BY_SERVER: i32 = 210;
4691pub const SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES: i32 = 211;
4692pub const SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE: i32 = 212;
4693pub const SSL_R_SSL3_EXT_INVALID_SERVERNAME: i32 = 213;
4694pub const SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION: i32 = 214;
4695pub const SSL_R_SSL_HANDSHAKE_FAILURE: i32 = 215;
4696pub const SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG: i32 = 216;
4697pub const SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST: i32 = 217;
4698pub const SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG: i32 = 218;
4699pub const SSL_R_TOO_MANY_EMPTY_FRAGMENTS: i32 = 219;
4700pub const SSL_R_TOO_MANY_WARNING_ALERTS: i32 = 220;
4701pub const SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS: i32 = 221;
4702pub const SSL_R_UNEXPECTED_EXTENSION: i32 = 222;
4703pub const SSL_R_UNEXPECTED_MESSAGE: i32 = 223;
4704pub const SSL_R_UNEXPECTED_OPERATOR_IN_GROUP: i32 = 224;
4705pub const SSL_R_UNEXPECTED_RECORD: i32 = 225;
4706pub const SSL_R_UNINITIALIZED: i32 = 226;
4707pub const SSL_R_UNKNOWN_ALERT_TYPE: i32 = 227;
4708pub const SSL_R_UNKNOWN_CERTIFICATE_TYPE: i32 = 228;
4709pub const SSL_R_UNKNOWN_CIPHER_RETURNED: i32 = 229;
4710pub const SSL_R_UNKNOWN_CIPHER_TYPE: i32 = 230;
4711pub const SSL_R_UNKNOWN_DIGEST: i32 = 231;
4712pub const SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE: i32 = 232;
4713pub const SSL_R_UNKNOWN_PROTOCOL: i32 = 233;
4714pub const SSL_R_UNKNOWN_SSL_VERSION: i32 = 234;
4715pub const SSL_R_UNKNOWN_STATE: i32 = 235;
4716pub const SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED: i32 = 236;
4717pub const SSL_R_UNSUPPORTED_CIPHER: i32 = 237;
4718pub const SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM: i32 = 238;
4719pub const SSL_R_UNSUPPORTED_ELLIPTIC_CURVE: i32 = 239;
4720pub const SSL_R_UNSUPPORTED_PROTOCOL: i32 = 240;
4721pub const SSL_R_WRONG_CERTIFICATE_TYPE: i32 = 241;
4722pub const SSL_R_WRONG_CIPHER_RETURNED: i32 = 242;
4723pub const SSL_R_WRONG_CURVE: i32 = 243;
4724pub const SSL_R_WRONG_MESSAGE_TYPE: i32 = 244;
4725pub const SSL_R_WRONG_SIGNATURE_TYPE: i32 = 245;
4726pub const SSL_R_WRONG_SSL_VERSION: i32 = 246;
4727pub const SSL_R_WRONG_VERSION_NUMBER: i32 = 247;
4728pub const SSL_R_X509_LIB: i32 = 248;
4729pub const SSL_R_X509_VERIFICATION_SETUP_PROBLEMS: i32 = 249;
4730pub const SSL_R_SHUTDOWN_WHILE_IN_INIT: i32 = 250;
4731pub const SSL_R_INVALID_OUTER_RECORD_TYPE: i32 = 251;
4732pub const SSL_R_UNSUPPORTED_PROTOCOL_FOR_CUSTOM_KEY: i32 = 252;
4733pub const SSL_R_NO_COMMON_SIGNATURE_ALGORITHMS: i32 = 253;
4734pub const SSL_R_DOWNGRADE_DETECTED: i32 = 254;
4735pub const SSL_R_EXCESS_HANDSHAKE_DATA: i32 = 255;
4736pub const SSL_R_INVALID_COMPRESSION_LIST: i32 = 256;
4737pub const SSL_R_DUPLICATE_EXTENSION: i32 = 257;
4738pub const SSL_R_MISSING_KEY_SHARE: i32 = 258;
4739pub const SSL_R_INVALID_ALPN_PROTOCOL: i32 = 259;
4740pub const SSL_R_TOO_MANY_KEY_UPDATES: i32 = 260;
4741pub const SSL_R_BLOCK_CIPHER_PAD_IS_WRONG: i32 = 261;
4742pub const SSL_R_NO_CIPHERS_SPECIFIED: i32 = 262;
4743pub const SSL_R_RENEGOTIATION_EMS_MISMATCH: i32 = 263;
4744pub const SSL_R_DUPLICATE_KEY_SHARE: i32 = 264;
4745pub const SSL_R_NO_GROUPS_SPECIFIED: i32 = 265;
4746pub const SSL_R_NO_SHARED_GROUP: i32 = 266;
4747pub const SSL_R_PRE_SHARED_KEY_MUST_BE_LAST: i32 = 267;
4748pub const SSL_R_OLD_SESSION_PRF_HASH_MISMATCH: i32 = 268;
4749pub const SSL_R_INVALID_SCT_LIST: i32 = 269;
4750pub const SSL_R_TOO_MUCH_SKIPPED_EARLY_DATA: i32 = 270;
4751pub const SSL_R_PSK_IDENTITY_BINDER_COUNT_MISMATCH: i32 = 271;
4752pub const SSL_R_CANNOT_PARSE_LEAF_CERT: i32 = 272;
4753pub const SSL_R_SERVER_CERT_CHANGED: i32 = 273;
4754pub const SSL_R_CERTIFICATE_AND_PRIVATE_KEY_MISMATCH: i32 = 274;
4755pub const SSL_R_CANNOT_HAVE_BOTH_PRIVKEY_AND_METHOD: i32 = 275;
4756pub const SSL_R_TICKET_ENCRYPTION_FAILED: i32 = 276;
4757pub const SSL_R_ALPN_MISMATCH_ON_EARLY_DATA: i32 = 277;
4758pub const SSL_R_WRONG_VERSION_ON_EARLY_DATA: i32 = 278;
4759pub const SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA: i32 = 279;
4760pub const SSL_R_NO_SUPPORTED_VERSIONS_ENABLED: i32 = 280;
4761pub const SSL_R_EMPTY_HELLO_RETRY_REQUEST: i32 = 282;
4762pub const SSL_R_EARLY_DATA_NOT_IN_USE: i32 = 283;
4763pub const SSL_R_HANDSHAKE_NOT_COMPLETE: i32 = 284;
4764pub const SSL_R_NEGOTIATED_TB_WITHOUT_EMS_OR_RI: i32 = 285;
4765pub const SSL_R_SERVER_ECHOED_INVALID_SESSION_ID: i32 = 286;
4766pub const SSL_R_PRIVATE_KEY_OPERATION_FAILED: i32 = 287;
4767pub const SSL_R_SECOND_SERVERHELLO_VERSION_MISMATCH: i32 = 288;
4768pub const SSL_R_OCSP_CB_ERROR: i32 = 289;
4769pub const SSL_R_SSL_SESSION_ID_TOO_LONG: i32 = 290;
4770pub const SSL_R_APPLICATION_DATA_ON_SHUTDOWN: i32 = 291;
4771pub const SSL_R_CERT_DECOMPRESSION_FAILED: i32 = 292;
4772pub const SSL_R_UNCOMPRESSED_CERT_TOO_LARGE: i32 = 293;
4773pub const SSL_R_UNKNOWN_CERT_COMPRESSION_ALG: i32 = 294;
4774pub const SSL_R_INVALID_SIGNATURE_ALGORITHM: i32 = 295;
4775pub const SSL_R_DUPLICATE_SIGNATURE_ALGORITHM: i32 = 296;
4776pub const SSL_R_TLS13_DOWNGRADE: i32 = 297;
4777pub const SSL_R_QUIC_INTERNAL_ERROR: i32 = 298;
4778pub const SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED: i32 = 299;
4779pub const SSL_R_TOO_MUCH_READ_EARLY_DATA: i32 = 300;
4780pub const SSL_R_INVALID_DELEGATED_CREDENTIAL: i32 = 301;
4781pub const SSL_R_KEY_USAGE_BIT_INCORRECT: i32 = 302;
4782pub const SSL_R_INCONSISTENT_CLIENT_HELLO: i32 = 303;
4783pub const SSL_R_CIPHER_MISMATCH_ON_EARLY_DATA: i32 = 304;
4784pub const SSL_R_QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED: i32 = 305;
4785pub const SSL_R_UNEXPECTED_COMPATIBILITY_MODE: i32 = 306;
4786pub const SSL_R_NO_APPLICATION_PROTOCOL: i32 = 307;
4787pub const SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN: i32 = 308;
4788pub const SSL_R_ALPS_MISMATCH_ON_EARLY_DATA: i32 = 309;
4789pub const SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH: i32 = 310;
4790pub const SSL_R_ECH_SERVER_CONFIG_UNSUPPORTED_EXTENSION: i32 = 311;
4791pub const SSL_R_UNSUPPORTED_ECH_SERVER_CONFIG: i32 = 312;
4792pub const SSL_R_ECH_SERVER_WOULD_HAVE_NO_RETRY_CONFIGS: i32 = 313;
4793pub const SSL_R_INVALID_CLIENT_HELLO_INNER: i32 = 314;
4794pub const SSL_R_INVALID_ALPN_PROTOCOL_LIST: i32 = 315;
4795pub const SSL_R_COULD_NOT_PARSE_HINTS: i32 = 316;
4796pub const SSL_R_INVALID_ECH_PUBLIC_NAME: i32 = 317;
4797pub const SSL_R_INVALID_ECH_CONFIG_LIST: i32 = 318;
4798pub const SSL_R_ECH_REJECTED: i32 = 319;
4799pub const SSL_R_INVALID_OUTER_EXTENSION: i32 = 320;
4800pub const SSL_R_INCONSISTENT_ECH_NEGOTIATION: i32 = 321;
4801pub const SSL_R_INVALID_ALPS_CODEPOINT: i32 = 322;
4802pub const SSL_R_NO_MATCHING_ISSUER: i32 = 323;
4803pub const SSL_R_INVALID_SPAKE2PLUSV1_VALUE: i32 = 324;
4804pub const SSL_R_PAKE_EXHAUSTED: i32 = 325;
4805pub const SSL_R_PEER_PAKE_MISMATCH: i32 = 326;
4806pub const SSL_R_UNSUPPORTED_CREDENTIAL_LIST: i32 = 327;
4807pub const SSL_R_INVALID_TRUST_ANCHOR_LIST: i32 = 328;
4808pub const SSL_R_INVALID_CERTIFICATE_PROPERTY_LIST: i32 = 329;
4809pub const SSL_R_DUPLICATE_GROUP: i32 = 330;
4810pub const SSL_R_INVALID_PSK_FOR_CONNECTION: i32 = 331;
4811pub const SSL_R_NO_SUPPORTED_PSK_MODE: i32 = 332;
4812pub const SSL_R_INVALID_CERT_TYPES_LIST: i32 = 333;
4813pub const SSL_R_UNSUPPORTED_CERTIFICATE: i32 = 334;
4814pub const SSL_R_MISSING_KEY: i32 = 335;
4815pub const SSL_R_INVALID_RAW_PUBLIC_KEY: i32 = 336;
4816pub const SSL_R_SSLV3_ALERT_CLOSE_NOTIFY: i32 = 1000;
4817pub const SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE: i32 = 1010;
4818pub const SSL_R_SSLV3_ALERT_BAD_RECORD_MAC: i32 = 1020;
4819pub const SSL_R_TLSV1_ALERT_DECRYPTION_FAILED: i32 = 1021;
4820pub const SSL_R_TLSV1_ALERT_RECORD_OVERFLOW: i32 = 1022;
4821pub const SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE: i32 = 1030;
4822pub const SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE: i32 = 1040;
4823pub const SSL_R_SSLV3_ALERT_NO_CERTIFICATE: i32 = 1041;
4824pub const SSL_R_SSLV3_ALERT_BAD_CERTIFICATE: i32 = 1042;
4825pub const SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE: i32 = 1043;
4826pub const SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED: i32 = 1044;
4827pub const SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED: i32 = 1045;
4828pub const SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN: i32 = 1046;
4829pub const SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER: i32 = 1047;
4830pub const SSL_R_TLSV1_ALERT_UNKNOWN_CA: i32 = 1048;
4831pub const SSL_R_TLSV1_ALERT_ACCESS_DENIED: i32 = 1049;
4832pub const SSL_R_TLSV1_ALERT_DECODE_ERROR: i32 = 1050;
4833pub const SSL_R_TLSV1_ALERT_DECRYPT_ERROR: i32 = 1051;
4834pub const SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION: i32 = 1060;
4835pub const SSL_R_TLSV1_ALERT_PROTOCOL_VERSION: i32 = 1070;
4836pub const SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY: i32 = 1071;
4837pub const SSL_R_TLSV1_ALERT_INTERNAL_ERROR: i32 = 1080;
4838pub const SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK: i32 = 1086;
4839pub const SSL_R_TLSV1_ALERT_USER_CANCELLED: i32 = 1090;
4840pub const SSL_R_TLSV1_ALERT_NO_RENEGOTIATION: i32 = 1100;
4841pub const SSL_R_TLSV1_ALERT_UNSUPPORTED_EXTENSION: i32 = 1110;
4842pub const SSL_R_TLSV1_ALERT_CERTIFICATE_UNOBTAINABLE: i32 = 1111;
4843pub const SSL_R_TLSV1_ALERT_UNRECOGNIZED_NAME: i32 = 1112;
4844pub const SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 1113;
4845pub const SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_HASH_VALUE: i32 = 1114;
4846pub const SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY: i32 = 1115;
4847pub const SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED: i32 = 1116;
4848pub const SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL: i32 = 1120;
4849pub const SSL_R_TLSV1_ALERT_ECH_REQUIRED: i32 = 1121;
4850pub const TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE: i32 = 512;
4851pub const TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE: i32 = 512;
4852pub const TRUST_TOKEN_R_KEYGEN_FAILURE: i32 = 100;
4853pub const TRUST_TOKEN_R_BUFFER_TOO_SMALL: i32 = 101;
4854pub const TRUST_TOKEN_R_OVER_BATCHSIZE: i32 = 102;
4855pub const TRUST_TOKEN_R_DECODE_ERROR: i32 = 103;
4856pub const TRUST_TOKEN_R_SRR_SIGNATURE_ERROR: i32 = 104;
4857pub const TRUST_TOKEN_R_DECODE_FAILURE: i32 = 105;
4858pub const TRUST_TOKEN_R_INVALID_METADATA: i32 = 106;
4859pub const TRUST_TOKEN_R_TOO_MANY_KEYS: i32 = 107;
4860pub const TRUST_TOKEN_R_NO_KEYS_CONFIGURED: i32 = 108;
4861pub const TRUST_TOKEN_R_INVALID_KEY_ID: i32 = 109;
4862pub const TRUST_TOKEN_R_INVALID_TOKEN: i32 = 110;
4863pub const TRUST_TOKEN_R_BAD_VALIDITY_CHECK: i32 = 111;
4864pub const TRUST_TOKEN_R_NO_SRR_KEY_CONFIGURED: i32 = 112;
4865pub const TRUST_TOKEN_R_INVALID_METADATA_KEY: i32 = 113;
4866pub const TRUST_TOKEN_R_INVALID_PROOF: i32 = 114;
4867pub const CRL_REASON_NONE: i32 = -1;
4868pub const CRL_REASON_UNSPECIFIED: i32 = 0;
4869pub const CRL_REASON_KEY_COMPROMISE: i32 = 1;
4870pub const CRL_REASON_CA_COMPROMISE: i32 = 2;
4871pub const CRL_REASON_AFFILIATION_CHANGED: i32 = 3;
4872pub const CRL_REASON_SUPERSEDED: i32 = 4;
4873pub const CRL_REASON_CESSATION_OF_OPERATION: i32 = 5;
4874pub const CRL_REASON_CERTIFICATE_HOLD: i32 = 6;
4875pub const CRL_REASON_REMOVE_FROM_CRL: i32 = 8;
4876pub const CRL_REASON_PRIVILEGE_WITHDRAWN: i32 = 9;
4877pub const CRL_REASON_AA_COMPROMISE: i32 = 10;
4878pub const KU_DIGITAL_SIGNATURE: i32 = 128;
4879pub const KU_NON_REPUDIATION: i32 = 64;
4880pub const KU_KEY_ENCIPHERMENT: i32 = 32;
4881pub const KU_DATA_ENCIPHERMENT: i32 = 16;
4882pub const KU_KEY_AGREEMENT: i32 = 8;
4883pub const KU_KEY_CERT_SIGN: i32 = 4;
4884pub const KU_CRL_SIGN: i32 = 2;
4885pub const KU_ENCIPHER_ONLY: i32 = 1;
4886pub const KU_DECIPHER_ONLY: i32 = 32768;
4887pub type __uint64_t = ::core::ffi::c_ulong;
4888pub type __off_t = ::core::ffi::c_long;
4889pub type __off64_t = ::core::ffi::c_long;
4890pub type __time_t = ::core::ffi::c_long;
4891pub type __suseconds_t = ::core::ffi::c_long;
4892pub type time_t = __time_t;
4893#[repr(C)]
4894#[derive(Debug, Copy, Clone)]
4895pub struct timeval {
4896    pub tv_sec: __time_t,
4897    pub tv_usec: __suseconds_t,
4898}
4899pub type ossl_ssize_t = isize;
4900pub type CBS_ASN1_TAG = u32;
4901pub type CRYPTO_THREADID = ::core::ffi::c_int;
4902#[repr(C)]
4903#[derive(Debug)]
4904pub struct asn1_null_st {
4905    _unused: [u8; 0],
4906}
4907pub type ASN1_NULL = asn1_null_st;
4908#[repr(C)]
4909#[derive(Debug)]
4910pub struct crypto_must_be_null_st {
4911    _unused: [u8; 0],
4912}
4913pub type CRYPTO_MUST_BE_NULL = crypto_must_be_null_st;
4914pub type ASN1_BOOLEAN = ::core::ffi::c_int;
4915pub type ASN1_ITEM = ASN1_ITEM_st;
4916#[repr(C)]
4917#[derive(Debug)]
4918pub struct asn1_object_st {
4919    _unused: [u8; 0],
4920}
4921pub type ASN1_OBJECT = asn1_object_st;
4922#[repr(C)]
4923#[derive(Debug)]
4924pub struct asn1_pctx_st {
4925    _unused: [u8; 0],
4926}
4927pub type ASN1_PCTX = asn1_pctx_st;
4928pub type ASN1_BIT_STRING = asn1_string_st;
4929pub type ASN1_BMPSTRING = asn1_string_st;
4930pub type ASN1_ENUMERATED = asn1_string_st;
4931pub type ASN1_GENERALIZEDTIME = asn1_string_st;
4932pub type ASN1_GENERALSTRING = asn1_string_st;
4933pub type ASN1_IA5STRING = asn1_string_st;
4934pub type ASN1_INTEGER = asn1_string_st;
4935pub type ASN1_OCTET_STRING = asn1_string_st;
4936pub type ASN1_PRINTABLESTRING = asn1_string_st;
4937pub type ASN1_STRING = asn1_string_st;
4938pub type ASN1_T61STRING = asn1_string_st;
4939pub type ASN1_TIME = asn1_string_st;
4940pub type ASN1_UNIVERSALSTRING = asn1_string_st;
4941pub type ASN1_UTCTIME = asn1_string_st;
4942pub type ASN1_UTF8STRING = asn1_string_st;
4943pub type ASN1_VISIBLESTRING = asn1_string_st;
4944pub type ASN1_TYPE = asn1_type_st;
4945pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st;
4946pub type BASIC_CONSTRAINTS = BASIC_CONSTRAINTS_st;
4947#[repr(C)]
4948#[derive(Debug)]
4949pub struct CMS_ContentInfo_st {
4950    _unused: [u8; 0],
4951}
4952pub type CMS_ContentInfo = CMS_ContentInfo_st;
4953#[repr(C)]
4954#[derive(Debug)]
4955pub struct CMS_SignerInfo_st {
4956    _unused: [u8; 0],
4957}
4958pub type CMS_SignerInfo = CMS_SignerInfo_st;
4959pub type DIST_POINT = DIST_POINT_st;
4960pub type DSA_SIG = DSA_SIG_st;
4961pub type GENERAL_NAME = GENERAL_NAME_st;
4962pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
4963pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
4964pub type NETSCAPE_SPKAC = Netscape_spkac_st;
4965pub type NETSCAPE_SPKI = Netscape_spki_st;
4966pub type RIPEMD160_CTX = RIPEMD160state_st;
4967#[repr(C)]
4968#[derive(Debug)]
4969pub struct X509_VERIFY_PARAM_st {
4970    _unused: [u8; 0],
4971}
4972pub type X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
4973pub type X509_ALGOR = X509_algor_st;
4974#[repr(C)]
4975#[derive(Debug)]
4976pub struct X509_crl_st {
4977    _unused: [u8; 0],
4978}
4979pub type X509_CRL = X509_crl_st;
4980#[repr(C)]
4981#[derive(Debug)]
4982pub struct X509_extension_st {
4983    _unused: [u8; 0],
4984}
4985pub type X509_EXTENSION = X509_extension_st;
4986pub type X509_INFO = X509_info_st;
4987#[repr(C)]
4988#[derive(Debug)]
4989pub struct X509_name_entry_st {
4990    _unused: [u8; 0],
4991}
4992pub type X509_NAME_ENTRY = X509_name_entry_st;
4993#[repr(C)]
4994#[derive(Debug)]
4995pub struct X509_name_st {
4996    _unused: [u8; 0],
4997}
4998pub type X509_NAME = X509_name_st;
4999#[repr(C)]
5000#[derive(Debug)]
5001pub struct X509_pubkey_st {
5002    _unused: [u8; 0],
5003}
5004pub type X509_PUBKEY = X509_pubkey_st;
5005#[repr(C)]
5006#[derive(Debug)]
5007pub struct X509_req_st {
5008    _unused: [u8; 0],
5009}
5010pub type X509_REQ = X509_req_st;
5011#[repr(C)]
5012#[derive(Debug)]
5013pub struct X509_sig_st {
5014    _unused: [u8; 0],
5015}
5016pub type X509_SIG = X509_sig_st;
5017#[repr(C)]
5018#[derive(Debug)]
5019pub struct bignum_ctx {
5020    _unused: [u8; 0],
5021}
5022pub type BN_CTX = bignum_ctx;
5023pub type BIGNUM = bignum_st;
5024#[repr(C)]
5025#[derive(Debug)]
5026pub struct bio_method_st {
5027    _unused: [u8; 0],
5028}
5029pub type BIO_METHOD = bio_method_st;
5030#[repr(C)]
5031#[derive(Debug)]
5032pub struct bio_st {
5033    _unused: [u8; 0],
5034}
5035pub type BIO = bio_st;
5036pub type BLAKE2B_CTX = blake2b_state_st;
5037pub type BN_GENCB = bn_gencb_st;
5038#[repr(C)]
5039#[derive(Debug)]
5040pub struct bn_mont_ctx_st {
5041    _unused: [u8; 0],
5042}
5043pub type BN_MONT_CTX = bn_mont_ctx_st;
5044pub type BUF_MEM = buf_mem_st;
5045pub type CBB = cbb_st;
5046pub type CBS = cbs_st;
5047#[repr(C)]
5048#[derive(Debug)]
5049pub struct cmac_ctx_st {
5050    _unused: [u8; 0],
5051}
5052pub type CMAC_CTX = cmac_ctx_st;
5053#[repr(C)]
5054#[derive(Debug)]
5055pub struct conf_st {
5056    _unused: [u8; 0],
5057}
5058pub type CONF = conf_st;
5059pub type CONF_VALUE = conf_value_st;
5060#[repr(C)]
5061#[derive(Debug)]
5062pub struct crypto_buffer_pool_st {
5063    _unused: [u8; 0],
5064}
5065pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st;
5066#[repr(C)]
5067#[derive(Debug)]
5068pub struct crypto_buffer_st {
5069    _unused: [u8; 0],
5070}
5071pub type CRYPTO_BUFFER = crypto_buffer_st;
5072pub type CRYPTO_IVEC = crypto_ivec_st;
5073pub type CRYPTO_IOVEC = crypto_iovec_st;
5074#[repr(C)]
5075#[derive(Debug)]
5076pub struct ctr_drbg_state_st {
5077    _unused: [u8; 0],
5078}
5079pub type CTR_DRBG_STATE = ctr_drbg_state_st;
5080#[repr(C)]
5081#[derive(Debug)]
5082pub struct dh_st {
5083    _unused: [u8; 0],
5084}
5085pub type DH = dh_st;
5086#[repr(C)]
5087#[derive(Debug)]
5088pub struct dsa_st {
5089    _unused: [u8; 0],
5090}
5091pub type DSA = dsa_st;
5092#[repr(C)]
5093#[derive(Debug)]
5094pub struct ec_group_st {
5095    _unused: [u8; 0],
5096}
5097pub type EC_GROUP = ec_group_st;
5098#[repr(C)]
5099#[derive(Debug)]
5100pub struct ec_key_st {
5101    _unused: [u8; 0],
5102}
5103pub type EC_KEY = ec_key_st;
5104#[repr(C)]
5105#[derive(Debug)]
5106pub struct ec_point_st {
5107    _unused: [u8; 0],
5108}
5109pub type EC_POINT = ec_point_st;
5110pub type ECDSA_METHOD = ecdsa_method_st;
5111pub type ECDSA_SIG = ecdsa_sig_st;
5112#[repr(C)]
5113#[derive(Debug)]
5114pub struct engine_st {
5115    _unused: [u8; 0],
5116}
5117pub type ENGINE = engine_st;
5118pub type EVP_MD_CTX = env_md_ctx_st;
5119#[repr(C)]
5120#[derive(Debug)]
5121pub struct env_md_st {
5122    _unused: [u8; 0],
5123}
5124pub type EVP_MD = env_md_st;
5125#[repr(C)]
5126#[derive(Debug)]
5127pub struct evp_aead_st {
5128    _unused: [u8; 0],
5129}
5130pub type EVP_AEAD = evp_aead_st;
5131pub type EVP_AEAD_CTX = evp_aead_ctx_st;
5132pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
5133#[repr(C)]
5134#[derive(Debug)]
5135pub struct evp_cipher_st {
5136    _unused: [u8; 0],
5137}
5138pub type EVP_CIPHER = evp_cipher_st;
5139pub type EVP_ENCODE_CTX = evp_encode_ctx_st;
5140#[repr(C)]
5141#[derive(Debug)]
5142pub struct evp_hpke_aead_st {
5143    _unused: [u8; 0],
5144}
5145pub type EVP_HPKE_AEAD = evp_hpke_aead_st;
5146pub type EVP_HPKE_CTX = evp_hpke_ctx_st;
5147#[repr(C)]
5148#[derive(Debug)]
5149pub struct evp_hpke_kdf_st {
5150    _unused: [u8; 0],
5151}
5152pub type EVP_HPKE_KDF = evp_hpke_kdf_st;
5153#[repr(C)]
5154#[derive(Debug)]
5155pub struct evp_hpke_kem_st {
5156    _unused: [u8; 0],
5157}
5158pub type EVP_HPKE_KEM = evp_hpke_kem_st;
5159pub type EVP_HPKE_KEY = evp_hpke_key_st;
5160#[repr(C)]
5161#[derive(Debug)]
5162pub struct evp_kem_st {
5163    _unused: [u8; 0],
5164}
5165pub type EVP_KEM = evp_kem_st;
5166#[repr(C)]
5167#[derive(Debug)]
5168pub struct evp_pkey_alg_st {
5169    _unused: [u8; 0],
5170}
5171pub type EVP_PKEY_ALG = evp_pkey_alg_st;
5172#[repr(C)]
5173#[derive(Debug)]
5174pub struct evp_pkey_ctx_st {
5175    _unused: [u8; 0],
5176}
5177pub type EVP_PKEY_CTX = evp_pkey_ctx_st;
5178#[repr(C)]
5179#[derive(Debug)]
5180pub struct evp_pkey_st {
5181    _unused: [u8; 0],
5182}
5183pub type EVP_PKEY = evp_pkey_st;
5184pub type HMAC_CTX = hmac_ctx_st;
5185pub type MD4_CTX = md4_state_st;
5186pub type MD5_CTX = md5_state_st;
5187#[repr(C)]
5188#[derive(Debug)]
5189pub struct ossl_init_settings_st {
5190    _unused: [u8; 0],
5191}
5192pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st;
5193#[repr(C)]
5194#[derive(Debug)]
5195pub struct ossl_lib_ctx_st {
5196    _unused: [u8; 0],
5197}
5198pub type OSSL_LIB_CTX = ossl_lib_ctx_st;
5199#[repr(C)]
5200#[derive(Debug)]
5201pub struct ossl_param_st {
5202    _unused: [u8; 0],
5203}
5204pub type OSSL_PARAM = ossl_param_st;
5205#[repr(C)]
5206#[derive(Debug)]
5207pub struct pkcs12_st {
5208    _unused: [u8; 0],
5209}
5210pub type PKCS12 = pkcs12_st;
5211#[repr(C)]
5212#[derive(Debug)]
5213pub struct pkcs8_priv_key_info_st {
5214    _unused: [u8; 0],
5215}
5216pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
5217pub type X509_PKEY = private_key_st;
5218pub type RAND_METHOD = rand_meth_st;
5219pub type RC4_KEY = rc4_key_st;
5220pub type RSA_METHOD = rsa_meth_st;
5221pub type RSA_PSS_PARAMS = rsa_pss_params_st;
5222#[repr(C)]
5223#[derive(Debug)]
5224pub struct rsa_st {
5225    _unused: [u8; 0],
5226}
5227pub type RSA = rsa_st;
5228pub type SHA256_CTX = sha256_state_st;
5229pub type SHA512_CTX = sha512_state_st;
5230pub type SHA_CTX = sha_state_st;
5231#[repr(C)]
5232#[derive(Debug)]
5233pub struct spake2_ctx_st {
5234    _unused: [u8; 0],
5235}
5236pub type SPAKE2_CTX = spake2_ctx_st;
5237pub type SRTP_PROTECTION_PROFILE = srtp_protection_profile_st;
5238#[repr(C)]
5239#[derive(Debug)]
5240pub struct ssl_cipher_st {
5241    _unused: [u8; 0],
5242}
5243pub type SSL_CIPHER = ssl_cipher_st;
5244#[repr(C)]
5245#[derive(Debug)]
5246pub struct ssl_credential_st {
5247    _unused: [u8; 0],
5248}
5249pub type SSL_CREDENTIAL = ssl_credential_st;
5250#[repr(C)]
5251#[derive(Debug)]
5252pub struct ssl_ctx_st {
5253    _unused: [u8; 0],
5254}
5255pub type SSL_CTX = ssl_ctx_st;
5256pub type SSL_CLIENT_HELLO = ssl_early_callback_ctx;
5257#[repr(C)]
5258#[derive(Debug)]
5259pub struct ssl_ech_keys_st {
5260    _unused: [u8; 0],
5261}
5262pub type SSL_ECH_KEYS = ssl_ech_keys_st;
5263#[repr(C)]
5264#[derive(Debug)]
5265pub struct ssl_method_st {
5266    _unused: [u8; 0],
5267}
5268pub type SSL_METHOD = ssl_method_st;
5269pub type SSL_PRIVATE_KEY_METHOD = ssl_private_key_method_st;
5270pub type SSL_QUIC_METHOD = ssl_quic_method_st;
5271#[repr(C)]
5272#[derive(Debug)]
5273pub struct ssl_session_st {
5274    _unused: [u8; 0],
5275}
5276pub type SSL_SESSION = ssl_session_st;
5277#[repr(C)]
5278#[derive(Debug)]
5279pub struct ssl_st {
5280    _unused: [u8; 0],
5281}
5282pub type SSL = ssl_st;
5283pub type SSL_TICKET_AEAD_METHOD = ssl_ticket_aead_method_st;
5284#[repr(C)]
5285#[derive(Debug)]
5286pub struct st_ERR_FNS {
5287    _unused: [u8; 0],
5288}
5289pub type ERR_FNS = st_ERR_FNS;
5290pub type TRUST_TOKEN = trust_token_st;
5291#[repr(C)]
5292#[derive(Debug)]
5293pub struct trust_token_client_st {
5294    _unused: [u8; 0],
5295}
5296pub type TRUST_TOKEN_CLIENT = trust_token_client_st;
5297#[repr(C)]
5298#[derive(Debug)]
5299pub struct trust_token_issuer_st {
5300    _unused: [u8; 0],
5301}
5302pub type TRUST_TOKEN_ISSUER = trust_token_issuer_st;
5303#[repr(C)]
5304#[derive(Debug)]
5305pub struct trust_token_method_st {
5306    _unused: [u8; 0],
5307}
5308pub type TRUST_TOKEN_METHOD = trust_token_method_st;
5309pub type X509V3_CTX = v3_ext_ctx;
5310pub type X509V3_EXT_METHOD = v3_ext_method;
5311#[repr(C)]
5312#[derive(Debug)]
5313pub struct x509_attributes_st {
5314    _unused: [u8; 0],
5315}
5316pub type X509_ATTRIBUTE = x509_attributes_st;
5317#[repr(C)]
5318#[derive(Debug)]
5319pub struct x509_lookup_st {
5320    _unused: [u8; 0],
5321}
5322pub type X509_LOOKUP = x509_lookup_st;
5323#[repr(C)]
5324#[derive(Debug)]
5325pub struct x509_lookup_method_st {
5326    _unused: [u8; 0],
5327}
5328pub type X509_LOOKUP_METHOD = x509_lookup_method_st;
5329#[repr(C)]
5330#[derive(Debug)]
5331pub struct x509_object_st {
5332    _unused: [u8; 0],
5333}
5334pub type X509_OBJECT = x509_object_st;
5335#[repr(C)]
5336#[derive(Debug)]
5337pub struct x509_purpose_st {
5338    _unused: [u8; 0],
5339}
5340pub type X509_PURPOSE = x509_purpose_st;
5341#[repr(C)]
5342#[derive(Debug)]
5343pub struct x509_revoked_st {
5344    _unused: [u8; 0],
5345}
5346pub type X509_REVOKED = x509_revoked_st;
5347#[repr(C)]
5348#[derive(Debug)]
5349pub struct x509_st {
5350    _unused: [u8; 0],
5351}
5352pub type X509 = x509_st;
5353#[repr(C)]
5354#[derive(Debug)]
5355pub struct x509_store_ctx_st {
5356    _unused: [u8; 0],
5357}
5358pub type X509_STORE_CTX = x509_store_ctx_st;
5359#[repr(C)]
5360#[derive(Debug)]
5361pub struct x509_store_st {
5362    _unused: [u8; 0],
5363}
5364pub type X509_STORE = x509_store_st;
5365pub type OPENSSL_BLOCK = *mut ::core::ffi::c_void;
5366#[repr(C)]
5367#[derive(Debug, Copy, Clone)]
5368pub struct aes_key_st {
5369    pub rd_key: [u32; 60usize],
5370    pub rounds: ::core::ffi::c_uint,
5371}
5372pub type AES_KEY = aes_key_st;
5373unsafe extern "C" {
5374    pub fn AES_set_encrypt_key(
5375        key: *const u8,
5376        bits: ::core::ffi::c_uint,
5377        aeskey: *mut AES_KEY,
5378    ) -> ::core::ffi::c_int;
5379}
5380unsafe extern "C" {
5381    pub fn AES_set_decrypt_key(
5382        key: *const u8,
5383        bits: ::core::ffi::c_uint,
5384        aeskey: *mut AES_KEY,
5385    ) -> ::core::ffi::c_int;
5386}
5387unsafe extern "C" {
5388    pub fn AES_encrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
5389}
5390unsafe extern "C" {
5391    pub fn AES_decrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
5392}
5393unsafe extern "C" {
5394    pub fn AES_ctr128_encrypt(
5395        in_: *const u8,
5396        out: *mut u8,
5397        len: usize,
5398        key: *const AES_KEY,
5399        ivec: *mut u8,
5400        ecount_buf: *mut u8,
5401        num: *mut ::core::ffi::c_uint,
5402    );
5403}
5404unsafe extern "C" {
5405    pub fn AES_ecb_encrypt(
5406        in_: *const u8,
5407        out: *mut u8,
5408        key: *const AES_KEY,
5409        enc: ::core::ffi::c_int,
5410    );
5411}
5412unsafe extern "C" {
5413    pub fn AES_cbc_encrypt(
5414        in_: *const u8,
5415        out: *mut u8,
5416        len: usize,
5417        key: *const AES_KEY,
5418        ivec: *mut u8,
5419        enc: ::core::ffi::c_int,
5420    );
5421}
5422unsafe extern "C" {
5423    pub fn AES_ofb128_encrypt(
5424        in_: *const u8,
5425        out: *mut u8,
5426        len: usize,
5427        key: *const AES_KEY,
5428        ivec: *mut u8,
5429        num: *mut ::core::ffi::c_int,
5430    );
5431}
5432unsafe extern "C" {
5433    pub fn AES_cfb128_encrypt(
5434        in_: *const u8,
5435        out: *mut u8,
5436        len: usize,
5437        key: *const AES_KEY,
5438        ivec: *mut u8,
5439        num: *mut ::core::ffi::c_int,
5440        enc: ::core::ffi::c_int,
5441    );
5442}
5443unsafe extern "C" {
5444    pub fn AES_wrap_key(
5445        key: *const AES_KEY,
5446        iv: *const u8,
5447        out: *mut u8,
5448        in_: *const u8,
5449        in_len: usize,
5450    ) -> ::core::ffi::c_int;
5451}
5452unsafe extern "C" {
5453    pub fn AES_unwrap_key(
5454        key: *const AES_KEY,
5455        iv: *const u8,
5456        out: *mut u8,
5457        in_: *const u8,
5458        in_len: usize,
5459    ) -> ::core::ffi::c_int;
5460}
5461unsafe extern "C" {
5462    pub fn AES_wrap_key_padded(
5463        key: *const AES_KEY,
5464        out: *mut u8,
5465        out_len: *mut usize,
5466        max_out: usize,
5467        in_: *const u8,
5468        in_len: usize,
5469    ) -> ::core::ffi::c_int;
5470}
5471unsafe extern "C" {
5472    pub fn AES_unwrap_key_padded(
5473        key: *const AES_KEY,
5474        out: *mut u8,
5475        out_len: *mut usize,
5476        max_out: usize,
5477        in_: *const u8,
5478        in_len: usize,
5479    ) -> ::core::ffi::c_int;
5480}
5481#[repr(C)]
5482#[derive(Debug, Copy, Clone)]
5483pub struct tm {
5484    pub tm_sec: ::core::ffi::c_int,
5485    pub tm_min: ::core::ffi::c_int,
5486    pub tm_hour: ::core::ffi::c_int,
5487    pub tm_mday: ::core::ffi::c_int,
5488    pub tm_mon: ::core::ffi::c_int,
5489    pub tm_year: ::core::ffi::c_int,
5490    pub tm_wday: ::core::ffi::c_int,
5491    pub tm_yday: ::core::ffi::c_int,
5492    pub tm_isdst: ::core::ffi::c_int,
5493    pub tm_gmtoff: ::core::ffi::c_long,
5494    pub tm_zone: *const ::core::ffi::c_char,
5495}
5496pub type __gnuc_va_list = __builtin_va_list;
5497pub type FILE = _IO_FILE;
5498#[repr(C)]
5499#[derive(Debug)]
5500pub struct _IO_marker {
5501    _unused: [u8; 0],
5502}
5503#[repr(C)]
5504#[derive(Debug)]
5505pub struct _IO_codecvt {
5506    _unused: [u8; 0],
5507}
5508#[repr(C)]
5509#[derive(Debug)]
5510pub struct _IO_wide_data {
5511    _unused: [u8; 0],
5512}
5513pub type _IO_lock_t = ::core::ffi::c_void;
5514#[repr(C)]
5515#[derive(Debug, Copy, Clone)]
5516pub struct _IO_FILE {
5517    pub _flags: ::core::ffi::c_int,
5518    pub _IO_read_ptr: *mut ::core::ffi::c_char,
5519    pub _IO_read_end: *mut ::core::ffi::c_char,
5520    pub _IO_read_base: *mut ::core::ffi::c_char,
5521    pub _IO_write_base: *mut ::core::ffi::c_char,
5522    pub _IO_write_ptr: *mut ::core::ffi::c_char,
5523    pub _IO_write_end: *mut ::core::ffi::c_char,
5524    pub _IO_buf_base: *mut ::core::ffi::c_char,
5525    pub _IO_buf_end: *mut ::core::ffi::c_char,
5526    pub _IO_save_base: *mut ::core::ffi::c_char,
5527    pub _IO_backup_base: *mut ::core::ffi::c_char,
5528    pub _IO_save_end: *mut ::core::ffi::c_char,
5529    pub _markers: *mut _IO_marker,
5530    pub _chain: *mut _IO_FILE,
5531    pub _fileno: ::core::ffi::c_int,
5532    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
5533    pub _short_backupbuf: [::core::ffi::c_char; 1usize],
5534    pub _old_offset: __off_t,
5535    pub _cur_column: ::core::ffi::c_ushort,
5536    pub _vtable_offset: ::core::ffi::c_schar,
5537    pub _shortbuf: [::core::ffi::c_char; 1usize],
5538    pub _lock: *mut _IO_lock_t,
5539    pub _offset: __off64_t,
5540    pub _codecvt: *mut _IO_codecvt,
5541    pub _wide_data: *mut _IO_wide_data,
5542    pub _freeres_list: *mut _IO_FILE,
5543    pub _freeres_buf: *mut ::core::ffi::c_void,
5544    pub _prevchain: *mut *mut _IO_FILE,
5545    pub _mode: ::core::ffi::c_int,
5546    pub _unused3: ::core::ffi::c_int,
5547    pub _total_written: __uint64_t,
5548    pub _unused2: [::core::ffi::c_char; 8usize],
5549}
5550impl _IO_FILE {
5551    #[inline]
5552    pub fn _flags2(&self) -> ::core::ffi::c_int {
5553        self._bitfield_1.get_const::<0usize, 24u8>() as u32 as _
5554    }
5555    #[inline]
5556    pub fn set__flags2(&mut self, val: ::core::ffi::c_int) {
5557        let val: u32 = val as _;
5558        self._bitfield_1.set_const::<0usize, 24u8>(val as u64)
5559    }
5560    #[inline]
5561    pub unsafe fn _flags2_raw(this: *const Self) -> ::core::ffi::c_int {
5562        unsafe {
5563            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get_const::<0usize, 24u8>(
5564                ::core::ptr::addr_of!((*this)._bitfield_1),
5565            ) as u32 as _
5566        }
5567    }
5568    #[inline]
5569    pub unsafe fn set__flags2_raw(this: *mut Self, val: ::core::ffi::c_int) {
5570        unsafe {
5571            let val: u32 = val as _;
5572            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set_const::<0usize, 24u8>(
5573                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5574                val as u64,
5575            )
5576        }
5577    }
5578    #[inline]
5579    pub fn new_bitfield_1(_flags2: ::core::ffi::c_int) -> __BindgenBitfieldUnit<[u8; 3usize]> {
5580        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
5581        __bindgen_bitfield_unit.set_const::<0usize, 24u8>({
5582            let _flags2: u32 = _flags2 as _;
5583            _flags2 as u64
5584        });
5585        __bindgen_bitfield_unit
5586    }
5587}
5588pub type va_list = __gnuc_va_list;
5589#[repr(C)]
5590#[derive(Debug, Copy, Clone)]
5591pub struct buf_mem_st {
5592    pub length: usize,
5593    pub data: *mut ::core::ffi::c_char,
5594    pub max: usize,
5595}
5596unsafe extern "C" {
5597    pub fn BUF_MEM_new() -> *mut BUF_MEM;
5598}
5599unsafe extern "C" {
5600    pub fn BUF_MEM_free(buf: *mut BUF_MEM);
5601}
5602unsafe extern "C" {
5603    pub fn BUF_MEM_reserve(buf: *mut BUF_MEM, cap: usize) -> ::core::ffi::c_int;
5604}
5605unsafe extern "C" {
5606    pub fn BUF_MEM_grow(buf: *mut BUF_MEM, len: usize) -> usize;
5607}
5608unsafe extern "C" {
5609    pub fn BUF_MEM_grow_clean(buf: *mut BUF_MEM, len: usize) -> usize;
5610}
5611unsafe extern "C" {
5612    pub fn BUF_MEM_append(
5613        buf: *mut BUF_MEM,
5614        in_: *const ::core::ffi::c_void,
5615        len: usize,
5616    ) -> ::core::ffi::c_int;
5617}
5618unsafe extern "C" {
5619    pub fn BUF_strdup(str_: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
5620}
5621unsafe extern "C" {
5622    pub fn BUF_strnlen(str_: *const ::core::ffi::c_char, max_len: usize) -> usize;
5623}
5624unsafe extern "C" {
5625    pub fn BUF_strndup(str_: *const ::core::ffi::c_char, size: usize) -> *mut ::core::ffi::c_char;
5626}
5627unsafe extern "C" {
5628    pub fn BUF_memdup(data: *const ::core::ffi::c_void, size: usize) -> *mut ::core::ffi::c_void;
5629}
5630unsafe extern "C" {
5631    pub fn BUF_strlcpy(
5632        dst: *mut ::core::ffi::c_char,
5633        src: *const ::core::ffi::c_char,
5634        dst_size: usize,
5635    ) -> usize;
5636}
5637unsafe extern "C" {
5638    pub fn BUF_strlcat(
5639        dst: *mut ::core::ffi::c_char,
5640        src: *const ::core::ffi::c_char,
5641        dst_size: usize,
5642    ) -> usize;
5643}
5644unsafe extern "C" {
5645    #[link_name = "ERR_GET_LIB__extern"]
5646    pub fn ERR_GET_LIB(packed_error: u32) -> ::core::ffi::c_int;
5647}
5648unsafe extern "C" {
5649    #[link_name = "ERR_GET_REASON__extern"]
5650    pub fn ERR_GET_REASON(packed_error: u32) -> ::core::ffi::c_int;
5651}
5652unsafe extern "C" {
5653    #[link_name = "ERR_equals__extern"]
5654    pub fn ERR_equals(
5655        packed_error: u32,
5656        lib: ::core::ffi::c_int,
5657        reason: ::core::ffi::c_int,
5658    ) -> ::core::ffi::c_int;
5659}
5660unsafe extern "C" {
5661    pub fn ERR_get_error() -> u32;
5662}
5663unsafe extern "C" {
5664    pub fn ERR_get_error_line(
5665        file: *mut *const ::core::ffi::c_char,
5666        line: *mut ::core::ffi::c_int,
5667    ) -> u32;
5668}
5669unsafe extern "C" {
5670    pub fn ERR_get_error_line_data(
5671        file: *mut *const ::core::ffi::c_char,
5672        line: *mut ::core::ffi::c_int,
5673        data: *mut *const ::core::ffi::c_char,
5674        flags: *mut ::core::ffi::c_int,
5675    ) -> u32;
5676}
5677unsafe extern "C" {
5678    pub fn ERR_peek_error() -> u32;
5679}
5680unsafe extern "C" {
5681    pub fn ERR_peek_error_line(
5682        file: *mut *const ::core::ffi::c_char,
5683        line: *mut ::core::ffi::c_int,
5684    ) -> u32;
5685}
5686unsafe extern "C" {
5687    pub fn ERR_peek_error_line_data(
5688        file: *mut *const ::core::ffi::c_char,
5689        line: *mut ::core::ffi::c_int,
5690        data: *mut *const ::core::ffi::c_char,
5691        flags: *mut ::core::ffi::c_int,
5692    ) -> u32;
5693}
5694unsafe extern "C" {
5695    pub fn ERR_peek_last_error() -> u32;
5696}
5697unsafe extern "C" {
5698    pub fn ERR_peek_last_error_line(
5699        file: *mut *const ::core::ffi::c_char,
5700        line: *mut ::core::ffi::c_int,
5701    ) -> u32;
5702}
5703unsafe extern "C" {
5704    pub fn ERR_peek_last_error_line_data(
5705        file: *mut *const ::core::ffi::c_char,
5706        line: *mut ::core::ffi::c_int,
5707        data: *mut *const ::core::ffi::c_char,
5708        flags: *mut ::core::ffi::c_int,
5709    ) -> u32;
5710}
5711unsafe extern "C" {
5712    pub fn ERR_error_string_n(
5713        packed_error: u32,
5714        buf: *mut ::core::ffi::c_char,
5715        len: usize,
5716    ) -> *mut ::core::ffi::c_char;
5717}
5718unsafe extern "C" {
5719    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5720}
5721unsafe extern "C" {
5722    pub fn ERR_reason_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5723}
5724unsafe extern "C" {
5725    pub fn ERR_lib_symbol_name(packed_error: u32) -> *const ::core::ffi::c_char;
5726}
5727unsafe extern "C" {
5728    pub fn ERR_reason_symbol_name(packed_error: u32) -> *const ::core::ffi::c_char;
5729}
5730pub type ERR_print_errors_callback_t = ::core::option::Option<
5731    unsafe extern "C" fn(
5732        str_: *const ::core::ffi::c_char,
5733        len: usize,
5734        ctx: *mut ::core::ffi::c_void,
5735    ) -> ::core::ffi::c_int,
5736>;
5737unsafe extern "C" {
5738    pub fn ERR_print_errors_cb(
5739        callback: ERR_print_errors_callback_t,
5740        ctx: *mut ::core::ffi::c_void,
5741    );
5742}
5743unsafe extern "C" {
5744    pub fn ERR_print_errors_fp(file: *mut FILE);
5745}
5746unsafe extern "C" {
5747    pub fn ERR_clear_error();
5748}
5749unsafe extern "C" {
5750    pub fn ERR_set_mark() -> ::core::ffi::c_int;
5751}
5752unsafe extern "C" {
5753    pub fn ERR_pop_to_mark() -> ::core::ffi::c_int;
5754}
5755unsafe extern "C" {
5756    pub fn ERR_get_next_error_library() -> ::core::ffi::c_int;
5757}
5758pub const ERR_LIB_NONE: _bindgen_ty_1 = 1;
5759pub const ERR_LIB_SYS: _bindgen_ty_1 = 2;
5760pub const ERR_LIB_BN: _bindgen_ty_1 = 3;
5761pub const ERR_LIB_RSA: _bindgen_ty_1 = 4;
5762pub const ERR_LIB_DH: _bindgen_ty_1 = 5;
5763pub const ERR_LIB_EVP: _bindgen_ty_1 = 6;
5764pub const ERR_LIB_BUF: _bindgen_ty_1 = 7;
5765pub const ERR_LIB_OBJ: _bindgen_ty_1 = 8;
5766pub const ERR_LIB_PEM: _bindgen_ty_1 = 9;
5767pub const ERR_LIB_DSA: _bindgen_ty_1 = 10;
5768pub const ERR_LIB_X509: _bindgen_ty_1 = 11;
5769pub const ERR_LIB_ASN1: _bindgen_ty_1 = 12;
5770pub const ERR_LIB_CONF: _bindgen_ty_1 = 13;
5771pub const ERR_LIB_CRYPTO: _bindgen_ty_1 = 14;
5772pub const ERR_LIB_EC: _bindgen_ty_1 = 15;
5773pub const ERR_LIB_SSL: _bindgen_ty_1 = 16;
5774pub const ERR_LIB_BIO: _bindgen_ty_1 = 17;
5775pub const ERR_LIB_PKCS7: _bindgen_ty_1 = 18;
5776pub const ERR_LIB_PKCS8: _bindgen_ty_1 = 19;
5777pub const ERR_LIB_X509V3: _bindgen_ty_1 = 20;
5778pub const ERR_LIB_RAND: _bindgen_ty_1 = 21;
5779pub const ERR_LIB_ENGINE: _bindgen_ty_1 = 22;
5780pub const ERR_LIB_OCSP: _bindgen_ty_1 = 23;
5781pub const ERR_LIB_UI: _bindgen_ty_1 = 24;
5782pub const ERR_LIB_COMP: _bindgen_ty_1 = 25;
5783pub const ERR_LIB_ECDSA: _bindgen_ty_1 = 26;
5784pub const ERR_LIB_ECDH: _bindgen_ty_1 = 27;
5785pub const ERR_LIB_HMAC: _bindgen_ty_1 = 28;
5786pub const ERR_LIB_DIGEST: _bindgen_ty_1 = 29;
5787pub const ERR_LIB_CIPHER: _bindgen_ty_1 = 30;
5788pub const ERR_LIB_HKDF: _bindgen_ty_1 = 31;
5789pub const ERR_LIB_TRUST_TOKEN: _bindgen_ty_1 = 32;
5790pub const ERR_LIB_CMS: _bindgen_ty_1 = 33;
5791pub const ERR_LIB_USER: _bindgen_ty_1 = 34;
5792pub const ERR_NUM_LIBS: _bindgen_ty_1 = 35;
5793pub type _bindgen_ty_1 = ::core::ffi::c_uint;
5794unsafe extern "C" {
5795    pub fn ERR_load_BIO_strings();
5796}
5797unsafe extern "C" {
5798    pub fn ERR_load_ERR_strings();
5799}
5800unsafe extern "C" {
5801    pub fn ERR_load_crypto_strings();
5802}
5803unsafe extern "C" {
5804    pub fn ERR_load_RAND_strings();
5805}
5806unsafe extern "C" {
5807    pub fn ERR_free_strings();
5808}
5809unsafe extern "C" {
5810    pub fn ERR_remove_state(pid: ::core::ffi::c_ulong);
5811}
5812unsafe extern "C" {
5813    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
5814}
5815unsafe extern "C" {
5816    pub fn ERR_func_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5817}
5818unsafe extern "C" {
5819    pub fn ERR_error_string(
5820        packed_error: u32,
5821        buf: *mut ::core::ffi::c_char,
5822    ) -> *mut ::core::ffi::c_char;
5823}
5824unsafe extern "C" {
5825    #[link_name = "ERR_GET_FUNC__extern"]
5826    pub fn ERR_GET_FUNC(packed_error: u32) -> ::core::ffi::c_int;
5827}
5828unsafe extern "C" {
5829    pub fn ERR_clear_system_error();
5830}
5831unsafe extern "C" {
5832    pub fn ERR_put_error(
5833        library: ::core::ffi::c_int,
5834        unused: ::core::ffi::c_int,
5835        reason: ::core::ffi::c_int,
5836        file: *const ::core::ffi::c_char,
5837        line: ::core::ffi::c_uint,
5838    );
5839}
5840unsafe extern "C" {
5841    pub fn ERR_add_error_data(count: ::core::ffi::c_uint, ...);
5842}
5843unsafe extern "C" {
5844    pub fn ERR_add_error_dataf(format: *const ::core::ffi::c_char, ...);
5845}
5846unsafe extern "C" {
5847    pub fn ERR_set_error_data(data: *mut ::core::ffi::c_char, flags: ::core::ffi::c_int);
5848}
5849#[repr(C)]
5850#[derive(Debug)]
5851pub struct crypto_ex_data_st {
5852    _unused: [u8; 0],
5853}
5854pub type CRYPTO_EX_DATA = crypto_ex_data_st;
5855pub type CRYPTO_EX_free = ::core::option::Option<
5856    unsafe extern "C" fn(
5857        parent: *mut ::core::ffi::c_void,
5858        ptr: *mut ::core::ffi::c_void,
5859        ad: *mut CRYPTO_EX_DATA,
5860        index: ::core::ffi::c_int,
5861        argl: ::core::ffi::c_long,
5862        argp: *mut ::core::ffi::c_void,
5863    ),
5864>;
5865unsafe extern "C" {
5866    pub fn CRYPTO_cleanup_all_ex_data();
5867}
5868pub type CRYPTO_EX_dup = ::core::option::Option<
5869    unsafe extern "C" fn(
5870        to: *mut CRYPTO_EX_DATA,
5871        from: *const CRYPTO_EX_DATA,
5872        from_d: *mut *mut ::core::ffi::c_void,
5873        index: ::core::ffi::c_int,
5874        argl: ::core::ffi::c_long,
5875        argp: *mut ::core::ffi::c_void,
5876    ) -> ::core::ffi::c_int,
5877>;
5878pub type CRYPTO_EX_unused = ::core::ffi::c_int;
5879pub type OPENSSL_sk_free_func =
5880    ::core::option::Option<unsafe extern "C" fn(ptr: *mut ::core::ffi::c_void)>;
5881pub type OPENSSL_sk_copy_func = ::core::option::Option<
5882    unsafe extern "C" fn(ptr: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void,
5883>;
5884pub type OPENSSL_sk_cmp_func = ::core::option::Option<
5885    unsafe extern "C" fn(
5886        a: *const *const ::core::ffi::c_void,
5887        b: *const *const ::core::ffi::c_void,
5888    ) -> ::core::ffi::c_int,
5889>;
5890pub type OPENSSL_sk_delete_if_func = ::core::option::Option<
5891    unsafe extern "C" fn(
5892        obj: *mut ::core::ffi::c_void,
5893        data: *mut ::core::ffi::c_void,
5894    ) -> ::core::ffi::c_int,
5895>;
5896pub type OPENSSL_sk_call_free_func = ::core::option::Option<
5897    unsafe extern "C" fn(arg1: OPENSSL_sk_free_func, arg2: *mut ::core::ffi::c_void),
5898>;
5899pub type OPENSSL_sk_call_copy_func = ::core::option::Option<
5900    unsafe extern "C" fn(
5901        arg1: OPENSSL_sk_copy_func,
5902        arg2: *const ::core::ffi::c_void,
5903    ) -> *mut ::core::ffi::c_void,
5904>;
5905pub type OPENSSL_sk_call_cmp_func = ::core::option::Option<
5906    unsafe extern "C" fn(
5907        arg1: OPENSSL_sk_cmp_func,
5908        arg2: *const ::core::ffi::c_void,
5909        arg3: *const ::core::ffi::c_void,
5910    ) -> ::core::ffi::c_int,
5911>;
5912pub type OPENSSL_sk_call_delete_if_func = ::core::option::Option<
5913    unsafe extern "C" fn(
5914        arg1: OPENSSL_sk_delete_if_func,
5915        arg2: *mut ::core::ffi::c_void,
5916        arg3: *mut ::core::ffi::c_void,
5917    ) -> ::core::ffi::c_int,
5918>;
5919#[repr(C)]
5920#[derive(Debug)]
5921pub struct stack_st {
5922    _unused: [u8; 0],
5923}
5924pub type OPENSSL_STACK = stack_st;
5925unsafe extern "C" {
5926    pub fn OPENSSL_sk_new(comp: OPENSSL_sk_cmp_func) -> *mut OPENSSL_STACK;
5927}
5928unsafe extern "C" {
5929    pub fn OPENSSL_sk_new_null() -> *mut OPENSSL_STACK;
5930}
5931unsafe extern "C" {
5932    pub fn OPENSSL_sk_num(sk: *const OPENSSL_STACK) -> usize;
5933}
5934unsafe extern "C" {
5935    pub fn OPENSSL_sk_zero(sk: *mut OPENSSL_STACK);
5936}
5937unsafe extern "C" {
5938    pub fn OPENSSL_sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::core::ffi::c_void;
5939}
5940unsafe extern "C" {
5941    pub fn OPENSSL_sk_set(
5942        sk: *mut OPENSSL_STACK,
5943        i: usize,
5944        p: *mut ::core::ffi::c_void,
5945    ) -> *mut ::core::ffi::c_void;
5946}
5947unsafe extern "C" {
5948    pub fn OPENSSL_sk_free(sk: *mut OPENSSL_STACK);
5949}
5950unsafe extern "C" {
5951    pub fn OPENSSL_sk_pop_free_ex(
5952        sk: *mut OPENSSL_STACK,
5953        call_free_func: OPENSSL_sk_call_free_func,
5954        free_func: OPENSSL_sk_free_func,
5955    );
5956}
5957unsafe extern "C" {
5958    pub fn OPENSSL_sk_insert(
5959        sk: *mut OPENSSL_STACK,
5960        p: *mut ::core::ffi::c_void,
5961        where_: usize,
5962    ) -> usize;
5963}
5964unsafe extern "C" {
5965    pub fn OPENSSL_sk_delete(sk: *mut OPENSSL_STACK, where_: usize) -> *mut ::core::ffi::c_void;
5966}
5967unsafe extern "C" {
5968    pub fn OPENSSL_sk_delete_ptr(
5969        sk: *mut OPENSSL_STACK,
5970        p: *const ::core::ffi::c_void,
5971    ) -> *mut ::core::ffi::c_void;
5972}
5973unsafe extern "C" {
5974    pub fn OPENSSL_sk_delete_if(
5975        sk: *mut OPENSSL_STACK,
5976        call_func: OPENSSL_sk_call_delete_if_func,
5977        func: OPENSSL_sk_delete_if_func,
5978        data: *mut ::core::ffi::c_void,
5979    );
5980}
5981unsafe extern "C" {
5982    pub fn OPENSSL_sk_find(
5983        sk: *const OPENSSL_STACK,
5984        out_index: *mut usize,
5985        p: *const ::core::ffi::c_void,
5986        call_cmp_func: OPENSSL_sk_call_cmp_func,
5987    ) -> ::core::ffi::c_int;
5988}
5989unsafe extern "C" {
5990    pub fn OPENSSL_sk_shift(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
5991}
5992unsafe extern "C" {
5993    pub fn OPENSSL_sk_push(sk: *mut OPENSSL_STACK, p: *mut ::core::ffi::c_void) -> usize;
5994}
5995unsafe extern "C" {
5996    pub fn OPENSSL_sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
5997}
5998unsafe extern "C" {
5999    pub fn OPENSSL_sk_dup(sk: *const OPENSSL_STACK) -> *mut OPENSSL_STACK;
6000}
6001unsafe extern "C" {
6002    pub fn OPENSSL_sk_sort(sk: *mut OPENSSL_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func);
6003}
6004unsafe extern "C" {
6005    pub fn OPENSSL_sk_sort_and_dedup(
6006        sk: *mut OPENSSL_STACK,
6007        call_cmp_func: OPENSSL_sk_call_cmp_func,
6008        call_free_func: OPENSSL_sk_call_free_func,
6009        free_func: OPENSSL_sk_free_func,
6010    );
6011}
6012unsafe extern "C" {
6013    pub fn OPENSSL_sk_is_sorted(sk: *const OPENSSL_STACK) -> ::core::ffi::c_int;
6014}
6015unsafe extern "C" {
6016    pub fn OPENSSL_sk_set_cmp_func(
6017        sk: *mut OPENSSL_STACK,
6018        comp: OPENSSL_sk_cmp_func,
6019    ) -> OPENSSL_sk_cmp_func;
6020}
6021unsafe extern "C" {
6022    pub fn OPENSSL_sk_deep_copy(
6023        sk: *const OPENSSL_STACK,
6024        call_copy_func: OPENSSL_sk_call_copy_func,
6025        copy_func: OPENSSL_sk_copy_func,
6026        call_free_func: OPENSSL_sk_call_free_func,
6027        free_func: OPENSSL_sk_free_func,
6028    ) -> *mut OPENSSL_STACK;
6029}
6030pub type _STACK = OPENSSL_STACK;
6031unsafe extern "C" {
6032    pub fn sk_new_null() -> *mut OPENSSL_STACK;
6033}
6034unsafe extern "C" {
6035    pub fn sk_num(sk: *const OPENSSL_STACK) -> usize;
6036}
6037unsafe extern "C" {
6038    pub fn sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::core::ffi::c_void;
6039}
6040unsafe extern "C" {
6041    pub fn sk_free(sk: *mut OPENSSL_STACK);
6042}
6043unsafe extern "C" {
6044    pub fn sk_push(sk: *mut OPENSSL_STACK, p: *mut ::core::ffi::c_void) -> usize;
6045}
6046unsafe extern "C" {
6047    pub fn sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
6048}
6049unsafe extern "C" {
6050    pub fn sk_pop_free_ex(
6051        sk: *mut OPENSSL_STACK,
6052        call_free_func: OPENSSL_sk_call_free_func,
6053        free_func: OPENSSL_sk_free_func,
6054    );
6055}
6056unsafe extern "C" {
6057    pub fn sk_pop_free(sk: *mut OPENSSL_STACK, free_func: OPENSSL_sk_free_func);
6058}
6059pub type OPENSSL_STRING = *mut ::core::ffi::c_char;
6060#[repr(C)]
6061#[derive(Debug)]
6062pub struct stack_st_void {
6063    _unused: [u8; 0],
6064}
6065pub type sk_void_free_func =
6066    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>;
6067pub type sk_void_copy_func = ::core::option::Option<
6068    unsafe extern "C" fn(arg1: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void,
6069>;
6070pub type sk_void_cmp_func = ::core::option::Option<
6071    unsafe extern "C" fn(
6072        arg1: *const *const ::core::ffi::c_void,
6073        arg2: *const *const ::core::ffi::c_void,
6074    ) -> ::core::ffi::c_int,
6075>;
6076pub type sk_void_delete_if_func = ::core::option::Option<
6077    unsafe extern "C" fn(
6078        arg1: *mut ::core::ffi::c_void,
6079        arg2: *mut ::core::ffi::c_void,
6080    ) -> ::core::ffi::c_int,
6081>;
6082unsafe extern "C" {
6083    #[link_name = "sk_void_call_free_func__extern"]
6084    pub fn sk_void_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
6085}
6086unsafe extern "C" {
6087    #[link_name = "sk_void_call_copy_func__extern"]
6088    pub fn sk_void_call_copy_func(
6089        copy_func: OPENSSL_sk_copy_func,
6090        ptr: *const ::core::ffi::c_void,
6091    ) -> *mut ::core::ffi::c_void;
6092}
6093unsafe extern "C" {
6094    #[link_name = "sk_void_call_cmp_func__extern"]
6095    pub fn sk_void_call_cmp_func(
6096        cmp_func: OPENSSL_sk_cmp_func,
6097        a: *const ::core::ffi::c_void,
6098        b: *const ::core::ffi::c_void,
6099    ) -> ::core::ffi::c_int;
6100}
6101unsafe extern "C" {
6102    #[link_name = "sk_void_call_delete_if_func__extern"]
6103    pub fn sk_void_call_delete_if_func(
6104        func: OPENSSL_sk_delete_if_func,
6105        obj: *mut ::core::ffi::c_void,
6106        data: *mut ::core::ffi::c_void,
6107    ) -> ::core::ffi::c_int;
6108}
6109unsafe extern "C" {
6110    #[link_name = "sk_void_new__extern"]
6111    pub fn sk_void_new(comp: sk_void_cmp_func) -> *mut stack_st_void;
6112}
6113unsafe extern "C" {
6114    #[link_name = "sk_void_new_null__extern"]
6115    pub fn sk_void_new_null() -> *mut stack_st_void;
6116}
6117unsafe extern "C" {
6118    #[link_name = "sk_void_num__extern"]
6119    pub fn sk_void_num(sk: *const stack_st_void) -> usize;
6120}
6121unsafe extern "C" {
6122    #[link_name = "sk_void_zero__extern"]
6123    pub fn sk_void_zero(sk: *mut stack_st_void);
6124}
6125unsafe extern "C" {
6126    #[link_name = "sk_void_value__extern"]
6127    pub fn sk_void_value(sk: *const stack_st_void, i: usize) -> *mut ::core::ffi::c_void;
6128}
6129unsafe extern "C" {
6130    #[link_name = "sk_void_set__extern"]
6131    pub fn sk_void_set(
6132        sk: *mut stack_st_void,
6133        i: usize,
6134        p: *mut ::core::ffi::c_void,
6135    ) -> *mut ::core::ffi::c_void;
6136}
6137unsafe extern "C" {
6138    #[link_name = "sk_void_free__extern"]
6139    pub fn sk_void_free(sk: *mut stack_st_void);
6140}
6141unsafe extern "C" {
6142    #[link_name = "sk_void_pop_free__extern"]
6143    pub fn sk_void_pop_free(sk: *mut stack_st_void, free_func: sk_void_free_func);
6144}
6145unsafe extern "C" {
6146    #[link_name = "sk_void_insert__extern"]
6147    pub fn sk_void_insert(
6148        sk: *mut stack_st_void,
6149        p: *mut ::core::ffi::c_void,
6150        where_: usize,
6151    ) -> usize;
6152}
6153unsafe extern "C" {
6154    #[link_name = "sk_void_delete__extern"]
6155    pub fn sk_void_delete(sk: *mut stack_st_void, where_: usize) -> *mut ::core::ffi::c_void;
6156}
6157unsafe extern "C" {
6158    #[link_name = "sk_void_delete_ptr__extern"]
6159    pub fn sk_void_delete_ptr(
6160        sk: *mut stack_st_void,
6161        p: *const ::core::ffi::c_void,
6162    ) -> *mut ::core::ffi::c_void;
6163}
6164unsafe extern "C" {
6165    #[link_name = "sk_void_delete_if__extern"]
6166    pub fn sk_void_delete_if(
6167        sk: *mut stack_st_void,
6168        func: sk_void_delete_if_func,
6169        data: *mut ::core::ffi::c_void,
6170    );
6171}
6172unsafe extern "C" {
6173    #[link_name = "sk_void_find__extern"]
6174    pub fn sk_void_find(
6175        sk: *const stack_st_void,
6176        out_index: *mut usize,
6177        p: *const ::core::ffi::c_void,
6178    ) -> ::core::ffi::c_int;
6179}
6180unsafe extern "C" {
6181    #[link_name = "sk_void_shift__extern"]
6182    pub fn sk_void_shift(sk: *mut stack_st_void) -> *mut ::core::ffi::c_void;
6183}
6184unsafe extern "C" {
6185    #[link_name = "sk_void_push__extern"]
6186    pub fn sk_void_push(sk: *mut stack_st_void, p: *mut ::core::ffi::c_void) -> usize;
6187}
6188unsafe extern "C" {
6189    #[link_name = "sk_void_pop__extern"]
6190    pub fn sk_void_pop(sk: *mut stack_st_void) -> *mut ::core::ffi::c_void;
6191}
6192unsafe extern "C" {
6193    #[link_name = "sk_void_dup__extern"]
6194    pub fn sk_void_dup(sk: *const stack_st_void) -> *mut stack_st_void;
6195}
6196unsafe extern "C" {
6197    #[link_name = "sk_void_sort__extern"]
6198    pub fn sk_void_sort(sk: *mut stack_st_void);
6199}
6200unsafe extern "C" {
6201    #[link_name = "sk_void_sort_and_dedup__extern"]
6202    pub fn sk_void_sort_and_dedup(sk: *mut stack_st_void, free_func: sk_void_free_func);
6203}
6204unsafe extern "C" {
6205    #[link_name = "sk_void_is_sorted__extern"]
6206    pub fn sk_void_is_sorted(sk: *const stack_st_void) -> ::core::ffi::c_int;
6207}
6208unsafe extern "C" {
6209    #[link_name = "sk_void_set_cmp_func__extern"]
6210    pub fn sk_void_set_cmp_func(sk: *mut stack_st_void, comp: sk_void_cmp_func)
6211        -> sk_void_cmp_func;
6212}
6213unsafe extern "C" {
6214    #[link_name = "sk_void_deep_copy__extern"]
6215    pub fn sk_void_deep_copy(
6216        sk: *const stack_st_void,
6217        copy_func: sk_void_copy_func,
6218        free_func: sk_void_free_func,
6219    ) -> *mut stack_st_void;
6220}
6221#[repr(C)]
6222#[derive(Debug)]
6223pub struct stack_st_OPENSSL_STRING {
6224    _unused: [u8; 0],
6225}
6226pub type sk_OPENSSL_STRING_free_func =
6227    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_char)>;
6228pub type sk_OPENSSL_STRING_copy_func = ::core::option::Option<
6229    unsafe extern "C" fn(arg1: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char,
6230>;
6231pub type sk_OPENSSL_STRING_cmp_func = ::core::option::Option<
6232    unsafe extern "C" fn(
6233        arg1: *const *const ::core::ffi::c_char,
6234        arg2: *const *const ::core::ffi::c_char,
6235    ) -> ::core::ffi::c_int,
6236>;
6237pub type sk_OPENSSL_STRING_delete_if_func = ::core::option::Option<
6238    unsafe extern "C" fn(
6239        arg1: *mut ::core::ffi::c_char,
6240        arg2: *mut ::core::ffi::c_void,
6241    ) -> ::core::ffi::c_int,
6242>;
6243unsafe extern "C" {
6244    #[link_name = "sk_OPENSSL_STRING_call_free_func__extern"]
6245    pub fn sk_OPENSSL_STRING_call_free_func(
6246        free_func: OPENSSL_sk_free_func,
6247        ptr: *mut ::core::ffi::c_void,
6248    );
6249}
6250unsafe extern "C" {
6251    #[link_name = "sk_OPENSSL_STRING_call_copy_func__extern"]
6252    pub fn sk_OPENSSL_STRING_call_copy_func(
6253        copy_func: OPENSSL_sk_copy_func,
6254        ptr: *const ::core::ffi::c_void,
6255    ) -> *mut ::core::ffi::c_void;
6256}
6257unsafe extern "C" {
6258    #[link_name = "sk_OPENSSL_STRING_call_cmp_func__extern"]
6259    pub fn sk_OPENSSL_STRING_call_cmp_func(
6260        cmp_func: OPENSSL_sk_cmp_func,
6261        a: *const ::core::ffi::c_void,
6262        b: *const ::core::ffi::c_void,
6263    ) -> ::core::ffi::c_int;
6264}
6265unsafe extern "C" {
6266    #[link_name = "sk_OPENSSL_STRING_call_delete_if_func__extern"]
6267    pub fn sk_OPENSSL_STRING_call_delete_if_func(
6268        func: OPENSSL_sk_delete_if_func,
6269        obj: *mut ::core::ffi::c_void,
6270        data: *mut ::core::ffi::c_void,
6271    ) -> ::core::ffi::c_int;
6272}
6273unsafe extern "C" {
6274    #[link_name = "sk_OPENSSL_STRING_new__extern"]
6275    pub fn sk_OPENSSL_STRING_new(comp: sk_OPENSSL_STRING_cmp_func) -> *mut stack_st_OPENSSL_STRING;
6276}
6277unsafe extern "C" {
6278    #[link_name = "sk_OPENSSL_STRING_new_null__extern"]
6279    pub fn sk_OPENSSL_STRING_new_null() -> *mut stack_st_OPENSSL_STRING;
6280}
6281unsafe extern "C" {
6282    #[link_name = "sk_OPENSSL_STRING_num__extern"]
6283    pub fn sk_OPENSSL_STRING_num(sk: *const stack_st_OPENSSL_STRING) -> usize;
6284}
6285unsafe extern "C" {
6286    #[link_name = "sk_OPENSSL_STRING_zero__extern"]
6287    pub fn sk_OPENSSL_STRING_zero(sk: *mut stack_st_OPENSSL_STRING);
6288}
6289unsafe extern "C" {
6290    #[link_name = "sk_OPENSSL_STRING_value__extern"]
6291    pub fn sk_OPENSSL_STRING_value(
6292        sk: *const stack_st_OPENSSL_STRING,
6293        i: usize,
6294    ) -> *mut ::core::ffi::c_char;
6295}
6296unsafe extern "C" {
6297    #[link_name = "sk_OPENSSL_STRING_set__extern"]
6298    pub fn sk_OPENSSL_STRING_set(
6299        sk: *mut stack_st_OPENSSL_STRING,
6300        i: usize,
6301        p: *mut ::core::ffi::c_char,
6302    ) -> *mut ::core::ffi::c_char;
6303}
6304unsafe extern "C" {
6305    #[link_name = "sk_OPENSSL_STRING_free__extern"]
6306    pub fn sk_OPENSSL_STRING_free(sk: *mut stack_st_OPENSSL_STRING);
6307}
6308unsafe extern "C" {
6309    #[link_name = "sk_OPENSSL_STRING_pop_free__extern"]
6310    pub fn sk_OPENSSL_STRING_pop_free(
6311        sk: *mut stack_st_OPENSSL_STRING,
6312        free_func: sk_OPENSSL_STRING_free_func,
6313    );
6314}
6315unsafe extern "C" {
6316    #[link_name = "sk_OPENSSL_STRING_insert__extern"]
6317    pub fn sk_OPENSSL_STRING_insert(
6318        sk: *mut stack_st_OPENSSL_STRING,
6319        p: *mut ::core::ffi::c_char,
6320        where_: usize,
6321    ) -> usize;
6322}
6323unsafe extern "C" {
6324    #[link_name = "sk_OPENSSL_STRING_delete__extern"]
6325    pub fn sk_OPENSSL_STRING_delete(
6326        sk: *mut stack_st_OPENSSL_STRING,
6327        where_: usize,
6328    ) -> *mut ::core::ffi::c_char;
6329}
6330unsafe extern "C" {
6331    #[link_name = "sk_OPENSSL_STRING_delete_ptr__extern"]
6332    pub fn sk_OPENSSL_STRING_delete_ptr(
6333        sk: *mut stack_st_OPENSSL_STRING,
6334        p: *const ::core::ffi::c_char,
6335    ) -> *mut ::core::ffi::c_char;
6336}
6337unsafe extern "C" {
6338    #[link_name = "sk_OPENSSL_STRING_delete_if__extern"]
6339    pub fn sk_OPENSSL_STRING_delete_if(
6340        sk: *mut stack_st_OPENSSL_STRING,
6341        func: sk_OPENSSL_STRING_delete_if_func,
6342        data: *mut ::core::ffi::c_void,
6343    );
6344}
6345unsafe extern "C" {
6346    #[link_name = "sk_OPENSSL_STRING_find__extern"]
6347    pub fn sk_OPENSSL_STRING_find(
6348        sk: *const stack_st_OPENSSL_STRING,
6349        out_index: *mut usize,
6350        p: *const ::core::ffi::c_char,
6351    ) -> ::core::ffi::c_int;
6352}
6353unsafe extern "C" {
6354    #[link_name = "sk_OPENSSL_STRING_shift__extern"]
6355    pub fn sk_OPENSSL_STRING_shift(sk: *mut stack_st_OPENSSL_STRING) -> *mut ::core::ffi::c_char;
6356}
6357unsafe extern "C" {
6358    #[link_name = "sk_OPENSSL_STRING_push__extern"]
6359    pub fn sk_OPENSSL_STRING_push(
6360        sk: *mut stack_st_OPENSSL_STRING,
6361        p: *mut ::core::ffi::c_char,
6362    ) -> usize;
6363}
6364unsafe extern "C" {
6365    #[link_name = "sk_OPENSSL_STRING_pop__extern"]
6366    pub fn sk_OPENSSL_STRING_pop(sk: *mut stack_st_OPENSSL_STRING) -> *mut ::core::ffi::c_char;
6367}
6368unsafe extern "C" {
6369    #[link_name = "sk_OPENSSL_STRING_dup__extern"]
6370    pub fn sk_OPENSSL_STRING_dup(
6371        sk: *const stack_st_OPENSSL_STRING,
6372    ) -> *mut stack_st_OPENSSL_STRING;
6373}
6374unsafe extern "C" {
6375    #[link_name = "sk_OPENSSL_STRING_sort__extern"]
6376    pub fn sk_OPENSSL_STRING_sort(sk: *mut stack_st_OPENSSL_STRING);
6377}
6378unsafe extern "C" {
6379    #[link_name = "sk_OPENSSL_STRING_sort_and_dedup__extern"]
6380    pub fn sk_OPENSSL_STRING_sort_and_dedup(
6381        sk: *mut stack_st_OPENSSL_STRING,
6382        free_func: sk_OPENSSL_STRING_free_func,
6383    );
6384}
6385unsafe extern "C" {
6386    #[link_name = "sk_OPENSSL_STRING_is_sorted__extern"]
6387    pub fn sk_OPENSSL_STRING_is_sorted(sk: *const stack_st_OPENSSL_STRING) -> ::core::ffi::c_int;
6388}
6389unsafe extern "C" {
6390    #[link_name = "sk_OPENSSL_STRING_set_cmp_func__extern"]
6391    pub fn sk_OPENSSL_STRING_set_cmp_func(
6392        sk: *mut stack_st_OPENSSL_STRING,
6393        comp: sk_OPENSSL_STRING_cmp_func,
6394    ) -> sk_OPENSSL_STRING_cmp_func;
6395}
6396unsafe extern "C" {
6397    #[link_name = "sk_OPENSSL_STRING_deep_copy__extern"]
6398    pub fn sk_OPENSSL_STRING_deep_copy(
6399        sk: *const stack_st_OPENSSL_STRING,
6400        copy_func: sk_OPENSSL_STRING_copy_func,
6401        free_func: sk_OPENSSL_STRING_free_func,
6402    ) -> *mut stack_st_OPENSSL_STRING;
6403}
6404#[repr(C)]
6405#[derive(Debug)]
6406pub struct stack_st_BIO {
6407    _unused: [u8; 0],
6408}
6409pub type sk_BIO_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut BIO)>;
6410pub type sk_BIO_copy_func =
6411    ::core::option::Option<unsafe extern "C" fn(arg1: *const BIO) -> *mut BIO>;
6412pub type sk_BIO_cmp_func = ::core::option::Option<
6413    unsafe extern "C" fn(arg1: *const *const BIO, arg2: *const *const BIO) -> ::core::ffi::c_int,
6414>;
6415pub type sk_BIO_delete_if_func = ::core::option::Option<
6416    unsafe extern "C" fn(arg1: *mut BIO, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
6417>;
6418unsafe extern "C" {
6419    #[link_name = "sk_BIO_call_free_func__extern"]
6420    pub fn sk_BIO_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
6421}
6422unsafe extern "C" {
6423    #[link_name = "sk_BIO_call_copy_func__extern"]
6424    pub fn sk_BIO_call_copy_func(
6425        copy_func: OPENSSL_sk_copy_func,
6426        ptr: *const ::core::ffi::c_void,
6427    ) -> *mut ::core::ffi::c_void;
6428}
6429unsafe extern "C" {
6430    #[link_name = "sk_BIO_call_cmp_func__extern"]
6431    pub fn sk_BIO_call_cmp_func(
6432        cmp_func: OPENSSL_sk_cmp_func,
6433        a: *const ::core::ffi::c_void,
6434        b: *const ::core::ffi::c_void,
6435    ) -> ::core::ffi::c_int;
6436}
6437unsafe extern "C" {
6438    #[link_name = "sk_BIO_call_delete_if_func__extern"]
6439    pub fn sk_BIO_call_delete_if_func(
6440        func: OPENSSL_sk_delete_if_func,
6441        obj: *mut ::core::ffi::c_void,
6442        data: *mut ::core::ffi::c_void,
6443    ) -> ::core::ffi::c_int;
6444}
6445unsafe extern "C" {
6446    #[link_name = "sk_BIO_new__extern"]
6447    pub fn sk_BIO_new(comp: sk_BIO_cmp_func) -> *mut stack_st_BIO;
6448}
6449unsafe extern "C" {
6450    #[link_name = "sk_BIO_new_null__extern"]
6451    pub fn sk_BIO_new_null() -> *mut stack_st_BIO;
6452}
6453unsafe extern "C" {
6454    #[link_name = "sk_BIO_num__extern"]
6455    pub fn sk_BIO_num(sk: *const stack_st_BIO) -> usize;
6456}
6457unsafe extern "C" {
6458    #[link_name = "sk_BIO_zero__extern"]
6459    pub fn sk_BIO_zero(sk: *mut stack_st_BIO);
6460}
6461unsafe extern "C" {
6462    #[link_name = "sk_BIO_value__extern"]
6463    pub fn sk_BIO_value(sk: *const stack_st_BIO, i: usize) -> *mut BIO;
6464}
6465unsafe extern "C" {
6466    #[link_name = "sk_BIO_set__extern"]
6467    pub fn sk_BIO_set(sk: *mut stack_st_BIO, i: usize, p: *mut BIO) -> *mut BIO;
6468}
6469unsafe extern "C" {
6470    #[link_name = "sk_BIO_free__extern"]
6471    pub fn sk_BIO_free(sk: *mut stack_st_BIO);
6472}
6473unsafe extern "C" {
6474    #[link_name = "sk_BIO_pop_free__extern"]
6475    pub fn sk_BIO_pop_free(sk: *mut stack_st_BIO, free_func: sk_BIO_free_func);
6476}
6477unsafe extern "C" {
6478    #[link_name = "sk_BIO_insert__extern"]
6479    pub fn sk_BIO_insert(sk: *mut stack_st_BIO, p: *mut BIO, where_: usize) -> usize;
6480}
6481unsafe extern "C" {
6482    #[link_name = "sk_BIO_delete__extern"]
6483    pub fn sk_BIO_delete(sk: *mut stack_st_BIO, where_: usize) -> *mut BIO;
6484}
6485unsafe extern "C" {
6486    #[link_name = "sk_BIO_delete_ptr__extern"]
6487    pub fn sk_BIO_delete_ptr(sk: *mut stack_st_BIO, p: *const BIO) -> *mut BIO;
6488}
6489unsafe extern "C" {
6490    #[link_name = "sk_BIO_delete_if__extern"]
6491    pub fn sk_BIO_delete_if(
6492        sk: *mut stack_st_BIO,
6493        func: sk_BIO_delete_if_func,
6494        data: *mut ::core::ffi::c_void,
6495    );
6496}
6497unsafe extern "C" {
6498    #[link_name = "sk_BIO_find__extern"]
6499    pub fn sk_BIO_find(
6500        sk: *const stack_st_BIO,
6501        out_index: *mut usize,
6502        p: *const BIO,
6503    ) -> ::core::ffi::c_int;
6504}
6505unsafe extern "C" {
6506    #[link_name = "sk_BIO_shift__extern"]
6507    pub fn sk_BIO_shift(sk: *mut stack_st_BIO) -> *mut BIO;
6508}
6509unsafe extern "C" {
6510    #[link_name = "sk_BIO_push__extern"]
6511    pub fn sk_BIO_push(sk: *mut stack_st_BIO, p: *mut BIO) -> usize;
6512}
6513unsafe extern "C" {
6514    #[link_name = "sk_BIO_pop__extern"]
6515    pub fn sk_BIO_pop(sk: *mut stack_st_BIO) -> *mut BIO;
6516}
6517unsafe extern "C" {
6518    #[link_name = "sk_BIO_dup__extern"]
6519    pub fn sk_BIO_dup(sk: *const stack_st_BIO) -> *mut stack_st_BIO;
6520}
6521unsafe extern "C" {
6522    #[link_name = "sk_BIO_sort__extern"]
6523    pub fn sk_BIO_sort(sk: *mut stack_st_BIO);
6524}
6525unsafe extern "C" {
6526    #[link_name = "sk_BIO_sort_and_dedup__extern"]
6527    pub fn sk_BIO_sort_and_dedup(sk: *mut stack_st_BIO, free_func: sk_BIO_free_func);
6528}
6529unsafe extern "C" {
6530    #[link_name = "sk_BIO_is_sorted__extern"]
6531    pub fn sk_BIO_is_sorted(sk: *const stack_st_BIO) -> ::core::ffi::c_int;
6532}
6533unsafe extern "C" {
6534    #[link_name = "sk_BIO_set_cmp_func__extern"]
6535    pub fn sk_BIO_set_cmp_func(sk: *mut stack_st_BIO, comp: sk_BIO_cmp_func) -> sk_BIO_cmp_func;
6536}
6537unsafe extern "C" {
6538    #[link_name = "sk_BIO_deep_copy__extern"]
6539    pub fn sk_BIO_deep_copy(
6540        sk: *const stack_st_BIO,
6541        copy_func: sk_BIO_copy_func,
6542        free_func: sk_BIO_free_func,
6543    ) -> *mut stack_st_BIO;
6544}
6545unsafe extern "C" {
6546    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
6547}
6548unsafe extern "C" {
6549    pub fn BIO_free(bio: *mut BIO) -> ::core::ffi::c_int;
6550}
6551unsafe extern "C" {
6552    pub fn BIO_vfree(bio: *mut BIO);
6553}
6554unsafe extern "C" {
6555    pub fn BIO_up_ref(bio: *mut BIO) -> ::core::ffi::c_int;
6556}
6557unsafe extern "C" {
6558    pub fn BIO_read(
6559        bio: *mut BIO,
6560        data: *mut ::core::ffi::c_void,
6561        len: ::core::ffi::c_int,
6562    ) -> ::core::ffi::c_int;
6563}
6564unsafe extern "C" {
6565    pub fn BIO_gets(
6566        bio: *mut BIO,
6567        buf: *mut ::core::ffi::c_char,
6568        size: ::core::ffi::c_int,
6569    ) -> ::core::ffi::c_int;
6570}
6571unsafe extern "C" {
6572    pub fn BIO_write_ex(
6573        bio: *mut BIO,
6574        data: *const ::core::ffi::c_void,
6575        len: usize,
6576        out_written: *mut usize,
6577    ) -> ::core::ffi::c_int;
6578}
6579unsafe extern "C" {
6580    pub fn BIO_write(
6581        bio: *mut BIO,
6582        data: *const ::core::ffi::c_void,
6583        len: ::core::ffi::c_int,
6584    ) -> ::core::ffi::c_int;
6585}
6586unsafe extern "C" {
6587    pub fn BIO_write_all(
6588        bio: *mut BIO,
6589        data: *const ::core::ffi::c_void,
6590        len: usize,
6591    ) -> ::core::ffi::c_int;
6592}
6593unsafe extern "C" {
6594    pub fn BIO_puts(bio: *mut BIO, buf: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
6595}
6596unsafe extern "C" {
6597    pub fn BIO_flush(bio: *mut BIO) -> ::core::ffi::c_int;
6598}
6599unsafe extern "C" {
6600    pub fn BIO_ctrl(
6601        bio: *mut BIO,
6602        cmd: ::core::ffi::c_int,
6603        larg: ::core::ffi::c_long,
6604        parg: *mut ::core::ffi::c_void,
6605    ) -> ::core::ffi::c_long;
6606}
6607unsafe extern "C" {
6608    pub fn BIO_ptr_ctrl(
6609        bp: *mut BIO,
6610        cmd: ::core::ffi::c_int,
6611        larg: ::core::ffi::c_long,
6612    ) -> *mut ::core::ffi::c_char;
6613}
6614unsafe extern "C" {
6615    pub fn BIO_int_ctrl(
6616        bp: *mut BIO,
6617        cmd: ::core::ffi::c_int,
6618        larg: ::core::ffi::c_long,
6619        iarg: ::core::ffi::c_int,
6620    ) -> ::core::ffi::c_long;
6621}
6622unsafe extern "C" {
6623    pub fn BIO_reset(bio: *mut BIO) -> ::core::ffi::c_int;
6624}
6625unsafe extern "C" {
6626    pub fn BIO_eof(bio: *mut BIO) -> ::core::ffi::c_int;
6627}
6628unsafe extern "C" {
6629    pub fn BIO_set_flags(bio: *mut BIO, flags: ::core::ffi::c_int);
6630}
6631unsafe extern "C" {
6632    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::core::ffi::c_int);
6633}
6634unsafe extern "C" {
6635    pub fn BIO_test_flags(bio: *const BIO, flags: ::core::ffi::c_int) -> ::core::ffi::c_int;
6636}
6637unsafe extern "C" {
6638    pub fn BIO_should_read(bio: *const BIO) -> ::core::ffi::c_int;
6639}
6640unsafe extern "C" {
6641    pub fn BIO_should_write(bio: *const BIO) -> ::core::ffi::c_int;
6642}
6643unsafe extern "C" {
6644    pub fn BIO_should_retry(bio: *const BIO) -> ::core::ffi::c_int;
6645}
6646unsafe extern "C" {
6647    pub fn BIO_should_io_special(bio: *const BIO) -> ::core::ffi::c_int;
6648}
6649unsafe extern "C" {
6650    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::core::ffi::c_int;
6651}
6652unsafe extern "C" {
6653    pub fn BIO_set_retry_reason(bio: *mut BIO, reason: ::core::ffi::c_int);
6654}
6655unsafe extern "C" {
6656    pub fn BIO_set_retry_read(bio: *mut BIO);
6657}
6658unsafe extern "C" {
6659    pub fn BIO_set_retry_write(bio: *mut BIO);
6660}
6661unsafe extern "C" {
6662    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::core::ffi::c_int;
6663}
6664unsafe extern "C" {
6665    pub fn BIO_clear_retry_flags(bio: *mut BIO);
6666}
6667unsafe extern "C" {
6668    pub fn BIO_method_type(bio: *const BIO) -> ::core::ffi::c_int;
6669}
6670pub type BIO_info_cb = ::core::option::Option<
6671    unsafe extern "C" fn(
6672        arg1: *mut BIO,
6673        arg2: ::core::ffi::c_int,
6674        arg3: ::core::ffi::c_int,
6675    ) -> ::core::ffi::c_int,
6676>;
6677unsafe extern "C" {
6678    pub fn BIO_callback_ctrl(
6679        bio: *mut BIO,
6680        cmd: ::core::ffi::c_int,
6681        fp: BIO_info_cb,
6682    ) -> ::core::ffi::c_long;
6683}
6684unsafe extern "C" {
6685    pub fn BIO_pending(bio: *const BIO) -> usize;
6686}
6687unsafe extern "C" {
6688    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
6689}
6690unsafe extern "C" {
6691    pub fn BIO_wpending(bio: *const BIO) -> usize;
6692}
6693unsafe extern "C" {
6694    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::core::ffi::c_int) -> ::core::ffi::c_int;
6695}
6696unsafe extern "C" {
6697    pub fn BIO_number_read(bio: *const BIO) -> u64;
6698}
6699unsafe extern "C" {
6700    pub fn BIO_number_written(bio: *const BIO) -> u64;
6701}
6702unsafe extern "C" {
6703    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
6704}
6705unsafe extern "C" {
6706    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
6707}
6708unsafe extern "C" {
6709    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
6710}
6711unsafe extern "C" {
6712    pub fn BIO_find_type(bio: *mut BIO, type_: ::core::ffi::c_int) -> *mut BIO;
6713}
6714unsafe extern "C" {
6715    pub fn BIO_copy_next_retry(bio: *mut BIO);
6716}
6717unsafe extern "C" {
6718    pub fn BIO_printf(bio: *mut BIO, format: *const ::core::ffi::c_char, ...)
6719        -> ::core::ffi::c_int;
6720}
6721unsafe extern "C" {
6722    pub fn BIO_indent(
6723        bio: *mut BIO,
6724        indent: ::core::ffi::c_uint,
6725        max_indent: ::core::ffi::c_uint,
6726    ) -> ::core::ffi::c_int;
6727}
6728unsafe extern "C" {
6729    pub fn BIO_hexdump(
6730        bio: *mut BIO,
6731        data: *const u8,
6732        len: usize,
6733        indent: ::core::ffi::c_uint,
6734    ) -> ::core::ffi::c_int;
6735}
6736unsafe extern "C" {
6737    pub fn ERR_print_errors(bio: *mut BIO);
6738}
6739unsafe extern "C" {
6740    pub fn BIO_read_asn1(
6741        bio: *mut BIO,
6742        out: *mut *mut u8,
6743        out_len: *mut usize,
6744        max_len: usize,
6745    ) -> ::core::ffi::c_int;
6746}
6747unsafe extern "C" {
6748    pub fn BIO_s_mem() -> *const BIO_METHOD;
6749}
6750unsafe extern "C" {
6751    pub fn BIO_new_mem_buf(buf: *const ::core::ffi::c_void, len: ossl_ssize_t) -> *mut BIO;
6752}
6753unsafe extern "C" {
6754    pub fn BIO_mem_contents(
6755        bio: *const BIO,
6756        out_contents: *mut *const u8,
6757        out_len: *mut usize,
6758    ) -> ::core::ffi::c_int;
6759}
6760unsafe extern "C" {
6761    pub fn BIO_get_mem_data(
6762        bio: *mut BIO,
6763        contents: *mut *mut ::core::ffi::c_char,
6764    ) -> ::core::ffi::c_long;
6765}
6766unsafe extern "C" {
6767    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::core::ffi::c_int;
6768}
6769unsafe extern "C" {
6770    pub fn BIO_set_mem_buf(
6771        bio: *mut BIO,
6772        b: *mut BUF_MEM,
6773        take_ownership: ::core::ffi::c_int,
6774    ) -> ::core::ffi::c_int;
6775}
6776unsafe extern "C" {
6777    pub fn BIO_set_mem_eof_return(
6778        bio: *mut BIO,
6779        eof_value: ::core::ffi::c_int,
6780    ) -> ::core::ffi::c_int;
6781}
6782unsafe extern "C" {
6783    pub fn BIO_s_fd() -> *const BIO_METHOD;
6784}
6785unsafe extern "C" {
6786    pub fn BIO_new_fd(fd: ::core::ffi::c_int, close_flag: ::core::ffi::c_int) -> *mut BIO;
6787}
6788unsafe extern "C" {
6789    pub fn BIO_set_fd(
6790        bio: *mut BIO,
6791        fd: ::core::ffi::c_int,
6792        close_flag: ::core::ffi::c_int,
6793    ) -> ::core::ffi::c_int;
6794}
6795unsafe extern "C" {
6796    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
6797}
6798unsafe extern "C" {
6799    pub fn BIO_s_file() -> *const BIO_METHOD;
6800}
6801unsafe extern "C" {
6802    pub fn BIO_new_file(
6803        filename: *const ::core::ffi::c_char,
6804        mode: *const ::core::ffi::c_char,
6805    ) -> *mut BIO;
6806}
6807unsafe extern "C" {
6808    pub fn BIO_new_fp(file: *mut FILE, flags: ::core::ffi::c_int) -> *mut BIO;
6809}
6810unsafe extern "C" {
6811    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::core::ffi::c_int;
6812}
6813unsafe extern "C" {
6814    pub fn BIO_set_fp(
6815        bio: *mut BIO,
6816        file: *mut FILE,
6817        flags: ::core::ffi::c_int,
6818    ) -> ::core::ffi::c_int;
6819}
6820unsafe extern "C" {
6821    pub fn BIO_read_filename(
6822        bio: *mut BIO,
6823        filename: *const ::core::ffi::c_char,
6824    ) -> ::core::ffi::c_int;
6825}
6826unsafe extern "C" {
6827    pub fn BIO_write_filename(
6828        bio: *mut BIO,
6829        filename: *const ::core::ffi::c_char,
6830    ) -> ::core::ffi::c_int;
6831}
6832unsafe extern "C" {
6833    pub fn BIO_append_filename(
6834        bio: *mut BIO,
6835        filename: *const ::core::ffi::c_char,
6836    ) -> ::core::ffi::c_int;
6837}
6838unsafe extern "C" {
6839    pub fn BIO_rw_filename(
6840        bio: *mut BIO,
6841        filename: *const ::core::ffi::c_char,
6842    ) -> ::core::ffi::c_int;
6843}
6844unsafe extern "C" {
6845    pub fn BIO_tell(bio: *mut BIO) -> ::core::ffi::c_long;
6846}
6847unsafe extern "C" {
6848    pub fn BIO_seek(bio: *mut BIO, offset: ::core::ffi::c_long) -> ::core::ffi::c_long;
6849}
6850unsafe extern "C" {
6851    pub fn BIO_s_socket() -> *const BIO_METHOD;
6852}
6853unsafe extern "C" {
6854    pub fn BIO_new_socket(fd: ::core::ffi::c_int, close_flag: ::core::ffi::c_int) -> *mut BIO;
6855}
6856unsafe extern "C" {
6857    pub fn BIO_s_connect() -> *const BIO_METHOD;
6858}
6859unsafe extern "C" {
6860    pub fn BIO_new_connect(host_and_optional_port: *const ::core::ffi::c_char) -> *mut BIO;
6861}
6862unsafe extern "C" {
6863    pub fn BIO_set_conn_hostname(
6864        bio: *mut BIO,
6865        host_and_optional_port: *const ::core::ffi::c_char,
6866    ) -> ::core::ffi::c_int;
6867}
6868unsafe extern "C" {
6869    pub fn BIO_set_conn_port(
6870        bio: *mut BIO,
6871        port_str: *const ::core::ffi::c_char,
6872    ) -> ::core::ffi::c_int;
6873}
6874unsafe extern "C" {
6875    pub fn BIO_set_conn_int_port(
6876        bio: *mut BIO,
6877        port: *const ::core::ffi::c_int,
6878    ) -> ::core::ffi::c_int;
6879}
6880unsafe extern "C" {
6881    pub fn BIO_set_nbio(bio: *mut BIO, on: ::core::ffi::c_int) -> ::core::ffi::c_int;
6882}
6883unsafe extern "C" {
6884    pub fn BIO_do_connect(bio: *mut BIO) -> ::core::ffi::c_int;
6885}
6886unsafe extern "C" {
6887    pub fn BIO_new_bio_pair(
6888        out1: *mut *mut BIO,
6889        writebuf1: usize,
6890        out2: *mut *mut BIO,
6891        writebuf2: usize,
6892    ) -> ::core::ffi::c_int;
6893}
6894unsafe extern "C" {
6895    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
6896}
6897unsafe extern "C" {
6898    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
6899}
6900unsafe extern "C" {
6901    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::core::ffi::c_int;
6902}
6903unsafe extern "C" {
6904    pub fn BIO_get_new_index() -> ::core::ffi::c_int;
6905}
6906unsafe extern "C" {
6907    pub fn BIO_meth_new(
6908        type_: ::core::ffi::c_int,
6909        name: *const ::core::ffi::c_char,
6910    ) -> *mut BIO_METHOD;
6911}
6912unsafe extern "C" {
6913    pub fn BIO_meth_free(method: *mut BIO_METHOD);
6914}
6915unsafe extern "C" {
6916    pub fn BIO_meth_set_create(
6917        method: *mut BIO_METHOD,
6918        create_func: ::core::option::Option<
6919            unsafe extern "C" fn(arg1: *mut BIO) -> ::core::ffi::c_int,
6920        >,
6921    ) -> ::core::ffi::c_int;
6922}
6923unsafe extern "C" {
6924    pub fn BIO_meth_set_destroy(
6925        method: *mut BIO_METHOD,
6926        destroy_func: ::core::option::Option<
6927            unsafe extern "C" fn(arg1: *mut BIO) -> ::core::ffi::c_int,
6928        >,
6929    ) -> ::core::ffi::c_int;
6930}
6931unsafe extern "C" {
6932    pub fn BIO_meth_set_write_ex(
6933        method: *mut BIO_METHOD,
6934        write_ex_func: ::core::option::Option<
6935            unsafe extern "C" fn(
6936                arg1: *mut BIO,
6937                arg2: *const ::core::ffi::c_char,
6938                arg3: usize,
6939                arg4: *mut usize,
6940            ) -> ::core::ffi::c_int,
6941        >,
6942    ) -> ::core::ffi::c_int;
6943}
6944unsafe extern "C" {
6945    pub fn BIO_meth_set_write(
6946        method: *mut BIO_METHOD,
6947        write_func: ::core::option::Option<
6948            unsafe extern "C" fn(
6949                arg1: *mut BIO,
6950                arg2: *const ::core::ffi::c_char,
6951                arg3: ::core::ffi::c_int,
6952            ) -> ::core::ffi::c_int,
6953        >,
6954    ) -> ::core::ffi::c_int;
6955}
6956unsafe extern "C" {
6957    pub fn BIO_meth_set_read(
6958        method: *mut BIO_METHOD,
6959        read_func: ::core::option::Option<
6960            unsafe extern "C" fn(
6961                arg1: *mut BIO,
6962                arg2: *mut ::core::ffi::c_char,
6963                arg3: ::core::ffi::c_int,
6964            ) -> ::core::ffi::c_int,
6965        >,
6966    ) -> ::core::ffi::c_int;
6967}
6968unsafe extern "C" {
6969    pub fn BIO_meth_set_gets(
6970        method: *mut BIO_METHOD,
6971        gets_func: ::core::option::Option<
6972            unsafe extern "C" fn(
6973                arg1: *mut BIO,
6974                arg2: *mut ::core::ffi::c_char,
6975                arg3: ::core::ffi::c_int,
6976            ) -> ::core::ffi::c_int,
6977        >,
6978    ) -> ::core::ffi::c_int;
6979}
6980unsafe extern "C" {
6981    pub fn BIO_meth_set_ctrl(
6982        method: *mut BIO_METHOD,
6983        ctrl_func: ::core::option::Option<
6984            unsafe extern "C" fn(
6985                arg1: *mut BIO,
6986                arg2: ::core::ffi::c_int,
6987                arg3: ::core::ffi::c_long,
6988                arg4: *mut ::core::ffi::c_void,
6989            ) -> ::core::ffi::c_long,
6990        >,
6991    ) -> ::core::ffi::c_int;
6992}
6993unsafe extern "C" {
6994    pub fn BIO_meth_set_callback_ctrl(
6995        method: *mut BIO_METHOD,
6996        callback_ctrl_func: ::core::option::Option<
6997            unsafe extern "C" fn(
6998                arg1: *mut BIO,
6999                arg2: ::core::ffi::c_int,
7000                arg3: BIO_info_cb,
7001            ) -> ::core::ffi::c_long,
7002        >,
7003    ) -> ::core::ffi::c_int;
7004}
7005unsafe extern "C" {
7006    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::core::ffi::c_void);
7007}
7008unsafe extern "C" {
7009    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::core::ffi::c_void;
7010}
7011unsafe extern "C" {
7012    pub fn BIO_set_init(bio: *mut BIO, init: ::core::ffi::c_int);
7013}
7014unsafe extern "C" {
7015    pub fn BIO_get_init(bio: *mut BIO) -> ::core::ffi::c_int;
7016}
7017unsafe extern "C" {
7018    pub fn BIO_get_ex_new_index(
7019        argl: ::core::ffi::c_long,
7020        argp: *mut ::core::ffi::c_void,
7021        unused: *mut CRYPTO_EX_unused,
7022        dup_unused: CRYPTO_EX_dup,
7023        free_func: CRYPTO_EX_free,
7024    ) -> ::core::ffi::c_int;
7025}
7026unsafe extern "C" {
7027    pub fn BIO_set_ex_data(
7028        bio: *mut BIO,
7029        idx: ::core::ffi::c_int,
7030        arg: *mut ::core::ffi::c_void,
7031    ) -> ::core::ffi::c_int;
7032}
7033unsafe extern "C" {
7034    pub fn BIO_get_ex_data(bio: *const BIO, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
7035}
7036unsafe extern "C" {
7037    pub fn BIO_free_all(bio: *mut BIO);
7038}
7039pub type bio_info_cb = BIO_info_cb;
7040unsafe extern "C" {
7041    pub fn BIO_f_base64() -> *const BIO_METHOD;
7042}
7043unsafe extern "C" {
7044    pub fn BIO_set_retry_special(bio: *mut BIO);
7045}
7046unsafe extern "C" {
7047    pub fn BIO_set_write_buffer_size(
7048        bio: *mut BIO,
7049        buffer_size: ::core::ffi::c_int,
7050    ) -> ::core::ffi::c_int;
7051}
7052unsafe extern "C" {
7053    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::core::ffi::c_int);
7054}
7055unsafe extern "C" {
7056    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::core::ffi::c_int;
7057}
7058unsafe extern "C" {
7059    pub fn BIO_meth_set_puts(
7060        method: *mut BIO_METHOD,
7061        puts: ::core::option::Option<
7062            unsafe extern "C" fn(
7063                arg1: *mut BIO,
7064                arg2: *const ::core::ffi::c_char,
7065            ) -> ::core::ffi::c_int,
7066        >,
7067    ) -> ::core::ffi::c_int;
7068}
7069unsafe extern "C" {
7070    pub fn BIO_meth_get_write(
7071        method: *const BIO_METHOD,
7072    ) -> ::core::option::Option<
7073        unsafe extern "C" fn(
7074            method: *mut BIO,
7075            arg1: *const ::core::ffi::c_char,
7076            arg2: ::core::ffi::c_int,
7077        ) -> ::core::ffi::c_int,
7078    >;
7079}
7080unsafe extern "C" {
7081    pub fn BIO_meth_get_read(
7082        method: *const BIO_METHOD,
7083    ) -> ::core::option::Option<
7084        unsafe extern "C" fn(
7085            method: *mut BIO,
7086            arg1: *mut ::core::ffi::c_char,
7087            arg2: ::core::ffi::c_int,
7088        ) -> ::core::ffi::c_int,
7089    >;
7090}
7091unsafe extern "C" {
7092    pub fn BIO_meth_get_gets(
7093        method: *const BIO_METHOD,
7094    ) -> ::core::option::Option<
7095        unsafe extern "C" fn(
7096            method: *mut BIO,
7097            arg1: *mut ::core::ffi::c_char,
7098            arg2: ::core::ffi::c_int,
7099        ) -> ::core::ffi::c_int,
7100    >;
7101}
7102unsafe extern "C" {
7103    pub fn BIO_meth_get_puts(
7104        method: *const BIO_METHOD,
7105    ) -> ::core::option::Option<
7106        unsafe extern "C" fn(
7107            method: *mut BIO,
7108            arg1: *const ::core::ffi::c_char,
7109        ) -> ::core::ffi::c_int,
7110    >;
7111}
7112unsafe extern "C" {
7113    pub fn BIO_meth_get_ctrl(
7114        method: *const BIO_METHOD,
7115    ) -> ::core::option::Option<
7116        unsafe extern "C" fn(
7117            method: *mut BIO,
7118            arg1: ::core::ffi::c_int,
7119            arg2: ::core::ffi::c_long,
7120            arg3: *mut ::core::ffi::c_void,
7121        ) -> ::core::ffi::c_long,
7122    >;
7123}
7124unsafe extern "C" {
7125    pub fn BIO_meth_get_create(
7126        method: *const BIO_METHOD,
7127    ) -> ::core::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::core::ffi::c_int>;
7128}
7129unsafe extern "C" {
7130    pub fn BIO_meth_get_destroy(
7131        method: *const BIO_METHOD,
7132    ) -> ::core::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::core::ffi::c_int>;
7133}
7134unsafe extern "C" {
7135    pub fn BIO_meth_get_callback_ctrl(
7136        method: *const BIO_METHOD,
7137    ) -> ::core::option::Option<
7138        unsafe extern "C" fn(
7139            method: *mut BIO,
7140            arg1: ::core::ffi::c_int,
7141            arg2: BIO_info_cb,
7142        ) -> ::core::ffi::c_long,
7143    >;
7144}
7145pub type BN_ULONG = u64;
7146unsafe extern "C" {
7147    pub fn BN_new() -> *mut BIGNUM;
7148}
7149unsafe extern "C" {
7150    pub fn BN_init(bn: *mut BIGNUM);
7151}
7152unsafe extern "C" {
7153    pub fn BN_free(bn: *mut BIGNUM);
7154}
7155unsafe extern "C" {
7156    pub fn BN_clear_free(bn: *mut BIGNUM);
7157}
7158unsafe extern "C" {
7159    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
7160}
7161unsafe extern "C" {
7162    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
7163}
7164unsafe extern "C" {
7165    pub fn BN_clear(bn: *mut BIGNUM);
7166}
7167unsafe extern "C" {
7168    pub fn BN_value_one() -> *const BIGNUM;
7169}
7170unsafe extern "C" {
7171    pub fn BN_num_bits(bn: *const BIGNUM) -> ::core::ffi::c_uint;
7172}
7173unsafe extern "C" {
7174    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::core::ffi::c_uint;
7175}
7176unsafe extern "C" {
7177    pub fn BN_zero(bn: *mut BIGNUM);
7178}
7179unsafe extern "C" {
7180    pub fn BN_one(bn: *mut BIGNUM) -> ::core::ffi::c_int;
7181}
7182unsafe extern "C" {
7183    pub fn BN_set_word(bn: *mut BIGNUM, value: BN_ULONG) -> ::core::ffi::c_int;
7184}
7185unsafe extern "C" {
7186    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::core::ffi::c_int;
7187}
7188unsafe extern "C" {
7189    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::core::ffi::c_int);
7190}
7191unsafe extern "C" {
7192    pub fn BN_is_negative(bn: *const BIGNUM) -> ::core::ffi::c_int;
7193}
7194unsafe extern "C" {
7195    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7196}
7197unsafe extern "C" {
7198    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
7199}
7200unsafe extern "C" {
7201    pub fn BN_lebin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7202}
7203unsafe extern "C" {
7204    pub fn BN_bn2le_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7205}
7206unsafe extern "C" {
7207    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7208}
7209unsafe extern "C" {
7210    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7211}
7212unsafe extern "C" {
7213    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::core::ffi::c_char;
7214}
7215unsafe extern "C" {
7216    pub fn BN_hex2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7217        -> ::core::ffi::c_int;
7218}
7219unsafe extern "C" {
7220    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::core::ffi::c_char;
7221}
7222unsafe extern "C" {
7223    pub fn BN_dec2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7224        -> ::core::ffi::c_int;
7225}
7226unsafe extern "C" {
7227    pub fn BN_asc2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7228        -> ::core::ffi::c_int;
7229}
7230unsafe extern "C" {
7231    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::core::ffi::c_int;
7232}
7233unsafe extern "C" {
7234    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::core::ffi::c_int;
7235}
7236unsafe extern "C" {
7237    pub fn BN_get_word(bn: *const BIGNUM) -> BN_ULONG;
7238}
7239unsafe extern "C" {
7240    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::core::ffi::c_int;
7241}
7242unsafe extern "C" {
7243    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::core::ffi::c_int;
7244}
7245unsafe extern "C" {
7246    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::core::ffi::c_int;
7247}
7248unsafe extern "C" {
7249    pub fn BN_CTX_new() -> *mut BN_CTX;
7250}
7251unsafe extern "C" {
7252    pub fn BN_CTX_free(ctx: *mut BN_CTX);
7253}
7254unsafe extern "C" {
7255    pub fn BN_CTX_start(ctx: *mut BN_CTX);
7256}
7257unsafe extern "C" {
7258    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
7259}
7260unsafe extern "C" {
7261    pub fn BN_CTX_end(ctx: *mut BN_CTX);
7262}
7263unsafe extern "C" {
7264    pub fn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7265}
7266unsafe extern "C" {
7267    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7268}
7269unsafe extern "C" {
7270    pub fn BN_add_word(a: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7271}
7272unsafe extern "C" {
7273    pub fn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7274}
7275unsafe extern "C" {
7276    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7277}
7278unsafe extern "C" {
7279    pub fn BN_sub_word(a: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7280}
7281unsafe extern "C" {
7282    pub fn BN_mul(
7283        r: *mut BIGNUM,
7284        a: *const BIGNUM,
7285        b: *const BIGNUM,
7286        ctx: *mut BN_CTX,
7287    ) -> ::core::ffi::c_int;
7288}
7289unsafe extern "C" {
7290    pub fn BN_mul_word(bn: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7291}
7292unsafe extern "C" {
7293    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::core::ffi::c_int;
7294}
7295unsafe extern "C" {
7296    pub fn BN_div(
7297        quotient: *mut BIGNUM,
7298        rem: *mut BIGNUM,
7299        numerator: *const BIGNUM,
7300        divisor: *const BIGNUM,
7301        ctx: *mut BN_CTX,
7302    ) -> ::core::ffi::c_int;
7303}
7304unsafe extern "C" {
7305    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: BN_ULONG) -> BN_ULONG;
7306}
7307unsafe extern "C" {
7308    pub fn BN_sqrt(
7309        out_sqrt: *mut BIGNUM,
7310        in_: *const BIGNUM,
7311        ctx: *mut BN_CTX,
7312    ) -> ::core::ffi::c_int;
7313}
7314unsafe extern "C" {
7315    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7316}
7317unsafe extern "C" {
7318    pub fn BN_cmp_word(a: *const BIGNUM, b: BN_ULONG) -> ::core::ffi::c_int;
7319}
7320unsafe extern "C" {
7321    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7322}
7323unsafe extern "C" {
7324    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7325}
7326unsafe extern "C" {
7327    pub fn BN_abs_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7328}
7329unsafe extern "C" {
7330    pub fn BN_is_zero(bn: *const BIGNUM) -> ::core::ffi::c_int;
7331}
7332unsafe extern "C" {
7333    pub fn BN_is_one(bn: *const BIGNUM) -> ::core::ffi::c_int;
7334}
7335unsafe extern "C" {
7336    pub fn BN_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7337}
7338unsafe extern "C" {
7339    pub fn BN_is_odd(bn: *const BIGNUM) -> ::core::ffi::c_int;
7340}
7341unsafe extern "C" {
7342    pub fn BN_is_pow2(a: *const BIGNUM) -> ::core::ffi::c_int;
7343}
7344unsafe extern "C" {
7345    pub fn BN_lshift(r: *mut BIGNUM, a: *const BIGNUM, n: ::core::ffi::c_int)
7346        -> ::core::ffi::c_int;
7347}
7348unsafe extern "C" {
7349    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::core::ffi::c_int;
7350}
7351unsafe extern "C" {
7352    pub fn BN_rshift(r: *mut BIGNUM, a: *const BIGNUM, n: ::core::ffi::c_int)
7353        -> ::core::ffi::c_int;
7354}
7355unsafe extern "C" {
7356    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::core::ffi::c_int;
7357}
7358unsafe extern "C" {
7359    pub fn BN_set_bit(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7360}
7361unsafe extern "C" {
7362    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7363}
7364unsafe extern "C" {
7365    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7366}
7367unsafe extern "C" {
7368    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7369}
7370unsafe extern "C" {
7371    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::core::ffi::c_int;
7372}
7373unsafe extern "C" {
7374    pub fn BN_mod_word(a: *const BIGNUM, w: BN_ULONG) -> BN_ULONG;
7375}
7376unsafe extern "C" {
7377    pub fn BN_mod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::core::ffi::c_int;
7378}
7379unsafe extern "C" {
7380    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::core::ffi::c_int;
7381}
7382unsafe extern "C" {
7383    pub fn BN_nnmod(
7384        rem: *mut BIGNUM,
7385        numerator: *const BIGNUM,
7386        divisor: *const BIGNUM,
7387        ctx: *mut BN_CTX,
7388    ) -> ::core::ffi::c_int;
7389}
7390unsafe extern "C" {
7391    pub fn BN_mod_add(
7392        r: *mut BIGNUM,
7393        a: *const BIGNUM,
7394        b: *const BIGNUM,
7395        m: *const BIGNUM,
7396        ctx: *mut BN_CTX,
7397    ) -> ::core::ffi::c_int;
7398}
7399unsafe extern "C" {
7400    pub fn BN_mod_add_quick(
7401        r: *mut BIGNUM,
7402        a: *const BIGNUM,
7403        b: *const BIGNUM,
7404        m: *const BIGNUM,
7405    ) -> ::core::ffi::c_int;
7406}
7407unsafe extern "C" {
7408    pub fn BN_mod_sub(
7409        r: *mut BIGNUM,
7410        a: *const BIGNUM,
7411        b: *const BIGNUM,
7412        m: *const BIGNUM,
7413        ctx: *mut BN_CTX,
7414    ) -> ::core::ffi::c_int;
7415}
7416unsafe extern "C" {
7417    pub fn BN_mod_sub_quick(
7418        r: *mut BIGNUM,
7419        a: *const BIGNUM,
7420        b: *const BIGNUM,
7421        m: *const BIGNUM,
7422    ) -> ::core::ffi::c_int;
7423}
7424unsafe extern "C" {
7425    pub fn BN_mod_mul(
7426        r: *mut BIGNUM,
7427        a: *const BIGNUM,
7428        b: *const BIGNUM,
7429        m: *const BIGNUM,
7430        ctx: *mut BN_CTX,
7431    ) -> ::core::ffi::c_int;
7432}
7433unsafe extern "C" {
7434    pub fn BN_mod_sqr(
7435        r: *mut BIGNUM,
7436        a: *const BIGNUM,
7437        m: *const BIGNUM,
7438        ctx: *mut BN_CTX,
7439    ) -> ::core::ffi::c_int;
7440}
7441unsafe extern "C" {
7442    pub fn BN_mod_lshift(
7443        r: *mut BIGNUM,
7444        a: *const BIGNUM,
7445        n: ::core::ffi::c_int,
7446        m: *const BIGNUM,
7447        ctx: *mut BN_CTX,
7448    ) -> ::core::ffi::c_int;
7449}
7450unsafe extern "C" {
7451    pub fn BN_mod_lshift_quick(
7452        r: *mut BIGNUM,
7453        a: *const BIGNUM,
7454        n: ::core::ffi::c_int,
7455        m: *const BIGNUM,
7456    ) -> ::core::ffi::c_int;
7457}
7458unsafe extern "C" {
7459    pub fn BN_mod_lshift1(
7460        r: *mut BIGNUM,
7461        a: *const BIGNUM,
7462        m: *const BIGNUM,
7463        ctx: *mut BN_CTX,
7464    ) -> ::core::ffi::c_int;
7465}
7466unsafe extern "C" {
7467    pub fn BN_mod_lshift1_quick(
7468        r: *mut BIGNUM,
7469        a: *const BIGNUM,
7470        m: *const BIGNUM,
7471    ) -> ::core::ffi::c_int;
7472}
7473unsafe extern "C" {
7474    pub fn BN_mod_sqrt(
7475        in_: *mut BIGNUM,
7476        a: *const BIGNUM,
7477        p: *const BIGNUM,
7478        ctx: *mut BN_CTX,
7479    ) -> *mut BIGNUM;
7480}
7481unsafe extern "C" {
7482    pub fn BN_rand(
7483        rnd: *mut BIGNUM,
7484        bits: ::core::ffi::c_int,
7485        top: ::core::ffi::c_int,
7486        bottom: ::core::ffi::c_int,
7487    ) -> ::core::ffi::c_int;
7488}
7489unsafe extern "C" {
7490    pub fn BN_pseudo_rand(
7491        rnd: *mut BIGNUM,
7492        bits: ::core::ffi::c_int,
7493        top: ::core::ffi::c_int,
7494        bottom: ::core::ffi::c_int,
7495    ) -> ::core::ffi::c_int;
7496}
7497unsafe extern "C" {
7498    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::core::ffi::c_int;
7499}
7500unsafe extern "C" {
7501    pub fn BN_rand_range_ex(
7502        r: *mut BIGNUM,
7503        min_inclusive: BN_ULONG,
7504        max_exclusive: *const BIGNUM,
7505    ) -> ::core::ffi::c_int;
7506}
7507unsafe extern "C" {
7508    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::core::ffi::c_int;
7509}
7510#[repr(C)]
7511#[derive(Debug, Copy, Clone)]
7512pub struct bn_gencb_st {
7513    pub arg: *mut ::core::ffi::c_void,
7514    pub callback: ::core::option::Option<
7515        unsafe extern "C" fn(
7516            event: ::core::ffi::c_int,
7517            n: ::core::ffi::c_int,
7518            arg1: *mut bn_gencb_st,
7519        ) -> ::core::ffi::c_int,
7520    >,
7521}
7522unsafe extern "C" {
7523    pub fn BN_GENCB_new() -> *mut BN_GENCB;
7524}
7525unsafe extern "C" {
7526    pub fn BN_GENCB_free(callback: *mut BN_GENCB);
7527}
7528unsafe extern "C" {
7529    pub fn BN_GENCB_set(
7530        callback: *mut BN_GENCB,
7531        f: ::core::option::Option<
7532            unsafe extern "C" fn(
7533                event: ::core::ffi::c_int,
7534                n: ::core::ffi::c_int,
7535                arg1: *mut BN_GENCB,
7536            ) -> ::core::ffi::c_int,
7537        >,
7538        arg: *mut ::core::ffi::c_void,
7539    );
7540}
7541unsafe extern "C" {
7542    pub fn BN_GENCB_call(
7543        callback: *mut BN_GENCB,
7544        event: ::core::ffi::c_int,
7545        n: ::core::ffi::c_int,
7546    ) -> ::core::ffi::c_int;
7547}
7548unsafe extern "C" {
7549    pub fn BN_GENCB_get_arg(callback: *const BN_GENCB) -> *mut ::core::ffi::c_void;
7550}
7551unsafe extern "C" {
7552    pub fn BN_generate_prime_ex(
7553        ret: *mut BIGNUM,
7554        bits: ::core::ffi::c_int,
7555        safe: ::core::ffi::c_int,
7556        add: *const BIGNUM,
7557        rem: *const BIGNUM,
7558        cb: *mut BN_GENCB,
7559    ) -> ::core::ffi::c_int;
7560}
7561pub const bn_primality_result_t_bn_probably_prime: bn_primality_result_t = 0;
7562pub const bn_primality_result_t_bn_composite: bn_primality_result_t = 1;
7563pub const bn_primality_result_t_bn_non_prime_power_composite: bn_primality_result_t = 2;
7564pub type bn_primality_result_t = ::core::ffi::c_uint;
7565unsafe extern "C" {
7566    pub fn BN_enhanced_miller_rabin_primality_test(
7567        out_result: *mut bn_primality_result_t,
7568        w: *const BIGNUM,
7569        checks: ::core::ffi::c_int,
7570        ctx: *mut BN_CTX,
7571        cb: *mut BN_GENCB,
7572    ) -> ::core::ffi::c_int;
7573}
7574unsafe extern "C" {
7575    pub fn BN_primality_test(
7576        is_probably_prime: *mut ::core::ffi::c_int,
7577        candidate: *const BIGNUM,
7578        checks: ::core::ffi::c_int,
7579        ctx: *mut BN_CTX,
7580        do_trial_division: ::core::ffi::c_int,
7581        cb: *mut BN_GENCB,
7582    ) -> ::core::ffi::c_int;
7583}
7584unsafe extern "C" {
7585    pub fn BN_is_prime_fasttest_ex(
7586        candidate: *const BIGNUM,
7587        checks: ::core::ffi::c_int,
7588        ctx: *mut BN_CTX,
7589        do_trial_division: ::core::ffi::c_int,
7590        cb: *mut BN_GENCB,
7591    ) -> ::core::ffi::c_int;
7592}
7593unsafe extern "C" {
7594    pub fn BN_is_prime_ex(
7595        candidate: *const BIGNUM,
7596        checks: ::core::ffi::c_int,
7597        ctx: *mut BN_CTX,
7598        cb: *mut BN_GENCB,
7599    ) -> ::core::ffi::c_int;
7600}
7601unsafe extern "C" {
7602    pub fn BN_gcd(
7603        r: *mut BIGNUM,
7604        a: *const BIGNUM,
7605        b: *const BIGNUM,
7606        ctx: *mut BN_CTX,
7607    ) -> ::core::ffi::c_int;
7608}
7609unsafe extern "C" {
7610    pub fn BN_mod_inverse(
7611        out: *mut BIGNUM,
7612        a: *const BIGNUM,
7613        n: *const BIGNUM,
7614        ctx: *mut BN_CTX,
7615    ) -> *mut BIGNUM;
7616}
7617unsafe extern "C" {
7618    pub fn BN_mod_inverse_blinded(
7619        out: *mut BIGNUM,
7620        out_no_inverse: *mut ::core::ffi::c_int,
7621        a: *const BIGNUM,
7622        mont: *const BN_MONT_CTX,
7623        ctx: *mut BN_CTX,
7624    ) -> ::core::ffi::c_int;
7625}
7626unsafe extern "C" {
7627    pub fn BN_mod_inverse_odd(
7628        out: *mut BIGNUM,
7629        out_no_inverse: *mut ::core::ffi::c_int,
7630        a: *const BIGNUM,
7631        n: *const BIGNUM,
7632        ctx: *mut BN_CTX,
7633    ) -> ::core::ffi::c_int;
7634}
7635unsafe extern "C" {
7636    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
7637}
7638unsafe extern "C" {
7639    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
7640}
7641unsafe extern "C" {
7642    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
7643}
7644unsafe extern "C" {
7645    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
7646}
7647unsafe extern "C" {
7648    pub fn BN_to_montgomery(
7649        ret: *mut BIGNUM,
7650        a: *const BIGNUM,
7651        mont: *const BN_MONT_CTX,
7652        ctx: *mut BN_CTX,
7653    ) -> ::core::ffi::c_int;
7654}
7655unsafe extern "C" {
7656    pub fn BN_from_montgomery(
7657        ret: *mut BIGNUM,
7658        a: *const BIGNUM,
7659        mont: *const BN_MONT_CTX,
7660        ctx: *mut BN_CTX,
7661    ) -> ::core::ffi::c_int;
7662}
7663unsafe extern "C" {
7664    pub fn BN_mod_mul_montgomery(
7665        r: *mut BIGNUM,
7666        a: *const BIGNUM,
7667        b: *const BIGNUM,
7668        mont: *const BN_MONT_CTX,
7669        ctx: *mut BN_CTX,
7670    ) -> ::core::ffi::c_int;
7671}
7672unsafe extern "C" {
7673    pub fn BN_exp(
7674        r: *mut BIGNUM,
7675        a: *const BIGNUM,
7676        p: *const BIGNUM,
7677        ctx: *mut BN_CTX,
7678    ) -> ::core::ffi::c_int;
7679}
7680unsafe extern "C" {
7681    pub fn BN_mod_exp(
7682        r: *mut BIGNUM,
7683        a: *const BIGNUM,
7684        p: *const BIGNUM,
7685        m: *const BIGNUM,
7686        ctx: *mut BN_CTX,
7687    ) -> ::core::ffi::c_int;
7688}
7689unsafe extern "C" {
7690    pub fn BN_mod_exp_mont(
7691        r: *mut BIGNUM,
7692        a: *const BIGNUM,
7693        p: *const BIGNUM,
7694        m: *const BIGNUM,
7695        ctx: *mut BN_CTX,
7696        mont: *const BN_MONT_CTX,
7697    ) -> ::core::ffi::c_int;
7698}
7699unsafe extern "C" {
7700    pub fn BN_mod_exp_mont_consttime(
7701        rr: *mut BIGNUM,
7702        a: *const BIGNUM,
7703        p: *const BIGNUM,
7704        m: *const BIGNUM,
7705        ctx: *mut BN_CTX,
7706        mont: *const BN_MONT_CTX,
7707    ) -> ::core::ffi::c_int;
7708}
7709unsafe extern "C" {
7710    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
7711}
7712unsafe extern "C" {
7713    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
7714}
7715unsafe extern "C" {
7716    pub fn BN_mod_exp_mont_word(
7717        r: *mut BIGNUM,
7718        a: BN_ULONG,
7719        p: *const BIGNUM,
7720        m: *const BIGNUM,
7721        ctx: *mut BN_CTX,
7722        mont: *const BN_MONT_CTX,
7723    ) -> ::core::ffi::c_int;
7724}
7725unsafe extern "C" {
7726    pub fn BN_mod_exp2_mont(
7727        r: *mut BIGNUM,
7728        a1: *const BIGNUM,
7729        p1: *const BIGNUM,
7730        a2: *const BIGNUM,
7731        p2: *const BIGNUM,
7732        m: *const BIGNUM,
7733        ctx: *mut BN_CTX,
7734        mont: *const BN_MONT_CTX,
7735    ) -> ::core::ffi::c_int;
7736}
7737unsafe extern "C" {
7738    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
7739}
7740unsafe extern "C" {
7741    pub fn BN_MONT_CTX_set(
7742        mont: *mut BN_MONT_CTX,
7743        mod_: *const BIGNUM,
7744        ctx: *mut BN_CTX,
7745    ) -> ::core::ffi::c_int;
7746}
7747unsafe extern "C" {
7748    pub fn BN_bn2binpad(
7749        in_: *const BIGNUM,
7750        out: *mut u8,
7751        len: ::core::ffi::c_int,
7752    ) -> ::core::ffi::c_int;
7753}
7754unsafe extern "C" {
7755    pub fn BN_bn2lebinpad(
7756        in_: *const BIGNUM,
7757        out: *mut u8,
7758        len: ::core::ffi::c_int,
7759    ) -> ::core::ffi::c_int;
7760}
7761unsafe extern "C" {
7762    pub fn BN_secure_new() -> *mut BIGNUM;
7763}
7764unsafe extern "C" {
7765    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7766}
7767#[repr(C)]
7768#[derive(Debug, Copy, Clone)]
7769pub struct bignum_st {
7770    pub d: *mut BN_ULONG,
7771    pub width: ::core::ffi::c_int,
7772    pub dmax: ::core::ffi::c_int,
7773    pub neg: ::core::ffi::c_int,
7774    pub flags: ::core::ffi::c_int,
7775}
7776unsafe extern "C" {
7777    pub fn BN_num_bits_word(l: BN_ULONG) -> ::core::ffi::c_uint;
7778}
7779unsafe extern "C" {
7780    pub fn ASN1_tag2bit(tag: ::core::ffi::c_int) -> ::core::ffi::c_ulong;
7781}
7782unsafe extern "C" {
7783    pub fn ASN1_tag2str(tag: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
7784}
7785pub type d2i_of_void = ::core::option::Option<
7786    unsafe extern "C" fn(
7787        arg1: *mut *mut ::core::ffi::c_void,
7788        arg2: *mut *const ::core::ffi::c_uchar,
7789        arg3: ::core::ffi::c_long,
7790    ) -> *mut ::core::ffi::c_void,
7791>;
7792pub type i2d_of_void = ::core::option::Option<
7793    unsafe extern "C" fn(
7794        arg1: *const ::core::ffi::c_void,
7795        arg2: *mut *mut ::core::ffi::c_uchar,
7796    ) -> ::core::ffi::c_int,
7797>;
7798pub type ASN1_ITEM_EXP = ASN1_ITEM;
7799#[repr(C)]
7800#[derive(Debug)]
7801pub struct ASN1_VALUE_st {
7802    _unused: [u8; 0],
7803}
7804pub type ASN1_VALUE = ASN1_VALUE_st;
7805unsafe extern "C" {
7806    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
7807}
7808unsafe extern "C" {
7809    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
7810}
7811unsafe extern "C" {
7812    pub fn ASN1_item_d2i(
7813        out: *mut *mut ASN1_VALUE,
7814        inp: *mut *const ::core::ffi::c_uchar,
7815        len: ::core::ffi::c_long,
7816        it: *const ASN1_ITEM,
7817    ) -> *mut ASN1_VALUE;
7818}
7819unsafe extern "C" {
7820    pub fn ASN1_item_i2d(
7821        val: *mut ASN1_VALUE,
7822        outp: *mut *mut ::core::ffi::c_uchar,
7823        it: *const ASN1_ITEM,
7824    ) -> ::core::ffi::c_int;
7825}
7826unsafe extern "C" {
7827    pub fn ASN1_item_dup(
7828        it: *const ASN1_ITEM,
7829        x: *mut ::core::ffi::c_void,
7830    ) -> *mut ::core::ffi::c_void;
7831}
7832unsafe extern "C" {
7833    pub fn ASN1_item_d2i_fp(
7834        it: *const ASN1_ITEM,
7835        in_: *mut FILE,
7836        out: *mut ::core::ffi::c_void,
7837    ) -> *mut ::core::ffi::c_void;
7838}
7839unsafe extern "C" {
7840    pub fn ASN1_item_d2i_bio(
7841        it: *const ASN1_ITEM,
7842        in_: *mut BIO,
7843        out: *mut ::core::ffi::c_void,
7844    ) -> *mut ::core::ffi::c_void;
7845}
7846unsafe extern "C" {
7847    pub fn ASN1_item_i2d_fp(
7848        it: *const ASN1_ITEM,
7849        out: *mut FILE,
7850        in_: *const ::core::ffi::c_void,
7851    ) -> ::core::ffi::c_int;
7852}
7853unsafe extern "C" {
7854    pub fn ASN1_item_i2d_bio(
7855        it: *const ASN1_ITEM,
7856        out: *mut BIO,
7857        in_: *const ::core::ffi::c_void,
7858    ) -> ::core::ffi::c_int;
7859}
7860unsafe extern "C" {
7861    pub fn ASN1_item_unpack(
7862        oct: *const ASN1_STRING,
7863        it: *const ASN1_ITEM,
7864    ) -> *mut ::core::ffi::c_void;
7865}
7866unsafe extern "C" {
7867    pub fn ASN1_item_pack(
7868        obj: *mut ::core::ffi::c_void,
7869        it: *const ASN1_ITEM,
7870        out: *mut *mut ASN1_STRING,
7871    ) -> *mut ASN1_STRING;
7872}
7873unsafe extern "C" {
7874    pub fn d2i_ASN1_BOOLEAN(
7875        out: *mut ASN1_BOOLEAN,
7876        inp: *mut *const ::core::ffi::c_uchar,
7877        len: ::core::ffi::c_long,
7878    ) -> ASN1_BOOLEAN;
7879}
7880unsafe extern "C" {
7881    pub fn i2d_ASN1_BOOLEAN(
7882        a: ASN1_BOOLEAN,
7883        outp: *mut *mut ::core::ffi::c_uchar,
7884    ) -> ::core::ffi::c_int;
7885}
7886unsafe extern "C" {
7887    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
7888}
7889unsafe extern "C" {
7890    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
7891}
7892unsafe extern "C" {
7893    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
7894}
7895#[repr(C)]
7896#[derive(Debug, Copy, Clone)]
7897pub struct asn1_string_st {
7898    pub length: ::core::ffi::c_int,
7899    pub type_: ::core::ffi::c_int,
7900    pub data: *mut ::core::ffi::c_uchar,
7901    pub flags: ::core::ffi::c_long,
7902}
7903unsafe extern "C" {
7904    pub fn ASN1_STRING_type_new(type_: ::core::ffi::c_int) -> *mut ASN1_STRING;
7905}
7906unsafe extern "C" {
7907    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
7908}
7909unsafe extern "C" {
7910    pub fn ASN1_STRING_free(str_: *mut ASN1_STRING);
7911}
7912unsafe extern "C" {
7913    pub fn ASN1_STRING_copy(dst: *mut ASN1_STRING, str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7914}
7915unsafe extern "C" {
7916    pub fn ASN1_STRING_dup(str_: *const ASN1_STRING) -> *mut ASN1_STRING;
7917}
7918unsafe extern "C" {
7919    pub fn ASN1_STRING_type(str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7920}
7921unsafe extern "C" {
7922    pub fn ASN1_STRING_get0_data(str_: *const ASN1_STRING) -> *const ::core::ffi::c_uchar;
7923}
7924unsafe extern "C" {
7925    pub fn ASN1_STRING_data(str_: *mut ASN1_STRING) -> *mut ::core::ffi::c_uchar;
7926}
7927unsafe extern "C" {
7928    pub fn ASN1_STRING_length(str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7929}
7930unsafe extern "C" {
7931    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::core::ffi::c_int;
7932}
7933unsafe extern "C" {
7934    pub fn ASN1_STRING_set(
7935        str_: *mut ASN1_STRING,
7936        data: *const ::core::ffi::c_void,
7937        len: ossl_ssize_t,
7938    ) -> ::core::ffi::c_int;
7939}
7940unsafe extern "C" {
7941    pub fn ASN1_STRING_set0(
7942        str_: *mut ASN1_STRING,
7943        data: *mut ::core::ffi::c_void,
7944        len: ::core::ffi::c_int,
7945    );
7946}
7947unsafe extern "C" {
7948    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
7949}
7950unsafe extern "C" {
7951    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
7952}
7953unsafe extern "C" {
7954    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
7955}
7956unsafe extern "C" {
7957    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
7958}
7959unsafe extern "C" {
7960    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
7961}
7962unsafe extern "C" {
7963    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
7964}
7965unsafe extern "C" {
7966    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
7967}
7968unsafe extern "C" {
7969    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
7970}
7971unsafe extern "C" {
7972    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
7973}
7974unsafe extern "C" {
7975    pub fn ASN1_BMPSTRING_free(str_: *mut ASN1_BMPSTRING);
7976}
7977unsafe extern "C" {
7978    pub fn ASN1_GENERALSTRING_free(str_: *mut ASN1_GENERALSTRING);
7979}
7980unsafe extern "C" {
7981    pub fn ASN1_IA5STRING_free(str_: *mut ASN1_IA5STRING);
7982}
7983unsafe extern "C" {
7984    pub fn ASN1_OCTET_STRING_free(str_: *mut ASN1_OCTET_STRING);
7985}
7986unsafe extern "C" {
7987    pub fn ASN1_PRINTABLESTRING_free(str_: *mut ASN1_PRINTABLESTRING);
7988}
7989unsafe extern "C" {
7990    pub fn ASN1_T61STRING_free(str_: *mut ASN1_T61STRING);
7991}
7992unsafe extern "C" {
7993    pub fn ASN1_UNIVERSALSTRING_free(str_: *mut ASN1_UNIVERSALSTRING);
7994}
7995unsafe extern "C" {
7996    pub fn ASN1_UTF8STRING_free(str_: *mut ASN1_UTF8STRING);
7997}
7998unsafe extern "C" {
7999    pub fn ASN1_VISIBLESTRING_free(str_: *mut ASN1_VISIBLESTRING);
8000}
8001unsafe extern "C" {
8002    pub fn d2i_ASN1_BMPSTRING(
8003        out: *mut *mut ASN1_BMPSTRING,
8004        inp: *mut *const u8,
8005        len: ::core::ffi::c_long,
8006    ) -> *mut ASN1_BMPSTRING;
8007}
8008unsafe extern "C" {
8009    pub fn d2i_ASN1_GENERALSTRING(
8010        out: *mut *mut ASN1_GENERALSTRING,
8011        inp: *mut *const u8,
8012        len: ::core::ffi::c_long,
8013    ) -> *mut ASN1_GENERALSTRING;
8014}
8015unsafe extern "C" {
8016    pub fn d2i_ASN1_IA5STRING(
8017        out: *mut *mut ASN1_IA5STRING,
8018        inp: *mut *const u8,
8019        len: ::core::ffi::c_long,
8020    ) -> *mut ASN1_IA5STRING;
8021}
8022unsafe extern "C" {
8023    pub fn d2i_ASN1_OCTET_STRING(
8024        out: *mut *mut ASN1_OCTET_STRING,
8025        inp: *mut *const u8,
8026        len: ::core::ffi::c_long,
8027    ) -> *mut ASN1_OCTET_STRING;
8028}
8029unsafe extern "C" {
8030    pub fn d2i_ASN1_PRINTABLESTRING(
8031        out: *mut *mut ASN1_PRINTABLESTRING,
8032        inp: *mut *const u8,
8033        len: ::core::ffi::c_long,
8034    ) -> *mut ASN1_PRINTABLESTRING;
8035}
8036unsafe extern "C" {
8037    pub fn d2i_ASN1_T61STRING(
8038        out: *mut *mut ASN1_T61STRING,
8039        inp: *mut *const u8,
8040        len: ::core::ffi::c_long,
8041    ) -> *mut ASN1_T61STRING;
8042}
8043unsafe extern "C" {
8044    pub fn d2i_ASN1_UNIVERSALSTRING(
8045        out: *mut *mut ASN1_UNIVERSALSTRING,
8046        inp: *mut *const u8,
8047        len: ::core::ffi::c_long,
8048    ) -> *mut ASN1_UNIVERSALSTRING;
8049}
8050unsafe extern "C" {
8051    pub fn d2i_ASN1_UTF8STRING(
8052        out: *mut *mut ASN1_UTF8STRING,
8053        inp: *mut *const u8,
8054        len: ::core::ffi::c_long,
8055    ) -> *mut ASN1_UTF8STRING;
8056}
8057unsafe extern "C" {
8058    pub fn d2i_ASN1_VISIBLESTRING(
8059        out: *mut *mut ASN1_VISIBLESTRING,
8060        inp: *mut *const u8,
8061        len: ::core::ffi::c_long,
8062    ) -> *mut ASN1_VISIBLESTRING;
8063}
8064unsafe extern "C" {
8065    pub fn i2d_ASN1_BMPSTRING(in_: *const ASN1_BMPSTRING, outp: *mut *mut u8)
8066        -> ::core::ffi::c_int;
8067}
8068unsafe extern "C" {
8069    pub fn i2d_ASN1_GENERALSTRING(
8070        in_: *const ASN1_GENERALSTRING,
8071        outp: *mut *mut u8,
8072    ) -> ::core::ffi::c_int;
8073}
8074unsafe extern "C" {
8075    pub fn i2d_ASN1_IA5STRING(in_: *const ASN1_IA5STRING, outp: *mut *mut u8)
8076        -> ::core::ffi::c_int;
8077}
8078unsafe extern "C" {
8079    pub fn i2d_ASN1_OCTET_STRING(
8080        in_: *const ASN1_OCTET_STRING,
8081        outp: *mut *mut u8,
8082    ) -> ::core::ffi::c_int;
8083}
8084unsafe extern "C" {
8085    pub fn i2d_ASN1_PRINTABLESTRING(
8086        in_: *const ASN1_PRINTABLESTRING,
8087        outp: *mut *mut u8,
8088    ) -> ::core::ffi::c_int;
8089}
8090unsafe extern "C" {
8091    pub fn i2d_ASN1_T61STRING(in_: *const ASN1_T61STRING, outp: *mut *mut u8)
8092        -> ::core::ffi::c_int;
8093}
8094unsafe extern "C" {
8095    pub fn i2d_ASN1_UNIVERSALSTRING(
8096        in_: *const ASN1_UNIVERSALSTRING,
8097        outp: *mut *mut u8,
8098    ) -> ::core::ffi::c_int;
8099}
8100unsafe extern "C" {
8101    pub fn i2d_ASN1_UTF8STRING(
8102        in_: *const ASN1_UTF8STRING,
8103        outp: *mut *mut u8,
8104    ) -> ::core::ffi::c_int;
8105}
8106unsafe extern "C" {
8107    pub fn i2d_ASN1_VISIBLESTRING(
8108        in_: *const ASN1_VISIBLESTRING,
8109        outp: *mut *mut u8,
8110    ) -> ::core::ffi::c_int;
8111}
8112unsafe extern "C" {
8113    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
8114}
8115unsafe extern "C" {
8116    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
8117}
8118unsafe extern "C" {
8119    pub static ASN1_IA5STRING_it: ASN1_ITEM;
8120}
8121unsafe extern "C" {
8122    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
8123}
8124unsafe extern "C" {
8125    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
8126}
8127unsafe extern "C" {
8128    pub static ASN1_T61STRING_it: ASN1_ITEM;
8129}
8130unsafe extern "C" {
8131    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
8132}
8133unsafe extern "C" {
8134    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
8135}
8136unsafe extern "C" {
8137    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
8138}
8139unsafe extern "C" {
8140    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
8141}
8142unsafe extern "C" {
8143    pub fn ASN1_OCTET_STRING_cmp(
8144        a: *const ASN1_OCTET_STRING,
8145        b: *const ASN1_OCTET_STRING,
8146    ) -> ::core::ffi::c_int;
8147}
8148unsafe extern "C" {
8149    pub fn ASN1_OCTET_STRING_set(
8150        str_: *mut ASN1_OCTET_STRING,
8151        data: *const ::core::ffi::c_uchar,
8152        len: ::core::ffi::c_int,
8153    ) -> ::core::ffi::c_int;
8154}
8155unsafe extern "C" {
8156    pub fn ASN1_STRING_to_UTF8(
8157        out: *mut *mut ::core::ffi::c_uchar,
8158        in_: *const ASN1_STRING,
8159    ) -> ::core::ffi::c_int;
8160}
8161unsafe extern "C" {
8162    pub fn ASN1_mbstring_copy(
8163        out: *mut *mut ASN1_STRING,
8164        in_: *const u8,
8165        len: ossl_ssize_t,
8166        inform: ::core::ffi::c_int,
8167        mask: ::core::ffi::c_ulong,
8168    ) -> ::core::ffi::c_int;
8169}
8170unsafe extern "C" {
8171    pub fn ASN1_mbstring_ncopy(
8172        out: *mut *mut ASN1_STRING,
8173        in_: *const u8,
8174        len: ossl_ssize_t,
8175        inform: ::core::ffi::c_int,
8176        mask: ::core::ffi::c_ulong,
8177        minsize: ossl_ssize_t,
8178        maxsize: ossl_ssize_t,
8179    ) -> ::core::ffi::c_int;
8180}
8181unsafe extern "C" {
8182    pub fn ASN1_STRING_set_by_NID(
8183        out: *mut *mut ASN1_STRING,
8184        in_: *const ::core::ffi::c_uchar,
8185        len: ossl_ssize_t,
8186        inform: ::core::ffi::c_int,
8187        nid: ::core::ffi::c_int,
8188    ) -> *mut ASN1_STRING;
8189}
8190unsafe extern "C" {
8191    pub fn ASN1_STRING_TABLE_add(
8192        nid: ::core::ffi::c_int,
8193        minsize: ::core::ffi::c_long,
8194        maxsize: ::core::ffi::c_long,
8195        mask: ::core::ffi::c_ulong,
8196        flags: ::core::ffi::c_ulong,
8197    ) -> ::core::ffi::c_int;
8198}
8199unsafe extern "C" {
8200    pub fn DIRECTORYSTRING_new() -> *mut ASN1_STRING;
8201}
8202unsafe extern "C" {
8203    pub fn DIRECTORYSTRING_free(str_: *mut ASN1_STRING);
8204}
8205unsafe extern "C" {
8206    pub fn d2i_DIRECTORYSTRING(
8207        out: *mut *mut ASN1_STRING,
8208        inp: *mut *const u8,
8209        len: ::core::ffi::c_long,
8210    ) -> *mut ASN1_STRING;
8211}
8212unsafe extern "C" {
8213    pub fn i2d_DIRECTORYSTRING(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::core::ffi::c_int;
8214}
8215unsafe extern "C" {
8216    pub fn DISPLAYTEXT_new() -> *mut ASN1_STRING;
8217}
8218unsafe extern "C" {
8219    pub fn DISPLAYTEXT_free(str_: *mut ASN1_STRING);
8220}
8221unsafe extern "C" {
8222    pub fn d2i_DISPLAYTEXT(
8223        out: *mut *mut ASN1_STRING,
8224        inp: *mut *const u8,
8225        len: ::core::ffi::c_long,
8226    ) -> *mut ASN1_STRING;
8227}
8228unsafe extern "C" {
8229    pub fn i2d_DISPLAYTEXT(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::core::ffi::c_int;
8230}
8231unsafe extern "C" {
8232    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
8233}
8234unsafe extern "C" {
8235    pub fn ASN1_BIT_STRING_free(str_: *mut ASN1_BIT_STRING);
8236}
8237unsafe extern "C" {
8238    pub fn d2i_ASN1_BIT_STRING(
8239        out: *mut *mut ASN1_BIT_STRING,
8240        inp: *mut *const u8,
8241        len: ::core::ffi::c_long,
8242    ) -> *mut ASN1_BIT_STRING;
8243}
8244unsafe extern "C" {
8245    pub fn i2d_ASN1_BIT_STRING(
8246        in_: *const ASN1_BIT_STRING,
8247        outp: *mut *mut u8,
8248    ) -> ::core::ffi::c_int;
8249}
8250unsafe extern "C" {
8251    pub fn c2i_ASN1_BIT_STRING(
8252        out: *mut *mut ASN1_BIT_STRING,
8253        inp: *mut *const u8,
8254        len: ::core::ffi::c_long,
8255    ) -> *mut ASN1_BIT_STRING;
8256}
8257unsafe extern "C" {
8258    pub fn i2c_ASN1_BIT_STRING(
8259        in_: *const ASN1_BIT_STRING,
8260        outp: *mut *mut u8,
8261    ) -> ::core::ffi::c_int;
8262}
8263unsafe extern "C" {
8264    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
8265}
8266unsafe extern "C" {
8267    pub fn ASN1_BIT_STRING_unused_bits(str_: *const ASN1_BIT_STRING) -> u8;
8268}
8269unsafe extern "C" {
8270    pub fn ASN1_BIT_STRING_set(
8271        str_: *mut ASN1_BIT_STRING,
8272        data: *const u8,
8273        length: ossl_ssize_t,
8274    ) -> ::core::ffi::c_int;
8275}
8276unsafe extern "C" {
8277    pub fn ASN1_BIT_STRING_set1(
8278        str_: *mut ASN1_BIT_STRING,
8279        data: *const u8,
8280        length: usize,
8281        unused_bits: ::core::ffi::c_int,
8282    ) -> ::core::ffi::c_int;
8283}
8284unsafe extern "C" {
8285    pub fn ASN1_BIT_STRING_set_bit(
8286        str_: *mut ASN1_BIT_STRING,
8287        n: ::core::ffi::c_int,
8288        value: ::core::ffi::c_int,
8289    ) -> ::core::ffi::c_int;
8290}
8291unsafe extern "C" {
8292    pub fn ASN1_BIT_STRING_get_bit(
8293        str_: *const ASN1_BIT_STRING,
8294        n: ::core::ffi::c_int,
8295    ) -> ::core::ffi::c_int;
8296}
8297unsafe extern "C" {
8298    pub fn ASN1_BIT_STRING_check(
8299        str_: *const ASN1_BIT_STRING,
8300        flags: *const ::core::ffi::c_uchar,
8301        flags_len: ::core::ffi::c_int,
8302    ) -> ::core::ffi::c_int;
8303}
8304#[repr(C)]
8305#[derive(Debug)]
8306pub struct stack_st_ASN1_INTEGER {
8307    _unused: [u8; 0],
8308}
8309pub type sk_ASN1_INTEGER_free_func =
8310    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_INTEGER)>;
8311pub type sk_ASN1_INTEGER_copy_func =
8312    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_INTEGER) -> *mut ASN1_INTEGER>;
8313pub type sk_ASN1_INTEGER_cmp_func = ::core::option::Option<
8314    unsafe extern "C" fn(
8315        arg1: *const *const ASN1_INTEGER,
8316        arg2: *const *const ASN1_INTEGER,
8317    ) -> ::core::ffi::c_int,
8318>;
8319pub type sk_ASN1_INTEGER_delete_if_func = ::core::option::Option<
8320    unsafe extern "C" fn(
8321        arg1: *mut ASN1_INTEGER,
8322        arg2: *mut ::core::ffi::c_void,
8323    ) -> ::core::ffi::c_int,
8324>;
8325unsafe extern "C" {
8326    #[link_name = "sk_ASN1_INTEGER_call_free_func__extern"]
8327    pub fn sk_ASN1_INTEGER_call_free_func(
8328        free_func: OPENSSL_sk_free_func,
8329        ptr: *mut ::core::ffi::c_void,
8330    );
8331}
8332unsafe extern "C" {
8333    #[link_name = "sk_ASN1_INTEGER_call_copy_func__extern"]
8334    pub fn sk_ASN1_INTEGER_call_copy_func(
8335        copy_func: OPENSSL_sk_copy_func,
8336        ptr: *const ::core::ffi::c_void,
8337    ) -> *mut ::core::ffi::c_void;
8338}
8339unsafe extern "C" {
8340    #[link_name = "sk_ASN1_INTEGER_call_cmp_func__extern"]
8341    pub fn sk_ASN1_INTEGER_call_cmp_func(
8342        cmp_func: OPENSSL_sk_cmp_func,
8343        a: *const ::core::ffi::c_void,
8344        b: *const ::core::ffi::c_void,
8345    ) -> ::core::ffi::c_int;
8346}
8347unsafe extern "C" {
8348    #[link_name = "sk_ASN1_INTEGER_call_delete_if_func__extern"]
8349    pub fn sk_ASN1_INTEGER_call_delete_if_func(
8350        func: OPENSSL_sk_delete_if_func,
8351        obj: *mut ::core::ffi::c_void,
8352        data: *mut ::core::ffi::c_void,
8353    ) -> ::core::ffi::c_int;
8354}
8355unsafe extern "C" {
8356    #[link_name = "sk_ASN1_INTEGER_new__extern"]
8357    pub fn sk_ASN1_INTEGER_new(comp: sk_ASN1_INTEGER_cmp_func) -> *mut stack_st_ASN1_INTEGER;
8358}
8359unsafe extern "C" {
8360    #[link_name = "sk_ASN1_INTEGER_new_null__extern"]
8361    pub fn sk_ASN1_INTEGER_new_null() -> *mut stack_st_ASN1_INTEGER;
8362}
8363unsafe extern "C" {
8364    #[link_name = "sk_ASN1_INTEGER_num__extern"]
8365    pub fn sk_ASN1_INTEGER_num(sk: *const stack_st_ASN1_INTEGER) -> usize;
8366}
8367unsafe extern "C" {
8368    #[link_name = "sk_ASN1_INTEGER_zero__extern"]
8369    pub fn sk_ASN1_INTEGER_zero(sk: *mut stack_st_ASN1_INTEGER);
8370}
8371unsafe extern "C" {
8372    #[link_name = "sk_ASN1_INTEGER_value__extern"]
8373    pub fn sk_ASN1_INTEGER_value(sk: *const stack_st_ASN1_INTEGER, i: usize) -> *mut ASN1_INTEGER;
8374}
8375unsafe extern "C" {
8376    #[link_name = "sk_ASN1_INTEGER_set__extern"]
8377    pub fn sk_ASN1_INTEGER_set(
8378        sk: *mut stack_st_ASN1_INTEGER,
8379        i: usize,
8380        p: *mut ASN1_INTEGER,
8381    ) -> *mut ASN1_INTEGER;
8382}
8383unsafe extern "C" {
8384    #[link_name = "sk_ASN1_INTEGER_free__extern"]
8385    pub fn sk_ASN1_INTEGER_free(sk: *mut stack_st_ASN1_INTEGER);
8386}
8387unsafe extern "C" {
8388    #[link_name = "sk_ASN1_INTEGER_pop_free__extern"]
8389    pub fn sk_ASN1_INTEGER_pop_free(
8390        sk: *mut stack_st_ASN1_INTEGER,
8391        free_func: sk_ASN1_INTEGER_free_func,
8392    );
8393}
8394unsafe extern "C" {
8395    #[link_name = "sk_ASN1_INTEGER_insert__extern"]
8396    pub fn sk_ASN1_INTEGER_insert(
8397        sk: *mut stack_st_ASN1_INTEGER,
8398        p: *mut ASN1_INTEGER,
8399        where_: usize,
8400    ) -> usize;
8401}
8402unsafe extern "C" {
8403    #[link_name = "sk_ASN1_INTEGER_delete__extern"]
8404    pub fn sk_ASN1_INTEGER_delete(
8405        sk: *mut stack_st_ASN1_INTEGER,
8406        where_: usize,
8407    ) -> *mut ASN1_INTEGER;
8408}
8409unsafe extern "C" {
8410    #[link_name = "sk_ASN1_INTEGER_delete_ptr__extern"]
8411    pub fn sk_ASN1_INTEGER_delete_ptr(
8412        sk: *mut stack_st_ASN1_INTEGER,
8413        p: *const ASN1_INTEGER,
8414    ) -> *mut ASN1_INTEGER;
8415}
8416unsafe extern "C" {
8417    #[link_name = "sk_ASN1_INTEGER_delete_if__extern"]
8418    pub fn sk_ASN1_INTEGER_delete_if(
8419        sk: *mut stack_st_ASN1_INTEGER,
8420        func: sk_ASN1_INTEGER_delete_if_func,
8421        data: *mut ::core::ffi::c_void,
8422    );
8423}
8424unsafe extern "C" {
8425    #[link_name = "sk_ASN1_INTEGER_find__extern"]
8426    pub fn sk_ASN1_INTEGER_find(
8427        sk: *const stack_st_ASN1_INTEGER,
8428        out_index: *mut usize,
8429        p: *const ASN1_INTEGER,
8430    ) -> ::core::ffi::c_int;
8431}
8432unsafe extern "C" {
8433    #[link_name = "sk_ASN1_INTEGER_shift__extern"]
8434    pub fn sk_ASN1_INTEGER_shift(sk: *mut stack_st_ASN1_INTEGER) -> *mut ASN1_INTEGER;
8435}
8436unsafe extern "C" {
8437    #[link_name = "sk_ASN1_INTEGER_push__extern"]
8438    pub fn sk_ASN1_INTEGER_push(sk: *mut stack_st_ASN1_INTEGER, p: *mut ASN1_INTEGER) -> usize;
8439}
8440unsafe extern "C" {
8441    #[link_name = "sk_ASN1_INTEGER_pop__extern"]
8442    pub fn sk_ASN1_INTEGER_pop(sk: *mut stack_st_ASN1_INTEGER) -> *mut ASN1_INTEGER;
8443}
8444unsafe extern "C" {
8445    #[link_name = "sk_ASN1_INTEGER_dup__extern"]
8446    pub fn sk_ASN1_INTEGER_dup(sk: *const stack_st_ASN1_INTEGER) -> *mut stack_st_ASN1_INTEGER;
8447}
8448unsafe extern "C" {
8449    #[link_name = "sk_ASN1_INTEGER_sort__extern"]
8450    pub fn sk_ASN1_INTEGER_sort(sk: *mut stack_st_ASN1_INTEGER);
8451}
8452unsafe extern "C" {
8453    #[link_name = "sk_ASN1_INTEGER_sort_and_dedup__extern"]
8454    pub fn sk_ASN1_INTEGER_sort_and_dedup(
8455        sk: *mut stack_st_ASN1_INTEGER,
8456        free_func: sk_ASN1_INTEGER_free_func,
8457    );
8458}
8459unsafe extern "C" {
8460    #[link_name = "sk_ASN1_INTEGER_is_sorted__extern"]
8461    pub fn sk_ASN1_INTEGER_is_sorted(sk: *const stack_st_ASN1_INTEGER) -> ::core::ffi::c_int;
8462}
8463unsafe extern "C" {
8464    #[link_name = "sk_ASN1_INTEGER_set_cmp_func__extern"]
8465    pub fn sk_ASN1_INTEGER_set_cmp_func(
8466        sk: *mut stack_st_ASN1_INTEGER,
8467        comp: sk_ASN1_INTEGER_cmp_func,
8468    ) -> sk_ASN1_INTEGER_cmp_func;
8469}
8470unsafe extern "C" {
8471    #[link_name = "sk_ASN1_INTEGER_deep_copy__extern"]
8472    pub fn sk_ASN1_INTEGER_deep_copy(
8473        sk: *const stack_st_ASN1_INTEGER,
8474        copy_func: sk_ASN1_INTEGER_copy_func,
8475        free_func: sk_ASN1_INTEGER_free_func,
8476    ) -> *mut stack_st_ASN1_INTEGER;
8477}
8478unsafe extern "C" {
8479    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
8480}
8481unsafe extern "C" {
8482    pub fn ASN1_INTEGER_free(str_: *mut ASN1_INTEGER);
8483}
8484unsafe extern "C" {
8485    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
8486}
8487unsafe extern "C" {
8488    pub fn d2i_ASN1_INTEGER(
8489        out: *mut *mut ASN1_INTEGER,
8490        inp: *mut *const u8,
8491        len: ::core::ffi::c_long,
8492    ) -> *mut ASN1_INTEGER;
8493}
8494unsafe extern "C" {
8495    pub fn i2d_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::core::ffi::c_int;
8496}
8497unsafe extern "C" {
8498    pub fn c2i_ASN1_INTEGER(
8499        in_: *mut *mut ASN1_INTEGER,
8500        outp: *mut *const u8,
8501        len: ::core::ffi::c_long,
8502    ) -> *mut ASN1_INTEGER;
8503}
8504unsafe extern "C" {
8505    pub fn i2c_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::core::ffi::c_int;
8506}
8507unsafe extern "C" {
8508    pub static ASN1_INTEGER_it: ASN1_ITEM;
8509}
8510unsafe extern "C" {
8511    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::core::ffi::c_int;
8512}
8513unsafe extern "C" {
8514    pub fn ASN1_INTEGER_set_int64(out: *mut ASN1_INTEGER, v: i64) -> ::core::ffi::c_int;
8515}
8516unsafe extern "C" {
8517    pub fn ASN1_INTEGER_get_uint64(out: *mut u64, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8518}
8519unsafe extern "C" {
8520    pub fn ASN1_INTEGER_get_int64(out: *mut i64, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8521}
8522unsafe extern "C" {
8523    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
8524}
8525unsafe extern "C" {
8526    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
8527}
8528unsafe extern "C" {
8529    pub fn ASN1_INTEGER_cmp(x: *const ASN1_INTEGER, y: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8530}
8531unsafe extern "C" {
8532    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
8533}
8534unsafe extern "C" {
8535    pub fn ASN1_ENUMERATED_free(str_: *mut ASN1_ENUMERATED);
8536}
8537unsafe extern "C" {
8538    pub fn d2i_ASN1_ENUMERATED(
8539        out: *mut *mut ASN1_ENUMERATED,
8540        inp: *mut *const u8,
8541        len: ::core::ffi::c_long,
8542    ) -> *mut ASN1_ENUMERATED;
8543}
8544unsafe extern "C" {
8545    pub fn i2d_ASN1_ENUMERATED(
8546        in_: *const ASN1_ENUMERATED,
8547        outp: *mut *mut u8,
8548    ) -> ::core::ffi::c_int;
8549}
8550unsafe extern "C" {
8551    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
8552}
8553unsafe extern "C" {
8554    pub fn ASN1_ENUMERATED_set_uint64(out: *mut ASN1_ENUMERATED, v: u64) -> ::core::ffi::c_int;
8555}
8556unsafe extern "C" {
8557    pub fn ASN1_ENUMERATED_set_int64(out: *mut ASN1_ENUMERATED, v: i64) -> ::core::ffi::c_int;
8558}
8559unsafe extern "C" {
8560    pub fn ASN1_ENUMERATED_get_uint64(
8561        out: *mut u64,
8562        a: *const ASN1_ENUMERATED,
8563    ) -> ::core::ffi::c_int;
8564}
8565unsafe extern "C" {
8566    pub fn ASN1_ENUMERATED_get_int64(
8567        out: *mut i64,
8568        a: *const ASN1_ENUMERATED,
8569    ) -> ::core::ffi::c_int;
8570}
8571unsafe extern "C" {
8572    pub fn BN_to_ASN1_ENUMERATED(
8573        bn: *const BIGNUM,
8574        ai: *mut ASN1_ENUMERATED,
8575    ) -> *mut ASN1_ENUMERATED;
8576}
8577unsafe extern "C" {
8578    pub fn ASN1_ENUMERATED_to_BN(ai: *const ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
8579}
8580unsafe extern "C" {
8581    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
8582}
8583unsafe extern "C" {
8584    pub fn ASN1_UTCTIME_free(str_: *mut ASN1_UTCTIME);
8585}
8586unsafe extern "C" {
8587    pub fn d2i_ASN1_UTCTIME(
8588        out: *mut *mut ASN1_UTCTIME,
8589        inp: *mut *const u8,
8590        len: ::core::ffi::c_long,
8591    ) -> *mut ASN1_UTCTIME;
8592}
8593unsafe extern "C" {
8594    pub fn i2d_ASN1_UTCTIME(in_: *const ASN1_UTCTIME, outp: *mut *mut u8) -> ::core::ffi::c_int;
8595}
8596unsafe extern "C" {
8597    pub static ASN1_UTCTIME_it: ASN1_ITEM;
8598}
8599unsafe extern "C" {
8600    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::core::ffi::c_int;
8601}
8602unsafe extern "C" {
8603    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, posix_time: i64) -> *mut ASN1_UTCTIME;
8604}
8605unsafe extern "C" {
8606    pub fn ASN1_UTCTIME_adj(
8607        s: *mut ASN1_UTCTIME,
8608        posix_time: i64,
8609        offset_day: ::core::ffi::c_int,
8610        offset_sec: ::core::ffi::c_long,
8611    ) -> *mut ASN1_UTCTIME;
8612}
8613unsafe extern "C" {
8614    pub fn ASN1_UTCTIME_set_string(
8615        s: *mut ASN1_UTCTIME,
8616        str_: *const ::core::ffi::c_char,
8617    ) -> ::core::ffi::c_int;
8618}
8619unsafe extern "C" {
8620    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
8621}
8622unsafe extern "C" {
8623    pub fn ASN1_GENERALIZEDTIME_free(str_: *mut ASN1_GENERALIZEDTIME);
8624}
8625unsafe extern "C" {
8626    pub fn d2i_ASN1_GENERALIZEDTIME(
8627        out: *mut *mut ASN1_GENERALIZEDTIME,
8628        inp: *mut *const u8,
8629        len: ::core::ffi::c_long,
8630    ) -> *mut ASN1_GENERALIZEDTIME;
8631}
8632unsafe extern "C" {
8633    pub fn i2d_ASN1_GENERALIZEDTIME(
8634        in_: *const ASN1_GENERALIZEDTIME,
8635        outp: *mut *mut u8,
8636    ) -> ::core::ffi::c_int;
8637}
8638unsafe extern "C" {
8639    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
8640}
8641unsafe extern "C" {
8642    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::core::ffi::c_int;
8643}
8644unsafe extern "C" {
8645    pub fn ASN1_GENERALIZEDTIME_set(
8646        s: *mut ASN1_GENERALIZEDTIME,
8647        posix_time: i64,
8648    ) -> *mut ASN1_GENERALIZEDTIME;
8649}
8650unsafe extern "C" {
8651    pub fn ASN1_GENERALIZEDTIME_adj(
8652        s: *mut ASN1_GENERALIZEDTIME,
8653        posix_time: i64,
8654        offset_day: ::core::ffi::c_int,
8655        offset_sec: ::core::ffi::c_long,
8656    ) -> *mut ASN1_GENERALIZEDTIME;
8657}
8658unsafe extern "C" {
8659    pub fn ASN1_GENERALIZEDTIME_set_string(
8660        s: *mut ASN1_GENERALIZEDTIME,
8661        str_: *const ::core::ffi::c_char,
8662    ) -> ::core::ffi::c_int;
8663}
8664unsafe extern "C" {
8665    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
8666}
8667unsafe extern "C" {
8668    pub fn ASN1_TIME_free(str_: *mut ASN1_TIME);
8669}
8670unsafe extern "C" {
8671    pub fn d2i_ASN1_TIME(
8672        out: *mut *mut ASN1_TIME,
8673        inp: *mut *const u8,
8674        len: ::core::ffi::c_long,
8675    ) -> *mut ASN1_TIME;
8676}
8677unsafe extern "C" {
8678    pub fn i2d_ASN1_TIME(in_: *const ASN1_TIME, outp: *mut *mut u8) -> ::core::ffi::c_int;
8679}
8680unsafe extern "C" {
8681    pub fn ASN1_TIME_diff(
8682        out_days: *mut ::core::ffi::c_int,
8683        out_seconds: *mut ::core::ffi::c_int,
8684        from: *const ASN1_TIME,
8685        to: *const ASN1_TIME,
8686    ) -> ::core::ffi::c_int;
8687}
8688unsafe extern "C" {
8689    pub fn ASN1_TIME_set_posix(s: *mut ASN1_TIME, posix_time: i64) -> *mut ASN1_TIME;
8690}
8691unsafe extern "C" {
8692    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, time: time_t) -> *mut ASN1_TIME;
8693}
8694unsafe extern "C" {
8695    pub fn ASN1_TIME_adj(
8696        s: *mut ASN1_TIME,
8697        posix_time: i64,
8698        offset_day: ::core::ffi::c_int,
8699        offset_sec: ::core::ffi::c_long,
8700    ) -> *mut ASN1_TIME;
8701}
8702unsafe extern "C" {
8703    pub fn ASN1_TIME_check(t: *const ASN1_TIME) -> ::core::ffi::c_int;
8704}
8705unsafe extern "C" {
8706    pub fn ASN1_TIME_to_generalizedtime(
8707        t: *const ASN1_TIME,
8708        out: *mut *mut ASN1_GENERALIZEDTIME,
8709    ) -> *mut ASN1_GENERALIZEDTIME;
8710}
8711unsafe extern "C" {
8712    pub fn ASN1_TIME_set_string(
8713        s: *mut ASN1_TIME,
8714        str_: *const ::core::ffi::c_char,
8715    ) -> ::core::ffi::c_int;
8716}
8717unsafe extern "C" {
8718    pub fn ASN1_TIME_set_string_X509(
8719        s: *mut ASN1_TIME,
8720        str_: *const ::core::ffi::c_char,
8721    ) -> ::core::ffi::c_int;
8722}
8723unsafe extern "C" {
8724    pub fn ASN1_TIME_to_time_t(t: *const ASN1_TIME, out: *mut time_t) -> ::core::ffi::c_int;
8725}
8726unsafe extern "C" {
8727    pub fn ASN1_TIME_to_posix(t: *const ASN1_TIME, out: *mut i64) -> ::core::ffi::c_int;
8728}
8729unsafe extern "C" {
8730    pub fn ASN1_TIME_to_posix_nonstandard(t: *const ASN1_TIME, out: *mut i64)
8731        -> ::core::ffi::c_int;
8732}
8733unsafe extern "C" {
8734    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
8735}
8736unsafe extern "C" {
8737    pub fn ASN1_NULL_free(null: *mut ASN1_NULL);
8738}
8739unsafe extern "C" {
8740    pub fn d2i_ASN1_NULL(
8741        out: *mut *mut ASN1_NULL,
8742        inp: *mut *const u8,
8743        len: ::core::ffi::c_long,
8744    ) -> *mut ASN1_NULL;
8745}
8746unsafe extern "C" {
8747    pub fn i2d_ASN1_NULL(in_: *const ASN1_NULL, outp: *mut *mut u8) -> ::core::ffi::c_int;
8748}
8749unsafe extern "C" {
8750    pub static ASN1_NULL_it: ASN1_ITEM;
8751}
8752#[repr(C)]
8753#[derive(Debug)]
8754pub struct stack_st_ASN1_OBJECT {
8755    _unused: [u8; 0],
8756}
8757pub type sk_ASN1_OBJECT_free_func =
8758    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_OBJECT)>;
8759pub type sk_ASN1_OBJECT_copy_func =
8760    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_OBJECT) -> *mut ASN1_OBJECT>;
8761pub type sk_ASN1_OBJECT_cmp_func = ::core::option::Option<
8762    unsafe extern "C" fn(
8763        arg1: *const *const ASN1_OBJECT,
8764        arg2: *const *const ASN1_OBJECT,
8765    ) -> ::core::ffi::c_int,
8766>;
8767pub type sk_ASN1_OBJECT_delete_if_func = ::core::option::Option<
8768    unsafe extern "C" fn(
8769        arg1: *mut ASN1_OBJECT,
8770        arg2: *mut ::core::ffi::c_void,
8771    ) -> ::core::ffi::c_int,
8772>;
8773unsafe extern "C" {
8774    #[link_name = "sk_ASN1_OBJECT_call_free_func__extern"]
8775    pub fn sk_ASN1_OBJECT_call_free_func(
8776        free_func: OPENSSL_sk_free_func,
8777        ptr: *mut ::core::ffi::c_void,
8778    );
8779}
8780unsafe extern "C" {
8781    #[link_name = "sk_ASN1_OBJECT_call_copy_func__extern"]
8782    pub fn sk_ASN1_OBJECT_call_copy_func(
8783        copy_func: OPENSSL_sk_copy_func,
8784        ptr: *const ::core::ffi::c_void,
8785    ) -> *mut ::core::ffi::c_void;
8786}
8787unsafe extern "C" {
8788    #[link_name = "sk_ASN1_OBJECT_call_cmp_func__extern"]
8789    pub fn sk_ASN1_OBJECT_call_cmp_func(
8790        cmp_func: OPENSSL_sk_cmp_func,
8791        a: *const ::core::ffi::c_void,
8792        b: *const ::core::ffi::c_void,
8793    ) -> ::core::ffi::c_int;
8794}
8795unsafe extern "C" {
8796    #[link_name = "sk_ASN1_OBJECT_call_delete_if_func__extern"]
8797    pub fn sk_ASN1_OBJECT_call_delete_if_func(
8798        func: OPENSSL_sk_delete_if_func,
8799        obj: *mut ::core::ffi::c_void,
8800        data: *mut ::core::ffi::c_void,
8801    ) -> ::core::ffi::c_int;
8802}
8803unsafe extern "C" {
8804    #[link_name = "sk_ASN1_OBJECT_new__extern"]
8805    pub fn sk_ASN1_OBJECT_new(comp: sk_ASN1_OBJECT_cmp_func) -> *mut stack_st_ASN1_OBJECT;
8806}
8807unsafe extern "C" {
8808    #[link_name = "sk_ASN1_OBJECT_new_null__extern"]
8809    pub fn sk_ASN1_OBJECT_new_null() -> *mut stack_st_ASN1_OBJECT;
8810}
8811unsafe extern "C" {
8812    #[link_name = "sk_ASN1_OBJECT_num__extern"]
8813    pub fn sk_ASN1_OBJECT_num(sk: *const stack_st_ASN1_OBJECT) -> usize;
8814}
8815unsafe extern "C" {
8816    #[link_name = "sk_ASN1_OBJECT_zero__extern"]
8817    pub fn sk_ASN1_OBJECT_zero(sk: *mut stack_st_ASN1_OBJECT);
8818}
8819unsafe extern "C" {
8820    #[link_name = "sk_ASN1_OBJECT_value__extern"]
8821    pub fn sk_ASN1_OBJECT_value(sk: *const stack_st_ASN1_OBJECT, i: usize) -> *mut ASN1_OBJECT;
8822}
8823unsafe extern "C" {
8824    #[link_name = "sk_ASN1_OBJECT_set__extern"]
8825    pub fn sk_ASN1_OBJECT_set(
8826        sk: *mut stack_st_ASN1_OBJECT,
8827        i: usize,
8828        p: *mut ASN1_OBJECT,
8829    ) -> *mut ASN1_OBJECT;
8830}
8831unsafe extern "C" {
8832    #[link_name = "sk_ASN1_OBJECT_free__extern"]
8833    pub fn sk_ASN1_OBJECT_free(sk: *mut stack_st_ASN1_OBJECT);
8834}
8835unsafe extern "C" {
8836    #[link_name = "sk_ASN1_OBJECT_pop_free__extern"]
8837    pub fn sk_ASN1_OBJECT_pop_free(
8838        sk: *mut stack_st_ASN1_OBJECT,
8839        free_func: sk_ASN1_OBJECT_free_func,
8840    );
8841}
8842unsafe extern "C" {
8843    #[link_name = "sk_ASN1_OBJECT_insert__extern"]
8844    pub fn sk_ASN1_OBJECT_insert(
8845        sk: *mut stack_st_ASN1_OBJECT,
8846        p: *mut ASN1_OBJECT,
8847        where_: usize,
8848    ) -> usize;
8849}
8850unsafe extern "C" {
8851    #[link_name = "sk_ASN1_OBJECT_delete__extern"]
8852    pub fn sk_ASN1_OBJECT_delete(sk: *mut stack_st_ASN1_OBJECT, where_: usize) -> *mut ASN1_OBJECT;
8853}
8854unsafe extern "C" {
8855    #[link_name = "sk_ASN1_OBJECT_delete_ptr__extern"]
8856    pub fn sk_ASN1_OBJECT_delete_ptr(
8857        sk: *mut stack_st_ASN1_OBJECT,
8858        p: *const ASN1_OBJECT,
8859    ) -> *mut ASN1_OBJECT;
8860}
8861unsafe extern "C" {
8862    #[link_name = "sk_ASN1_OBJECT_delete_if__extern"]
8863    pub fn sk_ASN1_OBJECT_delete_if(
8864        sk: *mut stack_st_ASN1_OBJECT,
8865        func: sk_ASN1_OBJECT_delete_if_func,
8866        data: *mut ::core::ffi::c_void,
8867    );
8868}
8869unsafe extern "C" {
8870    #[link_name = "sk_ASN1_OBJECT_find__extern"]
8871    pub fn sk_ASN1_OBJECT_find(
8872        sk: *const stack_st_ASN1_OBJECT,
8873        out_index: *mut usize,
8874        p: *const ASN1_OBJECT,
8875    ) -> ::core::ffi::c_int;
8876}
8877unsafe extern "C" {
8878    #[link_name = "sk_ASN1_OBJECT_shift__extern"]
8879    pub fn sk_ASN1_OBJECT_shift(sk: *mut stack_st_ASN1_OBJECT) -> *mut ASN1_OBJECT;
8880}
8881unsafe extern "C" {
8882    #[link_name = "sk_ASN1_OBJECT_push__extern"]
8883    pub fn sk_ASN1_OBJECT_push(sk: *mut stack_st_ASN1_OBJECT, p: *mut ASN1_OBJECT) -> usize;
8884}
8885unsafe extern "C" {
8886    #[link_name = "sk_ASN1_OBJECT_pop__extern"]
8887    pub fn sk_ASN1_OBJECT_pop(sk: *mut stack_st_ASN1_OBJECT) -> *mut ASN1_OBJECT;
8888}
8889unsafe extern "C" {
8890    #[link_name = "sk_ASN1_OBJECT_dup__extern"]
8891    pub fn sk_ASN1_OBJECT_dup(sk: *const stack_st_ASN1_OBJECT) -> *mut stack_st_ASN1_OBJECT;
8892}
8893unsafe extern "C" {
8894    #[link_name = "sk_ASN1_OBJECT_sort__extern"]
8895    pub fn sk_ASN1_OBJECT_sort(sk: *mut stack_st_ASN1_OBJECT);
8896}
8897unsafe extern "C" {
8898    #[link_name = "sk_ASN1_OBJECT_sort_and_dedup__extern"]
8899    pub fn sk_ASN1_OBJECT_sort_and_dedup(
8900        sk: *mut stack_st_ASN1_OBJECT,
8901        free_func: sk_ASN1_OBJECT_free_func,
8902    );
8903}
8904unsafe extern "C" {
8905    #[link_name = "sk_ASN1_OBJECT_is_sorted__extern"]
8906    pub fn sk_ASN1_OBJECT_is_sorted(sk: *const stack_st_ASN1_OBJECT) -> ::core::ffi::c_int;
8907}
8908unsafe extern "C" {
8909    #[link_name = "sk_ASN1_OBJECT_set_cmp_func__extern"]
8910    pub fn sk_ASN1_OBJECT_set_cmp_func(
8911        sk: *mut stack_st_ASN1_OBJECT,
8912        comp: sk_ASN1_OBJECT_cmp_func,
8913    ) -> sk_ASN1_OBJECT_cmp_func;
8914}
8915unsafe extern "C" {
8916    #[link_name = "sk_ASN1_OBJECT_deep_copy__extern"]
8917    pub fn sk_ASN1_OBJECT_deep_copy(
8918        sk: *const stack_st_ASN1_OBJECT,
8919        copy_func: sk_ASN1_OBJECT_copy_func,
8920        free_func: sk_ASN1_OBJECT_free_func,
8921    ) -> *mut stack_st_ASN1_OBJECT;
8922}
8923unsafe extern "C" {
8924    pub fn ASN1_OBJECT_create(
8925        nid: ::core::ffi::c_int,
8926        data: *const u8,
8927        len: usize,
8928        sn: *const ::core::ffi::c_char,
8929        ln: *const ::core::ffi::c_char,
8930    ) -> *mut ASN1_OBJECT;
8931}
8932unsafe extern "C" {
8933    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
8934}
8935unsafe extern "C" {
8936    pub fn d2i_ASN1_OBJECT(
8937        out: *mut *mut ASN1_OBJECT,
8938        inp: *mut *const u8,
8939        len: ::core::ffi::c_long,
8940    ) -> *mut ASN1_OBJECT;
8941}
8942unsafe extern "C" {
8943    pub fn i2d_ASN1_OBJECT(in_: *const ASN1_OBJECT, outp: *mut *mut u8) -> ::core::ffi::c_int;
8944}
8945unsafe extern "C" {
8946    pub fn c2i_ASN1_OBJECT(
8947        out: *mut *mut ASN1_OBJECT,
8948        inp: *mut *const u8,
8949        len: ::core::ffi::c_long,
8950    ) -> *mut ASN1_OBJECT;
8951}
8952unsafe extern "C" {
8953    pub static ASN1_OBJECT_it: ASN1_ITEM;
8954}
8955#[repr(C)]
8956#[derive(Copy, Clone)]
8957pub struct asn1_type_st {
8958    pub type_: ::core::ffi::c_int,
8959    pub value: asn1_type_st__bindgen_ty_1,
8960}
8961#[repr(C)]
8962#[derive(Copy, Clone)]
8963pub union asn1_type_st__bindgen_ty_1 {
8964    pub ptr: *mut ::core::ffi::c_char,
8965    pub boolean: ASN1_BOOLEAN,
8966    pub asn1_string: *mut ASN1_STRING,
8967    pub object: *mut ASN1_OBJECT,
8968    pub integer: *mut ASN1_INTEGER,
8969    pub enumerated: *mut ASN1_ENUMERATED,
8970    pub bit_string: *mut ASN1_BIT_STRING,
8971    pub octet_string: *mut ASN1_OCTET_STRING,
8972    pub printablestring: *mut ASN1_PRINTABLESTRING,
8973    pub t61string: *mut ASN1_T61STRING,
8974    pub ia5string: *mut ASN1_IA5STRING,
8975    pub generalstring: *mut ASN1_GENERALSTRING,
8976    pub bmpstring: *mut ASN1_BMPSTRING,
8977    pub universalstring: *mut ASN1_UNIVERSALSTRING,
8978    pub utctime: *mut ASN1_UTCTIME,
8979    pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
8980    pub visiblestring: *mut ASN1_VISIBLESTRING,
8981    pub utf8string: *mut ASN1_UTF8STRING,
8982    pub set: *mut ASN1_STRING,
8983    pub sequence: *mut ASN1_STRING,
8984    pub asn1_value: *mut ASN1_VALUE,
8985}
8986#[repr(C)]
8987#[derive(Debug)]
8988pub struct stack_st_ASN1_TYPE {
8989    _unused: [u8; 0],
8990}
8991pub type sk_ASN1_TYPE_free_func =
8992    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_TYPE)>;
8993pub type sk_ASN1_TYPE_copy_func =
8994    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_TYPE) -> *mut ASN1_TYPE>;
8995pub type sk_ASN1_TYPE_cmp_func = ::core::option::Option<
8996    unsafe extern "C" fn(
8997        arg1: *const *const ASN1_TYPE,
8998        arg2: *const *const ASN1_TYPE,
8999    ) -> ::core::ffi::c_int,
9000>;
9001pub type sk_ASN1_TYPE_delete_if_func = ::core::option::Option<
9002    unsafe extern "C" fn(
9003        arg1: *mut ASN1_TYPE,
9004        arg2: *mut ::core::ffi::c_void,
9005    ) -> ::core::ffi::c_int,
9006>;
9007unsafe extern "C" {
9008    #[link_name = "sk_ASN1_TYPE_call_free_func__extern"]
9009    pub fn sk_ASN1_TYPE_call_free_func(
9010        free_func: OPENSSL_sk_free_func,
9011        ptr: *mut ::core::ffi::c_void,
9012    );
9013}
9014unsafe extern "C" {
9015    #[link_name = "sk_ASN1_TYPE_call_copy_func__extern"]
9016    pub fn sk_ASN1_TYPE_call_copy_func(
9017        copy_func: OPENSSL_sk_copy_func,
9018        ptr: *const ::core::ffi::c_void,
9019    ) -> *mut ::core::ffi::c_void;
9020}
9021unsafe extern "C" {
9022    #[link_name = "sk_ASN1_TYPE_call_cmp_func__extern"]
9023    pub fn sk_ASN1_TYPE_call_cmp_func(
9024        cmp_func: OPENSSL_sk_cmp_func,
9025        a: *const ::core::ffi::c_void,
9026        b: *const ::core::ffi::c_void,
9027    ) -> ::core::ffi::c_int;
9028}
9029unsafe extern "C" {
9030    #[link_name = "sk_ASN1_TYPE_call_delete_if_func__extern"]
9031    pub fn sk_ASN1_TYPE_call_delete_if_func(
9032        func: OPENSSL_sk_delete_if_func,
9033        obj: *mut ::core::ffi::c_void,
9034        data: *mut ::core::ffi::c_void,
9035    ) -> ::core::ffi::c_int;
9036}
9037unsafe extern "C" {
9038    #[link_name = "sk_ASN1_TYPE_new__extern"]
9039    pub fn sk_ASN1_TYPE_new(comp: sk_ASN1_TYPE_cmp_func) -> *mut stack_st_ASN1_TYPE;
9040}
9041unsafe extern "C" {
9042    #[link_name = "sk_ASN1_TYPE_new_null__extern"]
9043    pub fn sk_ASN1_TYPE_new_null() -> *mut stack_st_ASN1_TYPE;
9044}
9045unsafe extern "C" {
9046    #[link_name = "sk_ASN1_TYPE_num__extern"]
9047    pub fn sk_ASN1_TYPE_num(sk: *const stack_st_ASN1_TYPE) -> usize;
9048}
9049unsafe extern "C" {
9050    #[link_name = "sk_ASN1_TYPE_zero__extern"]
9051    pub fn sk_ASN1_TYPE_zero(sk: *mut stack_st_ASN1_TYPE);
9052}
9053unsafe extern "C" {
9054    #[link_name = "sk_ASN1_TYPE_value__extern"]
9055    pub fn sk_ASN1_TYPE_value(sk: *const stack_st_ASN1_TYPE, i: usize) -> *mut ASN1_TYPE;
9056}
9057unsafe extern "C" {
9058    #[link_name = "sk_ASN1_TYPE_set__extern"]
9059    pub fn sk_ASN1_TYPE_set(
9060        sk: *mut stack_st_ASN1_TYPE,
9061        i: usize,
9062        p: *mut ASN1_TYPE,
9063    ) -> *mut ASN1_TYPE;
9064}
9065unsafe extern "C" {
9066    #[link_name = "sk_ASN1_TYPE_free__extern"]
9067    pub fn sk_ASN1_TYPE_free(sk: *mut stack_st_ASN1_TYPE);
9068}
9069unsafe extern "C" {
9070    #[link_name = "sk_ASN1_TYPE_pop_free__extern"]
9071    pub fn sk_ASN1_TYPE_pop_free(sk: *mut stack_st_ASN1_TYPE, free_func: sk_ASN1_TYPE_free_func);
9072}
9073unsafe extern "C" {
9074    #[link_name = "sk_ASN1_TYPE_insert__extern"]
9075    pub fn sk_ASN1_TYPE_insert(
9076        sk: *mut stack_st_ASN1_TYPE,
9077        p: *mut ASN1_TYPE,
9078        where_: usize,
9079    ) -> usize;
9080}
9081unsafe extern "C" {
9082    #[link_name = "sk_ASN1_TYPE_delete__extern"]
9083    pub fn sk_ASN1_TYPE_delete(sk: *mut stack_st_ASN1_TYPE, where_: usize) -> *mut ASN1_TYPE;
9084}
9085unsafe extern "C" {
9086    #[link_name = "sk_ASN1_TYPE_delete_ptr__extern"]
9087    pub fn sk_ASN1_TYPE_delete_ptr(
9088        sk: *mut stack_st_ASN1_TYPE,
9089        p: *const ASN1_TYPE,
9090    ) -> *mut ASN1_TYPE;
9091}
9092unsafe extern "C" {
9093    #[link_name = "sk_ASN1_TYPE_delete_if__extern"]
9094    pub fn sk_ASN1_TYPE_delete_if(
9095        sk: *mut stack_st_ASN1_TYPE,
9096        func: sk_ASN1_TYPE_delete_if_func,
9097        data: *mut ::core::ffi::c_void,
9098    );
9099}
9100unsafe extern "C" {
9101    #[link_name = "sk_ASN1_TYPE_find__extern"]
9102    pub fn sk_ASN1_TYPE_find(
9103        sk: *const stack_st_ASN1_TYPE,
9104        out_index: *mut usize,
9105        p: *const ASN1_TYPE,
9106    ) -> ::core::ffi::c_int;
9107}
9108unsafe extern "C" {
9109    #[link_name = "sk_ASN1_TYPE_shift__extern"]
9110    pub fn sk_ASN1_TYPE_shift(sk: *mut stack_st_ASN1_TYPE) -> *mut ASN1_TYPE;
9111}
9112unsafe extern "C" {
9113    #[link_name = "sk_ASN1_TYPE_push__extern"]
9114    pub fn sk_ASN1_TYPE_push(sk: *mut stack_st_ASN1_TYPE, p: *mut ASN1_TYPE) -> usize;
9115}
9116unsafe extern "C" {
9117    #[link_name = "sk_ASN1_TYPE_pop__extern"]
9118    pub fn sk_ASN1_TYPE_pop(sk: *mut stack_st_ASN1_TYPE) -> *mut ASN1_TYPE;
9119}
9120unsafe extern "C" {
9121    #[link_name = "sk_ASN1_TYPE_dup__extern"]
9122    pub fn sk_ASN1_TYPE_dup(sk: *const stack_st_ASN1_TYPE) -> *mut stack_st_ASN1_TYPE;
9123}
9124unsafe extern "C" {
9125    #[link_name = "sk_ASN1_TYPE_sort__extern"]
9126    pub fn sk_ASN1_TYPE_sort(sk: *mut stack_st_ASN1_TYPE);
9127}
9128unsafe extern "C" {
9129    #[link_name = "sk_ASN1_TYPE_sort_and_dedup__extern"]
9130    pub fn sk_ASN1_TYPE_sort_and_dedup(
9131        sk: *mut stack_st_ASN1_TYPE,
9132        free_func: sk_ASN1_TYPE_free_func,
9133    );
9134}
9135unsafe extern "C" {
9136    #[link_name = "sk_ASN1_TYPE_is_sorted__extern"]
9137    pub fn sk_ASN1_TYPE_is_sorted(sk: *const stack_st_ASN1_TYPE) -> ::core::ffi::c_int;
9138}
9139unsafe extern "C" {
9140    #[link_name = "sk_ASN1_TYPE_set_cmp_func__extern"]
9141    pub fn sk_ASN1_TYPE_set_cmp_func(
9142        sk: *mut stack_st_ASN1_TYPE,
9143        comp: sk_ASN1_TYPE_cmp_func,
9144    ) -> sk_ASN1_TYPE_cmp_func;
9145}
9146unsafe extern "C" {
9147    #[link_name = "sk_ASN1_TYPE_deep_copy__extern"]
9148    pub fn sk_ASN1_TYPE_deep_copy(
9149        sk: *const stack_st_ASN1_TYPE,
9150        copy_func: sk_ASN1_TYPE_copy_func,
9151        free_func: sk_ASN1_TYPE_free_func,
9152    ) -> *mut stack_st_ASN1_TYPE;
9153}
9154unsafe extern "C" {
9155    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
9156}
9157unsafe extern "C" {
9158    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
9159}
9160unsafe extern "C" {
9161    pub fn d2i_ASN1_TYPE(
9162        out: *mut *mut ASN1_TYPE,
9163        inp: *mut *const u8,
9164        len: ::core::ffi::c_long,
9165    ) -> *mut ASN1_TYPE;
9166}
9167unsafe extern "C" {
9168    pub fn i2d_ASN1_TYPE(in_: *const ASN1_TYPE, outp: *mut *mut u8) -> ::core::ffi::c_int;
9169}
9170unsafe extern "C" {
9171    pub static ASN1_ANY_it: ASN1_ITEM;
9172}
9173unsafe extern "C" {
9174    pub fn ASN1_TYPE_get(a: *const ASN1_TYPE) -> ::core::ffi::c_int;
9175}
9176unsafe extern "C" {
9177    pub fn ASN1_TYPE_set(
9178        a: *mut ASN1_TYPE,
9179        type_: ::core::ffi::c_int,
9180        value: *mut ::core::ffi::c_void,
9181    );
9182}
9183unsafe extern "C" {
9184    pub fn ASN1_TYPE_set1(
9185        a: *mut ASN1_TYPE,
9186        type_: ::core::ffi::c_int,
9187        value: *const ::core::ffi::c_void,
9188    ) -> ::core::ffi::c_int;
9189}
9190unsafe extern "C" {
9191    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::core::ffi::c_int;
9192}
9193pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
9194unsafe extern "C" {
9195    pub fn d2i_ASN1_SEQUENCE_ANY(
9196        out: *mut *mut ASN1_SEQUENCE_ANY,
9197        inp: *mut *const u8,
9198        len: ::core::ffi::c_long,
9199    ) -> *mut ASN1_SEQUENCE_ANY;
9200}
9201unsafe extern "C" {
9202    pub fn i2d_ASN1_SEQUENCE_ANY(
9203        in_: *const ASN1_SEQUENCE_ANY,
9204        outp: *mut *mut u8,
9205    ) -> ::core::ffi::c_int;
9206}
9207unsafe extern "C" {
9208    pub fn d2i_ASN1_SET_ANY(
9209        out: *mut *mut ASN1_SEQUENCE_ANY,
9210        inp: *mut *const u8,
9211        len: ::core::ffi::c_long,
9212    ) -> *mut ASN1_SEQUENCE_ANY;
9213}
9214unsafe extern "C" {
9215    pub fn i2d_ASN1_SET_ANY(
9216        in_: *const ASN1_SEQUENCE_ANY,
9217        outp: *mut *mut u8,
9218    ) -> ::core::ffi::c_int;
9219}
9220unsafe extern "C" {
9221    pub fn ASN1_UTCTIME_print(out: *mut BIO, a: *const ASN1_UTCTIME) -> ::core::ffi::c_int;
9222}
9223unsafe extern "C" {
9224    pub fn ASN1_GENERALIZEDTIME_print(
9225        out: *mut BIO,
9226        a: *const ASN1_GENERALIZEDTIME,
9227    ) -> ::core::ffi::c_int;
9228}
9229unsafe extern "C" {
9230    pub fn ASN1_TIME_print(out: *mut BIO, a: *const ASN1_TIME) -> ::core::ffi::c_int;
9231}
9232unsafe extern "C" {
9233    pub fn ASN1_STRING_print(out: *mut BIO, str_: *const ASN1_STRING) -> ::core::ffi::c_int;
9234}
9235unsafe extern "C" {
9236    pub fn ASN1_STRING_print_ex(
9237        out: *mut BIO,
9238        str_: *const ASN1_STRING,
9239        flags: ::core::ffi::c_ulong,
9240    ) -> ::core::ffi::c_int;
9241}
9242unsafe extern "C" {
9243    pub fn ASN1_STRING_print_ex_fp(
9244        fp: *mut FILE,
9245        str_: *const ASN1_STRING,
9246        flags: ::core::ffi::c_ulong,
9247    ) -> ::core::ffi::c_int;
9248}
9249unsafe extern "C" {
9250    pub fn i2a_ASN1_INTEGER(bp: *mut BIO, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
9251}
9252unsafe extern "C" {
9253    pub fn i2a_ASN1_ENUMERATED(bp: *mut BIO, a: *const ASN1_ENUMERATED) -> ::core::ffi::c_int;
9254}
9255unsafe extern "C" {
9256    pub fn i2a_ASN1_OBJECT(bp: *mut BIO, a: *const ASN1_OBJECT) -> ::core::ffi::c_int;
9257}
9258unsafe extern "C" {
9259    pub fn i2a_ASN1_STRING(
9260        bp: *mut BIO,
9261        a: *const ASN1_STRING,
9262        type_: ::core::ffi::c_int,
9263    ) -> ::core::ffi::c_int;
9264}
9265unsafe extern "C" {
9266    pub fn i2t_ASN1_OBJECT(
9267        buf: *mut ::core::ffi::c_char,
9268        buf_len: ::core::ffi::c_int,
9269        a: *const ASN1_OBJECT,
9270    ) -> ::core::ffi::c_int;
9271}
9272unsafe extern "C" {
9273    pub fn ASN1_get_object(
9274        inp: *mut *const ::core::ffi::c_uchar,
9275        out_length: *mut ::core::ffi::c_long,
9276        out_tag: *mut ::core::ffi::c_int,
9277        out_class: *mut ::core::ffi::c_int,
9278        max_len: ::core::ffi::c_long,
9279    ) -> ::core::ffi::c_int;
9280}
9281unsafe extern "C" {
9282    pub fn ASN1_put_object(
9283        outp: *mut *mut ::core::ffi::c_uchar,
9284        constructed: ::core::ffi::c_int,
9285        length: ::core::ffi::c_int,
9286        tag: ::core::ffi::c_int,
9287        xclass: ::core::ffi::c_int,
9288    );
9289}
9290unsafe extern "C" {
9291    pub fn ASN1_put_eoc(outp: *mut *mut ::core::ffi::c_uchar) -> ::core::ffi::c_int;
9292}
9293unsafe extern "C" {
9294    pub fn ASN1_object_size(
9295        constructed: ::core::ffi::c_int,
9296        length: ::core::ffi::c_int,
9297        tag: ::core::ffi::c_int,
9298    ) -> ::core::ffi::c_int;
9299}
9300unsafe extern "C" {
9301    pub fn ASN1_BIT_STRING_num_bytes(
9302        str_: *const ASN1_BIT_STRING,
9303        out: *mut usize,
9304    ) -> ::core::ffi::c_int;
9305}
9306unsafe extern "C" {
9307    pub fn ASN1_STRING_set_default_mask(mask: ::core::ffi::c_ulong);
9308}
9309unsafe extern "C" {
9310    pub fn ASN1_STRING_set_default_mask_asc(p: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
9311}
9312unsafe extern "C" {
9313    pub fn ASN1_STRING_get_default_mask() -> ::core::ffi::c_ulong;
9314}
9315unsafe extern "C" {
9316    pub fn ASN1_STRING_TABLE_cleanup();
9317}
9318unsafe extern "C" {
9319    pub fn ASN1_INTEGER_set(a: *mut ASN1_INTEGER, v: ::core::ffi::c_long) -> ::core::ffi::c_int;
9320}
9321unsafe extern "C" {
9322    pub fn ASN1_ENUMERATED_set(
9323        a: *mut ASN1_ENUMERATED,
9324        v: ::core::ffi::c_long,
9325    ) -> ::core::ffi::c_int;
9326}
9327unsafe extern "C" {
9328    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::core::ffi::c_long;
9329}
9330unsafe extern "C" {
9331    pub fn ASN1_ENUMERATED_get(a: *const ASN1_ENUMERATED) -> ::core::ffi::c_long;
9332}
9333pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
9334#[repr(C)]
9335#[derive(Debug)]
9336pub struct ASN1_TLC_st {
9337    _unused: [u8; 0],
9338}
9339pub type ASN1_TLC = ASN1_TLC_st;
9340#[repr(C)]
9341#[derive(Debug, Copy, Clone)]
9342pub struct ASN1_TEMPLATE_st {
9343    pub flags: u32,
9344    pub tag: ::core::ffi::c_int,
9345    pub offset: ::core::ffi::c_ulong,
9346    pub field_name: *const ::core::ffi::c_char,
9347    pub item: *const ASN1_ITEM_st,
9348}
9349pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st;
9350pub type ASN1_ADB = ASN1_ADB_st;
9351#[repr(C)]
9352#[derive(Debug, Copy, Clone)]
9353pub struct ASN1_ADB_st {
9354    pub flags: u32,
9355    pub offset: ::core::ffi::c_ulong,
9356    pub unused: *mut CRYPTO_MUST_BE_NULL,
9357    pub tbl: *const ASN1_ADB_TABLE,
9358    pub tblcount: ::core::ffi::c_long,
9359    pub default_tt: *const ASN1_TEMPLATE,
9360    pub null_tt: *const ASN1_TEMPLATE,
9361}
9362#[repr(C)]
9363#[derive(Debug, Copy, Clone)]
9364pub struct ASN1_ADB_TABLE_st {
9365    pub value: ::core::ffi::c_int,
9366    pub tt: ASN1_TEMPLATE,
9367}
9368#[repr(C)]
9369#[derive(Debug, Copy, Clone)]
9370pub struct ASN1_ITEM_st {
9371    pub itype: ::core::ffi::c_char,
9372    pub utype: ::core::ffi::c_int,
9373    pub templates: *const ASN1_TEMPLATE,
9374    pub tcount: ::core::ffi::c_long,
9375    pub funcs: *const ::core::ffi::c_void,
9376    pub size: ::core::ffi::c_long,
9377    pub sname: *const ::core::ffi::c_char,
9378}
9379pub type ASN1_aux_cb = ::core::option::Option<
9380    unsafe extern "C" fn(
9381        operation: ::core::ffi::c_int,
9382        in_: *mut *mut ASN1_VALUE,
9383        it: *const ASN1_ITEM,
9384        exarg: *mut ::core::ffi::c_void,
9385    ) -> ::core::ffi::c_int,
9386>;
9387#[repr(C)]
9388#[derive(Debug, Copy, Clone)]
9389pub struct ASN1_AUX_st {
9390    pub app_data: *mut ::core::ffi::c_void,
9391    pub flags: u32,
9392    pub ref_offset: ::core::ffi::c_int,
9393    pub asn1_cb: ASN1_aux_cb,
9394    pub enc_offset: ::core::ffi::c_int,
9395}
9396pub type ASN1_AUX = ASN1_AUX_st;
9397unsafe extern "C" {
9398    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
9399}
9400#[repr(C)]
9401#[derive(Debug)]
9402pub struct stack_st_ASN1_VALUE {
9403    _unused: [u8; 0],
9404}
9405pub type sk_ASN1_VALUE_free_func =
9406    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_VALUE)>;
9407pub type sk_ASN1_VALUE_copy_func =
9408    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_VALUE) -> *mut ASN1_VALUE>;
9409pub type sk_ASN1_VALUE_cmp_func = ::core::option::Option<
9410    unsafe extern "C" fn(
9411        arg1: *const *const ASN1_VALUE,
9412        arg2: *const *const ASN1_VALUE,
9413    ) -> ::core::ffi::c_int,
9414>;
9415pub type sk_ASN1_VALUE_delete_if_func = ::core::option::Option<
9416    unsafe extern "C" fn(
9417        arg1: *mut ASN1_VALUE,
9418        arg2: *mut ::core::ffi::c_void,
9419    ) -> ::core::ffi::c_int,
9420>;
9421unsafe extern "C" {
9422    #[link_name = "sk_ASN1_VALUE_call_free_func__extern"]
9423    pub fn sk_ASN1_VALUE_call_free_func(
9424        free_func: OPENSSL_sk_free_func,
9425        ptr: *mut ::core::ffi::c_void,
9426    );
9427}
9428unsafe extern "C" {
9429    #[link_name = "sk_ASN1_VALUE_call_copy_func__extern"]
9430    pub fn sk_ASN1_VALUE_call_copy_func(
9431        copy_func: OPENSSL_sk_copy_func,
9432        ptr: *const ::core::ffi::c_void,
9433    ) -> *mut ::core::ffi::c_void;
9434}
9435unsafe extern "C" {
9436    #[link_name = "sk_ASN1_VALUE_call_cmp_func__extern"]
9437    pub fn sk_ASN1_VALUE_call_cmp_func(
9438        cmp_func: OPENSSL_sk_cmp_func,
9439        a: *const ::core::ffi::c_void,
9440        b: *const ::core::ffi::c_void,
9441    ) -> ::core::ffi::c_int;
9442}
9443unsafe extern "C" {
9444    #[link_name = "sk_ASN1_VALUE_call_delete_if_func__extern"]
9445    pub fn sk_ASN1_VALUE_call_delete_if_func(
9446        func: OPENSSL_sk_delete_if_func,
9447        obj: *mut ::core::ffi::c_void,
9448        data: *mut ::core::ffi::c_void,
9449    ) -> ::core::ffi::c_int;
9450}
9451unsafe extern "C" {
9452    #[link_name = "sk_ASN1_VALUE_new__extern"]
9453    pub fn sk_ASN1_VALUE_new(comp: sk_ASN1_VALUE_cmp_func) -> *mut stack_st_ASN1_VALUE;
9454}
9455unsafe extern "C" {
9456    #[link_name = "sk_ASN1_VALUE_new_null__extern"]
9457    pub fn sk_ASN1_VALUE_new_null() -> *mut stack_st_ASN1_VALUE;
9458}
9459unsafe extern "C" {
9460    #[link_name = "sk_ASN1_VALUE_num__extern"]
9461    pub fn sk_ASN1_VALUE_num(sk: *const stack_st_ASN1_VALUE) -> usize;
9462}
9463unsafe extern "C" {
9464    #[link_name = "sk_ASN1_VALUE_zero__extern"]
9465    pub fn sk_ASN1_VALUE_zero(sk: *mut stack_st_ASN1_VALUE);
9466}
9467unsafe extern "C" {
9468    #[link_name = "sk_ASN1_VALUE_value__extern"]
9469    pub fn sk_ASN1_VALUE_value(sk: *const stack_st_ASN1_VALUE, i: usize) -> *mut ASN1_VALUE;
9470}
9471unsafe extern "C" {
9472    #[link_name = "sk_ASN1_VALUE_set__extern"]
9473    pub fn sk_ASN1_VALUE_set(
9474        sk: *mut stack_st_ASN1_VALUE,
9475        i: usize,
9476        p: *mut ASN1_VALUE,
9477    ) -> *mut ASN1_VALUE;
9478}
9479unsafe extern "C" {
9480    #[link_name = "sk_ASN1_VALUE_free__extern"]
9481    pub fn sk_ASN1_VALUE_free(sk: *mut stack_st_ASN1_VALUE);
9482}
9483unsafe extern "C" {
9484    #[link_name = "sk_ASN1_VALUE_pop_free__extern"]
9485    pub fn sk_ASN1_VALUE_pop_free(sk: *mut stack_st_ASN1_VALUE, free_func: sk_ASN1_VALUE_free_func);
9486}
9487unsafe extern "C" {
9488    #[link_name = "sk_ASN1_VALUE_insert__extern"]
9489    pub fn sk_ASN1_VALUE_insert(
9490        sk: *mut stack_st_ASN1_VALUE,
9491        p: *mut ASN1_VALUE,
9492        where_: usize,
9493    ) -> usize;
9494}
9495unsafe extern "C" {
9496    #[link_name = "sk_ASN1_VALUE_delete__extern"]
9497    pub fn sk_ASN1_VALUE_delete(sk: *mut stack_st_ASN1_VALUE, where_: usize) -> *mut ASN1_VALUE;
9498}
9499unsafe extern "C" {
9500    #[link_name = "sk_ASN1_VALUE_delete_ptr__extern"]
9501    pub fn sk_ASN1_VALUE_delete_ptr(
9502        sk: *mut stack_st_ASN1_VALUE,
9503        p: *const ASN1_VALUE,
9504    ) -> *mut ASN1_VALUE;
9505}
9506unsafe extern "C" {
9507    #[link_name = "sk_ASN1_VALUE_delete_if__extern"]
9508    pub fn sk_ASN1_VALUE_delete_if(
9509        sk: *mut stack_st_ASN1_VALUE,
9510        func: sk_ASN1_VALUE_delete_if_func,
9511        data: *mut ::core::ffi::c_void,
9512    );
9513}
9514unsafe extern "C" {
9515    #[link_name = "sk_ASN1_VALUE_find__extern"]
9516    pub fn sk_ASN1_VALUE_find(
9517        sk: *const stack_st_ASN1_VALUE,
9518        out_index: *mut usize,
9519        p: *const ASN1_VALUE,
9520    ) -> ::core::ffi::c_int;
9521}
9522unsafe extern "C" {
9523    #[link_name = "sk_ASN1_VALUE_shift__extern"]
9524    pub fn sk_ASN1_VALUE_shift(sk: *mut stack_st_ASN1_VALUE) -> *mut ASN1_VALUE;
9525}
9526unsafe extern "C" {
9527    #[link_name = "sk_ASN1_VALUE_push__extern"]
9528    pub fn sk_ASN1_VALUE_push(sk: *mut stack_st_ASN1_VALUE, p: *mut ASN1_VALUE) -> usize;
9529}
9530unsafe extern "C" {
9531    #[link_name = "sk_ASN1_VALUE_pop__extern"]
9532    pub fn sk_ASN1_VALUE_pop(sk: *mut stack_st_ASN1_VALUE) -> *mut ASN1_VALUE;
9533}
9534unsafe extern "C" {
9535    #[link_name = "sk_ASN1_VALUE_dup__extern"]
9536    pub fn sk_ASN1_VALUE_dup(sk: *const stack_st_ASN1_VALUE) -> *mut stack_st_ASN1_VALUE;
9537}
9538unsafe extern "C" {
9539    #[link_name = "sk_ASN1_VALUE_sort__extern"]
9540    pub fn sk_ASN1_VALUE_sort(sk: *mut stack_st_ASN1_VALUE);
9541}
9542unsafe extern "C" {
9543    #[link_name = "sk_ASN1_VALUE_sort_and_dedup__extern"]
9544    pub fn sk_ASN1_VALUE_sort_and_dedup(
9545        sk: *mut stack_st_ASN1_VALUE,
9546        free_func: sk_ASN1_VALUE_free_func,
9547    );
9548}
9549unsafe extern "C" {
9550    #[link_name = "sk_ASN1_VALUE_is_sorted__extern"]
9551    pub fn sk_ASN1_VALUE_is_sorted(sk: *const stack_st_ASN1_VALUE) -> ::core::ffi::c_int;
9552}
9553unsafe extern "C" {
9554    #[link_name = "sk_ASN1_VALUE_set_cmp_func__extern"]
9555    pub fn sk_ASN1_VALUE_set_cmp_func(
9556        sk: *mut stack_st_ASN1_VALUE,
9557        comp: sk_ASN1_VALUE_cmp_func,
9558    ) -> sk_ASN1_VALUE_cmp_func;
9559}
9560unsafe extern "C" {
9561    #[link_name = "sk_ASN1_VALUE_deep_copy__extern"]
9562    pub fn sk_ASN1_VALUE_deep_copy(
9563        sk: *const stack_st_ASN1_VALUE,
9564        copy_func: sk_ASN1_VALUE_copy_func,
9565        free_func: sk_ASN1_VALUE_free_func,
9566    ) -> *mut stack_st_ASN1_VALUE;
9567}
9568unsafe extern "C" {
9569    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
9570}
9571unsafe extern "C" {
9572    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::core::ffi::c_int;
9573}
9574unsafe extern "C" {
9575    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::core::ffi::c_int;
9576}
9577unsafe extern "C" {
9578    pub fn EVP_DecodeBase64(
9579        out: *mut u8,
9580        out_len: *mut usize,
9581        max_out: usize,
9582        in_: *const u8,
9583        in_len: usize,
9584    ) -> ::core::ffi::c_int;
9585}
9586unsafe extern "C" {
9587    pub fn EVP_ENCODE_CTX_new() -> *mut EVP_ENCODE_CTX;
9588}
9589unsafe extern "C" {
9590    pub fn EVP_ENCODE_CTX_free(ctx: *mut EVP_ENCODE_CTX);
9591}
9592unsafe extern "C" {
9593    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
9594}
9595unsafe extern "C" {
9596    pub fn EVP_EncodeUpdate(
9597        ctx: *mut EVP_ENCODE_CTX,
9598        out: *mut u8,
9599        out_len: *mut ::core::ffi::c_int,
9600        in_: *const u8,
9601        in_len: usize,
9602    );
9603}
9604unsafe extern "C" {
9605    pub fn EVP_EncodeFinal(
9606        ctx: *mut EVP_ENCODE_CTX,
9607        out: *mut u8,
9608        out_len: *mut ::core::ffi::c_int,
9609    );
9610}
9611unsafe extern "C" {
9612    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
9613}
9614unsafe extern "C" {
9615    pub fn EVP_DecodeUpdate(
9616        ctx: *mut EVP_ENCODE_CTX,
9617        out: *mut u8,
9618        out_len: *mut ::core::ffi::c_int,
9619        in_: *const u8,
9620        in_len: usize,
9621    ) -> ::core::ffi::c_int;
9622}
9623unsafe extern "C" {
9624    pub fn EVP_DecodeFinal(
9625        ctx: *mut EVP_ENCODE_CTX,
9626        out: *mut u8,
9627        out_len: *mut ::core::ffi::c_int,
9628    ) -> ::core::ffi::c_int;
9629}
9630unsafe extern "C" {
9631    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::core::ffi::c_int;
9632}
9633#[repr(C)]
9634#[derive(Debug, Copy, Clone)]
9635pub struct evp_encode_ctx_st {
9636    pub data_used: ::core::ffi::c_uint,
9637    pub data: [u8; 48usize],
9638    pub eof_seen: ::core::ffi::c_char,
9639    pub error_encountered: ::core::ffi::c_char,
9640}
9641#[repr(C)]
9642#[derive(Debug, Copy, Clone)]
9643pub struct blake2b_state_st {
9644    pub h: [u64; 8usize],
9645    pub t_low: u64,
9646    pub t_high: u32,
9647    pub block_used: u32,
9648    pub block: [u8; 128usize],
9649}
9650unsafe extern "C" {
9651    pub fn BLAKE2B256_Init(b2b: *mut BLAKE2B_CTX);
9652}
9653unsafe extern "C" {
9654    pub fn BLAKE2B256_Update(b2b: *mut BLAKE2B_CTX, data: *const ::core::ffi::c_void, len: usize);
9655}
9656unsafe extern "C" {
9657    pub fn BLAKE2B256_Final(out: *mut u8, b2b: *mut BLAKE2B_CTX);
9658}
9659unsafe extern "C" {
9660    pub fn BLAKE2B256(data: *const u8, len: usize, out: *mut u8);
9661}
9662#[repr(C)]
9663#[derive(Debug, Copy, Clone)]
9664pub struct bf_key_st {
9665    pub P: [u32; 18usize],
9666    pub S: [u32; 1024usize],
9667}
9668pub type BF_KEY = bf_key_st;
9669unsafe extern "C" {
9670    pub fn BF_set_key(key: *mut BF_KEY, len: usize, data: *const u8);
9671}
9672unsafe extern "C" {
9673    pub fn BF_encrypt(data: *mut u32, key: *const BF_KEY);
9674}
9675unsafe extern "C" {
9676    pub fn BF_decrypt(data: *mut u32, key: *const BF_KEY);
9677}
9678unsafe extern "C" {
9679    pub fn BF_ecb_encrypt(
9680        in_: *const u8,
9681        out: *mut u8,
9682        key: *const BF_KEY,
9683        enc: ::core::ffi::c_int,
9684    );
9685}
9686unsafe extern "C" {
9687    pub fn BF_cbc_encrypt(
9688        in_: *const u8,
9689        out: *mut u8,
9690        length: usize,
9691        schedule: *const BF_KEY,
9692        ivec: *mut u8,
9693        enc: ::core::ffi::c_int,
9694    );
9695}
9696#[repr(C)]
9697#[derive(Debug, Copy, Clone)]
9698pub struct cbs_st {
9699    pub data: *const u8,
9700    pub len: usize,
9701}
9702unsafe extern "C" {
9703    #[link_name = "CBS_init__extern"]
9704    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
9705}
9706unsafe extern "C" {
9707    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::core::ffi::c_int;
9708}
9709unsafe extern "C" {
9710    #[link_name = "CBS_data__extern"]
9711    pub fn CBS_data(cbs: *const CBS) -> *const u8;
9712}
9713unsafe extern "C" {
9714    #[link_name = "CBS_len__extern"]
9715    pub fn CBS_len(cbs: *const CBS) -> usize;
9716}
9717unsafe extern "C" {
9718    pub fn CBS_stow(
9719        cbs: *const CBS,
9720        out_ptr: *mut *mut u8,
9721        out_len: *mut usize,
9722    ) -> ::core::ffi::c_int;
9723}
9724unsafe extern "C" {
9725    pub fn CBS_strdup(
9726        cbs: *const CBS,
9727        out_ptr: *mut *mut ::core::ffi::c_char,
9728    ) -> ::core::ffi::c_int;
9729}
9730unsafe extern "C" {
9731    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::core::ffi::c_int;
9732}
9733unsafe extern "C" {
9734    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::core::ffi::c_int;
9735}
9736unsafe extern "C" {
9737    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::core::ffi::c_int;
9738}
9739unsafe extern "C" {
9740    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::core::ffi::c_int;
9741}
9742unsafe extern "C" {
9743    pub fn CBS_get_u16le(cbs: *mut CBS, out: *mut u16) -> ::core::ffi::c_int;
9744}
9745unsafe extern "C" {
9746    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9747}
9748unsafe extern "C" {
9749    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9750}
9751unsafe extern "C" {
9752    pub fn CBS_get_u32le(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9753}
9754unsafe extern "C" {
9755    pub fn CBS_get_u48(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9756}
9757unsafe extern "C" {
9758    pub fn CBS_get_u64(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9759}
9760unsafe extern "C" {
9761    pub fn CBS_get_u64le(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9762}
9763unsafe extern "C" {
9764    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::core::ffi::c_int;
9765}
9766unsafe extern "C" {
9767    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::core::ffi::c_int;
9768}
9769unsafe extern "C" {
9770    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::core::ffi::c_int;
9771}
9772unsafe extern "C" {
9773    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9774}
9775unsafe extern "C" {
9776    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9777}
9778unsafe extern "C" {
9779    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9780}
9781unsafe extern "C" {
9782    pub fn CBS_get_until_first(cbs: *mut CBS, out: *mut CBS, c: u8) -> ::core::ffi::c_int;
9783}
9784unsafe extern "C" {
9785    pub fn CBS_get_until_first_of(
9786        cbs: *mut CBS,
9787        out: *mut CBS,
9788        chars: *const ::core::ffi::c_char,
9789    ) -> ::core::ffi::c_int;
9790}
9791unsafe extern "C" {
9792    pub fn CBS_get_until_first_not_of(
9793        cbs: *mut CBS,
9794        out: *mut CBS,
9795        chars: *const ::core::ffi::c_char,
9796    ) -> ::core::ffi::c_int;
9797}
9798unsafe extern "C" {
9799    pub fn CBS_get_u64_decimal(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9800}
9801unsafe extern "C" {
9802    pub fn CBS_get_asn1(
9803        cbs: *mut CBS,
9804        out: *mut CBS,
9805        tag_value: CBS_ASN1_TAG,
9806    ) -> ::core::ffi::c_int;
9807}
9808unsafe extern "C" {
9809    pub fn CBS_get_asn1_element(
9810        cbs: *mut CBS,
9811        out: *mut CBS,
9812        tag_value: CBS_ASN1_TAG,
9813    ) -> ::core::ffi::c_int;
9814}
9815unsafe extern "C" {
9816    pub fn CBS_peek_any_asn1_tag(cbs: *const CBS) -> CBS_ASN1_TAG;
9817}
9818unsafe extern "C" {
9819    pub fn CBS_peek_asn1_tag(cbs: *const CBS, tag_value: CBS_ASN1_TAG) -> ::core::ffi::c_int;
9820}
9821unsafe extern "C" {
9822    pub fn CBS_get_any_asn1(
9823        cbs: *mut CBS,
9824        out: *mut CBS,
9825        out_tag: *mut CBS_ASN1_TAG,
9826    ) -> ::core::ffi::c_int;
9827}
9828unsafe extern "C" {
9829    pub fn CBS_get_any_asn1_element(
9830        cbs: *mut CBS,
9831        out: *mut CBS,
9832        out_tag: *mut CBS_ASN1_TAG,
9833        out_header_len: *mut usize,
9834    ) -> ::core::ffi::c_int;
9835}
9836unsafe extern "C" {
9837    pub fn CBS_get_any_ber_asn1_element(
9838        cbs: *mut CBS,
9839        out: *mut CBS,
9840        out_tag: *mut CBS_ASN1_TAG,
9841        out_header_len: *mut usize,
9842        out_ber_found: *mut ::core::ffi::c_int,
9843        out_indefinite: *mut ::core::ffi::c_int,
9844    ) -> ::core::ffi::c_int;
9845}
9846unsafe extern "C" {
9847    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9848}
9849unsafe extern "C" {
9850    pub fn CBS_get_asn1_uint64_with_tag(
9851        cbs: *mut CBS,
9852        out: *mut u64,
9853        tag: CBS_ASN1_TAG,
9854    ) -> ::core::ffi::c_int;
9855}
9856unsafe extern "C" {
9857    pub fn CBS_get_asn1_int64(cbs: *mut CBS, out: *mut i64) -> ::core::ffi::c_int;
9858}
9859unsafe extern "C" {
9860    pub fn CBS_get_asn1_int64_with_tag(
9861        cbs: *mut CBS,
9862        out: *mut i64,
9863        tag: CBS_ASN1_TAG,
9864    ) -> ::core::ffi::c_int;
9865}
9866unsafe extern "C" {
9867    pub fn CBS_get_asn1_bool(cbs: *mut CBS, out: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
9868}
9869unsafe extern "C" {
9870    pub fn CBS_get_optional_asn1(
9871        cbs: *mut CBS,
9872        out: *mut CBS,
9873        out_present: *mut ::core::ffi::c_int,
9874        tag: CBS_ASN1_TAG,
9875    ) -> ::core::ffi::c_int;
9876}
9877unsafe extern "C" {
9878    pub fn CBS_get_optional_asn1_octet_string(
9879        cbs: *mut CBS,
9880        out: *mut CBS,
9881        out_present: *mut ::core::ffi::c_int,
9882        tag: CBS_ASN1_TAG,
9883    ) -> ::core::ffi::c_int;
9884}
9885unsafe extern "C" {
9886    pub fn CBS_get_optional_asn1_uint64(
9887        cbs: *mut CBS,
9888        out: *mut u64,
9889        tag: CBS_ASN1_TAG,
9890        default_value: u64,
9891    ) -> ::core::ffi::c_int;
9892}
9893unsafe extern "C" {
9894    pub fn CBS_get_optional_asn1_bool(
9895        cbs: *mut CBS,
9896        out: *mut ::core::ffi::c_int,
9897        tag: CBS_ASN1_TAG,
9898        default_value: ::core::ffi::c_int,
9899    ) -> ::core::ffi::c_int;
9900}
9901unsafe extern "C" {
9902    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::core::ffi::c_int;
9903}
9904unsafe extern "C" {
9905    pub fn CBS_asn1_bitstring_has_bit(
9906        cbs: *const CBS,
9907        bit: ::core::ffi::c_uint,
9908    ) -> ::core::ffi::c_int;
9909}
9910unsafe extern "C" {
9911    pub fn CBS_is_valid_asn1_integer(
9912        cbs: *const CBS,
9913        out_is_negative: *mut ::core::ffi::c_int,
9914    ) -> ::core::ffi::c_int;
9915}
9916unsafe extern "C" {
9917    pub fn CBS_is_unsigned_asn1_integer(cbs: *const CBS) -> ::core::ffi::c_int;
9918}
9919unsafe extern "C" {
9920    pub fn CBS_is_valid_asn1_oid(cbs: *const CBS) -> ::core::ffi::c_int;
9921}
9922unsafe extern "C" {
9923    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::core::ffi::c_char;
9924}
9925unsafe extern "C" {
9926    pub fn CBS_is_valid_asn1_relative_oid(cbs: *const CBS) -> ::core::ffi::c_int;
9927}
9928unsafe extern "C" {
9929    pub fn CBS_asn1_relative_oid_to_text(cbs: *const CBS) -> *mut ::core::ffi::c_char;
9930}
9931unsafe extern "C" {
9932    pub fn CBS_parse_generalized_time(
9933        cbs: *const CBS,
9934        out_tm: *mut tm,
9935        allow_timezone_offset: ::core::ffi::c_int,
9936    ) -> ::core::ffi::c_int;
9937}
9938unsafe extern "C" {
9939    pub fn CBS_parse_utc_time(
9940        cbs: *const CBS,
9941        out_tm: *mut tm,
9942        allow_timezone_offset: ::core::ffi::c_int,
9943    ) -> ::core::ffi::c_int;
9944}
9945#[repr(C)]
9946#[derive(Debug, Copy, Clone)]
9947pub struct cbb_buffer_st {
9948    pub buf: *mut u8,
9949    pub len: usize,
9950    pub cap: usize,
9951    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
9952    pub __bindgen_padding_0: [u8; 7usize],
9953}
9954impl cbb_buffer_st {
9955    #[inline]
9956    pub fn can_resize(&self) -> ::core::ffi::c_uint {
9957        self._bitfield_1.get_const::<0usize, 1u8>() as u32 as _
9958    }
9959    #[inline]
9960    pub fn set_can_resize(&mut self, val: ::core::ffi::c_uint) {
9961        let val: u32 = val as _;
9962        self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
9963    }
9964    #[inline]
9965    pub unsafe fn can_resize_raw(this: *const Self) -> ::core::ffi::c_uint {
9966        unsafe {
9967            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 1u8>(
9968                ::core::ptr::addr_of!((*this)._bitfield_1),
9969            ) as u32 as _
9970        }
9971    }
9972    #[inline]
9973    pub unsafe fn set_can_resize_raw(this: *mut Self, val: ::core::ffi::c_uint) {
9974        unsafe {
9975            let val: u32 = val as _;
9976            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 1u8>(
9977                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9978                val as u64,
9979            )
9980        }
9981    }
9982    #[inline]
9983    pub fn error(&self) -> ::core::ffi::c_uint {
9984        self._bitfield_1.get_const::<1usize, 1u8>() as u32 as _
9985    }
9986    #[inline]
9987    pub fn set_error(&mut self, val: ::core::ffi::c_uint) {
9988        let val: u32 = val as _;
9989        self._bitfield_1.set_const::<1usize, 1u8>(val as u64)
9990    }
9991    #[inline]
9992    pub unsafe fn error_raw(this: *const Self) -> ::core::ffi::c_uint {
9993        unsafe {
9994            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<1usize, 1u8>(
9995                ::core::ptr::addr_of!((*this)._bitfield_1),
9996            ) as u32 as _
9997        }
9998    }
9999    #[inline]
10000    pub unsafe fn set_error_raw(this: *mut Self, val: ::core::ffi::c_uint) {
10001        unsafe {
10002            let val: u32 = val as _;
10003            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<1usize, 1u8>(
10004                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10005                val as u64,
10006            )
10007        }
10008    }
10009    #[inline]
10010    pub fn new_bitfield_1(
10011        can_resize: ::core::ffi::c_uint,
10012        error: ::core::ffi::c_uint,
10013    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10014        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10015        __bindgen_bitfield_unit.set_const::<0usize, 1u8>({
10016            let can_resize: u32 = can_resize as _;
10017            can_resize as u64
10018        });
10019        __bindgen_bitfield_unit.set_const::<1usize, 1u8>({
10020            let error: u32 = error as _;
10021            error as u64
10022        });
10023        __bindgen_bitfield_unit
10024    }
10025}
10026#[repr(C)]
10027#[derive(Debug, Copy, Clone)]
10028pub struct cbb_child_st {
10029    pub base: *mut cbb_buffer_st,
10030    pub offset: usize,
10031    pub pending_len_len: u8,
10032    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
10033    pub __bindgen_padding_0: [u16; 3usize],
10034}
10035impl cbb_child_st {
10036    #[inline]
10037    pub fn pending_is_asn1(&self) -> ::core::ffi::c_uint {
10038        self._bitfield_1.get_const::<0usize, 1u8>() as u32 as _
10039    }
10040    #[inline]
10041    pub fn set_pending_is_asn1(&mut self, val: ::core::ffi::c_uint) {
10042        let val: u32 = val as _;
10043        self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
10044    }
10045    #[inline]
10046    pub unsafe fn pending_is_asn1_raw(this: *const Self) -> ::core::ffi::c_uint {
10047        unsafe {
10048            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 1u8>(
10049                ::core::ptr::addr_of!((*this)._bitfield_1),
10050            ) as u32 as _
10051        }
10052    }
10053    #[inline]
10054    pub unsafe fn set_pending_is_asn1_raw(this: *mut Self, val: ::core::ffi::c_uint) {
10055        unsafe {
10056            let val: u32 = val as _;
10057            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 1u8>(
10058                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10059                val as u64,
10060            )
10061        }
10062    }
10063    #[inline]
10064    pub fn new_bitfield_1(
10065        pending_is_asn1: ::core::ffi::c_uint,
10066    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10067        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10068        __bindgen_bitfield_unit.set_const::<0usize, 1u8>({
10069            let pending_is_asn1: u32 = pending_is_asn1 as _;
10070            pending_is_asn1 as u64
10071        });
10072        __bindgen_bitfield_unit
10073    }
10074}
10075#[repr(C)]
10076#[derive(Copy, Clone)]
10077pub struct cbb_st {
10078    pub child: *mut CBB,
10079    pub is_child: ::core::ffi::c_char,
10080    pub u: cbb_st__bindgen_ty_1,
10081}
10082#[repr(C)]
10083#[derive(Copy, Clone)]
10084pub union cbb_st__bindgen_ty_1 {
10085    pub base: cbb_buffer_st,
10086    pub child: cbb_child_st,
10087}
10088unsafe extern "C" {
10089    pub fn CBB_zero(cbb: *mut CBB);
10090}
10091unsafe extern "C" {
10092    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::core::ffi::c_int;
10093}
10094unsafe extern "C" {
10095    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::core::ffi::c_int;
10096}
10097unsafe extern "C" {
10098    pub fn CBB_cleanup(cbb: *mut CBB);
10099}
10100unsafe extern "C" {
10101    pub fn CBB_finish(
10102        cbb: *mut CBB,
10103        out_data: *mut *mut u8,
10104        out_len: *mut usize,
10105    ) -> ::core::ffi::c_int;
10106}
10107unsafe extern "C" {
10108    pub fn CBB_flush(cbb: *mut CBB) -> ::core::ffi::c_int;
10109}
10110unsafe extern "C" {
10111    pub fn CBB_data(cbb: *const CBB) -> *mut u8;
10112}
10113unsafe extern "C" {
10114    pub fn CBB_len(cbb: *const CBB) -> usize;
10115}
10116unsafe extern "C" {
10117    pub fn CBB_add_u8_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB) -> ::core::ffi::c_int;
10118}
10119unsafe extern "C" {
10120    pub fn CBB_add_u16_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB)
10121        -> ::core::ffi::c_int;
10122}
10123unsafe extern "C" {
10124    pub fn CBB_add_u24_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB)
10125        -> ::core::ffi::c_int;
10126}
10127unsafe extern "C" {
10128    pub fn CBB_add_asn1(
10129        cbb: *mut CBB,
10130        out_contents: *mut CBB,
10131        tag: CBS_ASN1_TAG,
10132    ) -> ::core::ffi::c_int;
10133}
10134unsafe extern "C" {
10135    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::core::ffi::c_int;
10136}
10137unsafe extern "C" {
10138    pub fn CBB_add_zeros(cbb: *mut CBB, len: usize) -> ::core::ffi::c_int;
10139}
10140unsafe extern "C" {
10141    pub fn CBB_add_space(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::core::ffi::c_int;
10142}
10143unsafe extern "C" {
10144    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::core::ffi::c_int;
10145}
10146unsafe extern "C" {
10147    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::core::ffi::c_int;
10148}
10149unsafe extern "C" {
10150    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::core::ffi::c_int;
10151}
10152unsafe extern "C" {
10153    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::core::ffi::c_int;
10154}
10155unsafe extern "C" {
10156    pub fn CBB_add_u16le(cbb: *mut CBB, value: u16) -> ::core::ffi::c_int;
10157}
10158unsafe extern "C" {
10159    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10160}
10161unsafe extern "C" {
10162    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10163}
10164unsafe extern "C" {
10165    pub fn CBB_add_u32le(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10166}
10167unsafe extern "C" {
10168    pub fn CBB_add_u64(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10169}
10170unsafe extern "C" {
10171    pub fn CBB_add_u64le(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10172}
10173unsafe extern "C" {
10174    pub fn CBB_discard(cbb: *mut CBB, len: usize);
10175}
10176unsafe extern "C" {
10177    pub fn CBB_discard_child(cbb: *mut CBB);
10178}
10179unsafe extern "C" {
10180    pub fn CBB_add_asn1_element(
10181        cbb: *mut CBB,
10182        tag: CBS_ASN1_TAG,
10183        data: *const u8,
10184        data_len: usize,
10185    ) -> ::core::ffi::c_int;
10186}
10187unsafe extern "C" {
10188    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10189}
10190unsafe extern "C" {
10191    pub fn CBB_add_asn1_uint64_with_tag(
10192        cbb: *mut CBB,
10193        value: u64,
10194        tag: CBS_ASN1_TAG,
10195    ) -> ::core::ffi::c_int;
10196}
10197unsafe extern "C" {
10198    pub fn CBB_add_asn1_int64(cbb: *mut CBB, value: i64) -> ::core::ffi::c_int;
10199}
10200unsafe extern "C" {
10201    pub fn CBB_add_asn1_int64_with_tag(
10202        cbb: *mut CBB,
10203        value: i64,
10204        tag: CBS_ASN1_TAG,
10205    ) -> ::core::ffi::c_int;
10206}
10207unsafe extern "C" {
10208    pub fn CBB_add_asn1_octet_string(
10209        cbb: *mut CBB,
10210        data: *const u8,
10211        data_len: usize,
10212    ) -> ::core::ffi::c_int;
10213}
10214unsafe extern "C" {
10215    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::core::ffi::c_int) -> ::core::ffi::c_int;
10216}
10217unsafe extern "C" {
10218    pub fn CBB_add_asn1_oid_from_text(
10219        cbb: *mut CBB,
10220        text: *const ::core::ffi::c_char,
10221        len: usize,
10222    ) -> ::core::ffi::c_int;
10223}
10224unsafe extern "C" {
10225    pub fn CBB_add_asn1_relative_oid_from_text(
10226        cbb: *mut CBB,
10227        text: *const ::core::ffi::c_char,
10228        len: usize,
10229    ) -> ::core::ffi::c_int;
10230}
10231unsafe extern "C" {
10232    pub fn CBB_add_asn1_oid_component(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10233}
10234unsafe extern "C" {
10235    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::core::ffi::c_int;
10236}
10237unsafe extern "C" {
10238    pub fn CBS_get_utf8(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10239}
10240unsafe extern "C" {
10241    pub fn CBS_get_latin1(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10242}
10243unsafe extern "C" {
10244    pub fn CBS_get_ucs2_be(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10245}
10246unsafe extern "C" {
10247    pub fn CBS_get_utf32_be(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10248}
10249unsafe extern "C" {
10250    pub fn CBB_get_utf8_len(u: u32) -> usize;
10251}
10252unsafe extern "C" {
10253    pub fn CBB_add_utf8(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10254}
10255unsafe extern "C" {
10256    pub fn CBB_add_latin1(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10257}
10258unsafe extern "C" {
10259    pub fn CBB_add_ucs2_be(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10260}
10261unsafe extern "C" {
10262    pub fn CBB_add_utf32_be(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10263}
10264#[repr(C)]
10265#[derive(Debug, Copy, Clone)]
10266pub struct cast_key_st {
10267    pub data: [u32; 32usize],
10268    pub short_key: ::core::ffi::c_int,
10269}
10270pub type CAST_KEY = cast_key_st;
10271unsafe extern "C" {
10272    pub fn CAST_set_key(key: *mut CAST_KEY, len: usize, data: *const u8);
10273}
10274unsafe extern "C" {
10275    pub fn CAST_ecb_encrypt(
10276        in_: *const u8,
10277        out: *mut u8,
10278        key: *const CAST_KEY,
10279        enc: ::core::ffi::c_int,
10280    );
10281}
10282unsafe extern "C" {
10283    pub fn CAST_encrypt(data: *mut u32, key: *const CAST_KEY);
10284}
10285unsafe extern "C" {
10286    pub fn CAST_decrypt(data: *mut u32, key: *const CAST_KEY);
10287}
10288unsafe extern "C" {
10289    pub fn CAST_cbc_encrypt(
10290        in_: *const u8,
10291        out: *mut u8,
10292        length: usize,
10293        ks: *const CAST_KEY,
10294        iv: *mut u8,
10295        enc: ::core::ffi::c_int,
10296    );
10297}
10298unsafe extern "C" {
10299    pub fn CAST_cfb64_encrypt(
10300        in_: *const u8,
10301        out: *mut u8,
10302        length: usize,
10303        schedule: *const CAST_KEY,
10304        ivec: *mut u8,
10305        num: *mut ::core::ffi::c_int,
10306        enc: ::core::ffi::c_int,
10307    );
10308}
10309unsafe extern "C" {
10310    pub fn CRYPTO_chacha_20(
10311        out: *mut u8,
10312        in_: *const u8,
10313        in_len: usize,
10314        key: *const u8,
10315        nonce: *const u8,
10316        counter: u32,
10317    );
10318}
10319unsafe extern "C" {
10320    pub fn EVP_rc4() -> *const EVP_CIPHER;
10321}
10322unsafe extern "C" {
10323    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
10324}
10325unsafe extern "C" {
10326    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
10327}
10328unsafe extern "C" {
10329    pub fn EVP_des_ede() -> *const EVP_CIPHER;
10330}
10331unsafe extern "C" {
10332    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
10333}
10334unsafe extern "C" {
10335    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
10336}
10337unsafe extern "C" {
10338    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
10339}
10340unsafe extern "C" {
10341    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
10342}
10343unsafe extern "C" {
10344    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
10345}
10346unsafe extern "C" {
10347    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
10348}
10349unsafe extern "C" {
10350    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
10351}
10352unsafe extern "C" {
10353    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
10354}
10355unsafe extern "C" {
10356    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
10357}
10358unsafe extern "C" {
10359    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
10360}
10361unsafe extern "C" {
10362    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
10363}
10364unsafe extern "C" {
10365    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
10366}
10367unsafe extern "C" {
10368    pub fn EVP_enc_null() -> *const EVP_CIPHER;
10369}
10370unsafe extern "C" {
10371    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
10372}
10373unsafe extern "C" {
10374    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
10375}
10376unsafe extern "C" {
10377    pub fn EVP_get_cipherbynid(nid: ::core::ffi::c_int) -> *const EVP_CIPHER;
10378}
10379unsafe extern "C" {
10380    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
10381}
10382unsafe extern "C" {
10383    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
10384}
10385unsafe extern "C" {
10386    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10387}
10388unsafe extern "C" {
10389    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
10390}
10391unsafe extern "C" {
10392    pub fn EVP_CIPHER_CTX_copy(
10393        out: *mut EVP_CIPHER_CTX,
10394        in_: *const EVP_CIPHER_CTX,
10395    ) -> ::core::ffi::c_int;
10396}
10397unsafe extern "C" {
10398    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10399}
10400unsafe extern "C" {
10401    pub fn EVP_CipherInit_ex(
10402        ctx: *mut EVP_CIPHER_CTX,
10403        cipher: *const EVP_CIPHER,
10404        engine: *mut ENGINE,
10405        key: *const u8,
10406        iv: *const u8,
10407        enc: ::core::ffi::c_int,
10408    ) -> ::core::ffi::c_int;
10409}
10410unsafe extern "C" {
10411    pub fn EVP_EncryptInit_ex(
10412        ctx: *mut EVP_CIPHER_CTX,
10413        cipher: *const EVP_CIPHER,
10414        impl_: *mut ENGINE,
10415        key: *const u8,
10416        iv: *const u8,
10417    ) -> ::core::ffi::c_int;
10418}
10419unsafe extern "C" {
10420    pub fn EVP_DecryptInit_ex(
10421        ctx: *mut EVP_CIPHER_CTX,
10422        cipher: *const EVP_CIPHER,
10423        impl_: *mut ENGINE,
10424        key: *const u8,
10425        iv: *const u8,
10426    ) -> ::core::ffi::c_int;
10427}
10428unsafe extern "C" {
10429    pub fn EVP_EncryptUpdate_ex(
10430        ctx: *mut EVP_CIPHER_CTX,
10431        out: *mut u8,
10432        out_len: *mut usize,
10433        max_out_len: usize,
10434        in_: *const u8,
10435        in_len: usize,
10436    ) -> ::core::ffi::c_int;
10437}
10438unsafe extern "C" {
10439    pub fn EVP_EncryptFinal_ex2(
10440        ctx: *mut EVP_CIPHER_CTX,
10441        out: *mut u8,
10442        out_len: *mut usize,
10443        max_out_len: usize,
10444    ) -> ::core::ffi::c_int;
10445}
10446unsafe extern "C" {
10447    pub fn EVP_DecryptUpdate_ex(
10448        ctx: *mut EVP_CIPHER_CTX,
10449        out: *mut u8,
10450        out_len: *mut usize,
10451        max_out_len: usize,
10452        in_: *const u8,
10453        in_len: usize,
10454    ) -> ::core::ffi::c_int;
10455}
10456unsafe extern "C" {
10457    pub fn EVP_DecryptFinal_ex2(
10458        ctx: *mut EVP_CIPHER_CTX,
10459        out: *mut u8,
10460        out_len: *mut usize,
10461        max_out_len: usize,
10462    ) -> ::core::ffi::c_int;
10463}
10464unsafe extern "C" {
10465    pub fn EVP_CipherUpdate_ex(
10466        ctx: *mut EVP_CIPHER_CTX,
10467        out: *mut u8,
10468        out_len: *mut usize,
10469        max_out_len: usize,
10470        in_: *const u8,
10471        in_len: usize,
10472    ) -> ::core::ffi::c_int;
10473}
10474unsafe extern "C" {
10475    pub fn EVP_CipherUpdateAAD(
10476        ctx: *mut EVP_CIPHER_CTX,
10477        in_: *const u8,
10478        in_len: usize,
10479    ) -> ::core::ffi::c_int;
10480}
10481unsafe extern "C" {
10482    pub fn EVP_CipherFinal_ex2(
10483        ctx: *mut EVP_CIPHER_CTX,
10484        out: *mut u8,
10485        out_len: *mut usize,
10486        max_out_len: usize,
10487    ) -> ::core::ffi::c_int;
10488}
10489unsafe extern "C" {
10490    pub fn EVP_CIPHER_CTX_max_next_update(ctx: *const EVP_CIPHER_CTX, in_len: usize) -> usize;
10491}
10492unsafe extern "C" {
10493    pub fn EVP_CIPHER_CTX_max_final(ctx: *const EVP_CIPHER_CTX) -> usize;
10494}
10495unsafe extern "C" {
10496    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
10497}
10498unsafe extern "C" {
10499    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10500}
10501unsafe extern "C" {
10502    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10503}
10504unsafe extern "C" {
10505    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10506}
10507unsafe extern "C" {
10508    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10509}
10510unsafe extern "C" {
10511    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10512}
10513unsafe extern "C" {
10514    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::core::ffi::c_void;
10515}
10516unsafe extern "C" {
10517    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::core::ffi::c_void);
10518}
10519unsafe extern "C" {
10520    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
10521}
10522unsafe extern "C" {
10523    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
10524}
10525unsafe extern "C" {
10526    pub fn EVP_CIPHER_CTX_ctrl(
10527        ctx: *mut EVP_CIPHER_CTX,
10528        command: ::core::ffi::c_int,
10529        arg: ::core::ffi::c_int,
10530        ptr: *mut ::core::ffi::c_void,
10531    ) -> ::core::ffi::c_int;
10532}
10533unsafe extern "C" {
10534    pub fn EVP_CIPHER_CTX_set_padding(
10535        ctx: *mut EVP_CIPHER_CTX,
10536        pad: ::core::ffi::c_int,
10537    ) -> ::core::ffi::c_int;
10538}
10539unsafe extern "C" {
10540    pub fn EVP_CIPHER_CTX_set_key_length(
10541        ctx: *mut EVP_CIPHER_CTX,
10542        key_len: ::core::ffi::c_uint,
10543    ) -> ::core::ffi::c_int;
10544}
10545unsafe extern "C" {
10546    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::core::ffi::c_int;
10547}
10548unsafe extern "C" {
10549    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10550}
10551unsafe extern "C" {
10552    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10553}
10554unsafe extern "C" {
10555    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10556}
10557unsafe extern "C" {
10558    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
10559}
10560unsafe extern "C" {
10561    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
10562}
10563unsafe extern "C" {
10564    pub fn EVP_BytesToKey(
10565        type_: *const EVP_CIPHER,
10566        md: *const EVP_MD,
10567        salt: *const u8,
10568        data: *const u8,
10569        data_len: usize,
10570        count: ::core::ffi::c_uint,
10571        key: *mut u8,
10572        iv: *mut u8,
10573    ) -> ::core::ffi::c_int;
10574}
10575unsafe extern "C" {
10576    pub fn EVP_CipherInit(
10577        ctx: *mut EVP_CIPHER_CTX,
10578        cipher: *const EVP_CIPHER,
10579        key: *const u8,
10580        iv: *const u8,
10581        enc: ::core::ffi::c_int,
10582    ) -> ::core::ffi::c_int;
10583}
10584unsafe extern "C" {
10585    pub fn EVP_EncryptInit(
10586        ctx: *mut EVP_CIPHER_CTX,
10587        cipher: *const EVP_CIPHER,
10588        key: *const u8,
10589        iv: *const u8,
10590    ) -> ::core::ffi::c_int;
10591}
10592unsafe extern "C" {
10593    pub fn EVP_DecryptInit(
10594        ctx: *mut EVP_CIPHER_CTX,
10595        cipher: *const EVP_CIPHER,
10596        key: *const u8,
10597        iv: *const u8,
10598    ) -> ::core::ffi::c_int;
10599}
10600unsafe extern "C" {
10601    pub fn EVP_CipherUpdate(
10602        ctx: *mut EVP_CIPHER_CTX,
10603        out: *mut u8,
10604        out_len: *mut ::core::ffi::c_int,
10605        in_: *const u8,
10606        in_len: ::core::ffi::c_int,
10607    ) -> ::core::ffi::c_int;
10608}
10609unsafe extern "C" {
10610    pub fn EVP_EncryptUpdate(
10611        ctx: *mut EVP_CIPHER_CTX,
10612        out: *mut u8,
10613        out_len: *mut ::core::ffi::c_int,
10614        in_: *const u8,
10615        in_len: ::core::ffi::c_int,
10616    ) -> ::core::ffi::c_int;
10617}
10618unsafe extern "C" {
10619    pub fn EVP_DecryptUpdate(
10620        ctx: *mut EVP_CIPHER_CTX,
10621        out: *mut u8,
10622        out_len: *mut ::core::ffi::c_int,
10623        in_: *const u8,
10624        in_len: ::core::ffi::c_int,
10625    ) -> ::core::ffi::c_int;
10626}
10627unsafe extern "C" {
10628    pub fn EVP_CipherFinal(
10629        ctx: *mut EVP_CIPHER_CTX,
10630        out: *mut u8,
10631        out_len: *mut ::core::ffi::c_int,
10632    ) -> ::core::ffi::c_int;
10633}
10634unsafe extern "C" {
10635    pub fn EVP_CipherFinal_ex(
10636        ctx: *mut EVP_CIPHER_CTX,
10637        out: *mut u8,
10638        out_len: *mut ::core::ffi::c_int,
10639    ) -> ::core::ffi::c_int;
10640}
10641unsafe extern "C" {
10642    pub fn EVP_EncryptFinal(
10643        ctx: *mut EVP_CIPHER_CTX,
10644        out: *mut u8,
10645        out_len: *mut ::core::ffi::c_int,
10646    ) -> ::core::ffi::c_int;
10647}
10648unsafe extern "C" {
10649    pub fn EVP_EncryptFinal_ex(
10650        ctx: *mut EVP_CIPHER_CTX,
10651        out: *mut u8,
10652        out_len: *mut ::core::ffi::c_int,
10653    ) -> ::core::ffi::c_int;
10654}
10655unsafe extern "C" {
10656    pub fn EVP_DecryptFinal(
10657        ctx: *mut EVP_CIPHER_CTX,
10658        out: *mut u8,
10659        out_len: *mut ::core::ffi::c_int,
10660    ) -> ::core::ffi::c_int;
10661}
10662unsafe extern "C" {
10663    pub fn EVP_DecryptFinal_ex(
10664        ctx: *mut EVP_CIPHER_CTX,
10665        out: *mut u8,
10666        out_len: *mut ::core::ffi::c_int,
10667    ) -> ::core::ffi::c_int;
10668}
10669unsafe extern "C" {
10670    pub fn EVP_Cipher(
10671        ctx: *mut EVP_CIPHER_CTX,
10672        out: *mut u8,
10673        in_: *const u8,
10674        in_len: usize,
10675    ) -> ::core::ffi::c_int;
10676}
10677unsafe extern "C" {
10678    pub fn EVP_add_cipher_alias(
10679        a: *const ::core::ffi::c_char,
10680        b: *const ::core::ffi::c_char,
10681    ) -> ::core::ffi::c_int;
10682}
10683unsafe extern "C" {
10684    pub fn EVP_get_cipherbyname(name: *const ::core::ffi::c_char) -> *const EVP_CIPHER;
10685}
10686unsafe extern "C" {
10687    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
10688}
10689unsafe extern "C" {
10690    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
10691}
10692unsafe extern "C" {
10693    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
10694}
10695unsafe extern "C" {
10696    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
10697}
10698unsafe extern "C" {
10699    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
10700}
10701unsafe extern "C" {
10702    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
10703}
10704unsafe extern "C" {
10705    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
10706}
10707unsafe extern "C" {
10708    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
10709}
10710unsafe extern "C" {
10711    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
10712}
10713unsafe extern "C" {
10714    pub fn EVP_aes_128_cfb() -> *const EVP_CIPHER;
10715}
10716unsafe extern "C" {
10717    pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER;
10718}
10719unsafe extern "C" {
10720    pub fn EVP_aes_192_cfb() -> *const EVP_CIPHER;
10721}
10722unsafe extern "C" {
10723    pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
10724}
10725unsafe extern "C" {
10726    pub fn EVP_aes_256_cfb() -> *const EVP_CIPHER;
10727}
10728unsafe extern "C" {
10729    pub fn EVP_bf_ecb() -> *const EVP_CIPHER;
10730}
10731unsafe extern "C" {
10732    pub fn EVP_bf_cbc() -> *const EVP_CIPHER;
10733}
10734unsafe extern "C" {
10735    pub fn EVP_bf_cfb() -> *const EVP_CIPHER;
10736}
10737unsafe extern "C" {
10738    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
10739}
10740unsafe extern "C" {
10741    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
10742}
10743unsafe extern "C" {
10744    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
10745}
10746#[repr(C)]
10747#[derive(Debug, Copy, Clone)]
10748pub struct evp_cipher_ctx_st {
10749    pub cipher: *const EVP_CIPHER,
10750    pub app_data: *mut ::core::ffi::c_void,
10751    pub cipher_data: *mut ::core::ffi::c_void,
10752    pub key_len: ::core::ffi::c_uint,
10753    pub encrypt: ::core::ffi::c_int,
10754    pub flags: u32,
10755    pub oiv: [u8; 16usize],
10756    pub iv: [u8; 16usize],
10757    pub buf: [u8; 32usize],
10758    pub buf_len: ::core::ffi::c_int,
10759    pub num: ::core::ffi::c_uint,
10760    pub final_used: ::core::ffi::c_int,
10761    pub final_: [u8; 32usize],
10762    pub poisoned: ::core::ffi::c_int,
10763}
10764#[repr(C)]
10765#[derive(Debug, Copy, Clone)]
10766pub struct evp_cipher_info_st {
10767    pub cipher: *const EVP_CIPHER,
10768    pub iv: [::core::ffi::c_uchar; 16usize],
10769}
10770pub type EVP_CIPHER_INFO = evp_cipher_info_st;
10771unsafe extern "C" {
10772    pub fn AES_CMAC(
10773        out: *mut u8,
10774        key: *const u8,
10775        key_len: usize,
10776        in_: *const u8,
10777        in_len: usize,
10778    ) -> ::core::ffi::c_int;
10779}
10780unsafe extern "C" {
10781    pub fn CMAC_CTX_new() -> *mut CMAC_CTX;
10782}
10783unsafe extern "C" {
10784    pub fn CMAC_CTX_free(ctx: *mut CMAC_CTX);
10785}
10786unsafe extern "C" {
10787    pub fn CMAC_CTX_copy(out: *mut CMAC_CTX, in_: *const CMAC_CTX) -> ::core::ffi::c_int;
10788}
10789unsafe extern "C" {
10790    pub fn CMAC_Init(
10791        ctx: *mut CMAC_CTX,
10792        key: *const ::core::ffi::c_void,
10793        key_len: usize,
10794        cipher: *const EVP_CIPHER,
10795        engine: *mut ENGINE,
10796    ) -> ::core::ffi::c_int;
10797}
10798unsafe extern "C" {
10799    pub fn CMAC_Reset(ctx: *mut CMAC_CTX) -> ::core::ffi::c_int;
10800}
10801unsafe extern "C" {
10802    pub fn CMAC_Update(ctx: *mut CMAC_CTX, in_: *const u8, in_len: usize) -> ::core::ffi::c_int;
10803}
10804unsafe extern "C" {
10805    pub fn CMAC_Final(ctx: *mut CMAC_CTX, out: *mut u8, out_len: *mut usize) -> ::core::ffi::c_int;
10806}
10807#[repr(C)]
10808#[derive(Debug, Copy, Clone)]
10809pub struct conf_value_st {
10810    pub section: *mut ::core::ffi::c_char,
10811    pub name: *mut ::core::ffi::c_char,
10812    pub value: *mut ::core::ffi::c_char,
10813}
10814#[repr(C)]
10815#[derive(Debug)]
10816pub struct stack_st_CONF_VALUE {
10817    _unused: [u8; 0],
10818}
10819pub type sk_CONF_VALUE_free_func =
10820    ::core::option::Option<unsafe extern "C" fn(arg1: *mut CONF_VALUE)>;
10821pub type sk_CONF_VALUE_copy_func =
10822    ::core::option::Option<unsafe extern "C" fn(arg1: *const CONF_VALUE) -> *mut CONF_VALUE>;
10823pub type sk_CONF_VALUE_cmp_func = ::core::option::Option<
10824    unsafe extern "C" fn(
10825        arg1: *const *const CONF_VALUE,
10826        arg2: *const *const CONF_VALUE,
10827    ) -> ::core::ffi::c_int,
10828>;
10829pub type sk_CONF_VALUE_delete_if_func = ::core::option::Option<
10830    unsafe extern "C" fn(
10831        arg1: *mut CONF_VALUE,
10832        arg2: *mut ::core::ffi::c_void,
10833    ) -> ::core::ffi::c_int,
10834>;
10835unsafe extern "C" {
10836    #[link_name = "sk_CONF_VALUE_call_free_func__extern"]
10837    pub fn sk_CONF_VALUE_call_free_func(
10838        free_func: OPENSSL_sk_free_func,
10839        ptr: *mut ::core::ffi::c_void,
10840    );
10841}
10842unsafe extern "C" {
10843    #[link_name = "sk_CONF_VALUE_call_copy_func__extern"]
10844    pub fn sk_CONF_VALUE_call_copy_func(
10845        copy_func: OPENSSL_sk_copy_func,
10846        ptr: *const ::core::ffi::c_void,
10847    ) -> *mut ::core::ffi::c_void;
10848}
10849unsafe extern "C" {
10850    #[link_name = "sk_CONF_VALUE_call_cmp_func__extern"]
10851    pub fn sk_CONF_VALUE_call_cmp_func(
10852        cmp_func: OPENSSL_sk_cmp_func,
10853        a: *const ::core::ffi::c_void,
10854        b: *const ::core::ffi::c_void,
10855    ) -> ::core::ffi::c_int;
10856}
10857unsafe extern "C" {
10858    #[link_name = "sk_CONF_VALUE_call_delete_if_func__extern"]
10859    pub fn sk_CONF_VALUE_call_delete_if_func(
10860        func: OPENSSL_sk_delete_if_func,
10861        obj: *mut ::core::ffi::c_void,
10862        data: *mut ::core::ffi::c_void,
10863    ) -> ::core::ffi::c_int;
10864}
10865unsafe extern "C" {
10866    #[link_name = "sk_CONF_VALUE_new__extern"]
10867    pub fn sk_CONF_VALUE_new(comp: sk_CONF_VALUE_cmp_func) -> *mut stack_st_CONF_VALUE;
10868}
10869unsafe extern "C" {
10870    #[link_name = "sk_CONF_VALUE_new_null__extern"]
10871    pub fn sk_CONF_VALUE_new_null() -> *mut stack_st_CONF_VALUE;
10872}
10873unsafe extern "C" {
10874    #[link_name = "sk_CONF_VALUE_num__extern"]
10875    pub fn sk_CONF_VALUE_num(sk: *const stack_st_CONF_VALUE) -> usize;
10876}
10877unsafe extern "C" {
10878    #[link_name = "sk_CONF_VALUE_zero__extern"]
10879    pub fn sk_CONF_VALUE_zero(sk: *mut stack_st_CONF_VALUE);
10880}
10881unsafe extern "C" {
10882    #[link_name = "sk_CONF_VALUE_value__extern"]
10883    pub fn sk_CONF_VALUE_value(sk: *const stack_st_CONF_VALUE, i: usize) -> *mut CONF_VALUE;
10884}
10885unsafe extern "C" {
10886    #[link_name = "sk_CONF_VALUE_set__extern"]
10887    pub fn sk_CONF_VALUE_set(
10888        sk: *mut stack_st_CONF_VALUE,
10889        i: usize,
10890        p: *mut CONF_VALUE,
10891    ) -> *mut CONF_VALUE;
10892}
10893unsafe extern "C" {
10894    #[link_name = "sk_CONF_VALUE_free__extern"]
10895    pub fn sk_CONF_VALUE_free(sk: *mut stack_st_CONF_VALUE);
10896}
10897unsafe extern "C" {
10898    #[link_name = "sk_CONF_VALUE_pop_free__extern"]
10899    pub fn sk_CONF_VALUE_pop_free(sk: *mut stack_st_CONF_VALUE, free_func: sk_CONF_VALUE_free_func);
10900}
10901unsafe extern "C" {
10902    #[link_name = "sk_CONF_VALUE_insert__extern"]
10903    pub fn sk_CONF_VALUE_insert(
10904        sk: *mut stack_st_CONF_VALUE,
10905        p: *mut CONF_VALUE,
10906        where_: usize,
10907    ) -> usize;
10908}
10909unsafe extern "C" {
10910    #[link_name = "sk_CONF_VALUE_delete__extern"]
10911    pub fn sk_CONF_VALUE_delete(sk: *mut stack_st_CONF_VALUE, where_: usize) -> *mut CONF_VALUE;
10912}
10913unsafe extern "C" {
10914    #[link_name = "sk_CONF_VALUE_delete_ptr__extern"]
10915    pub fn sk_CONF_VALUE_delete_ptr(
10916        sk: *mut stack_st_CONF_VALUE,
10917        p: *const CONF_VALUE,
10918    ) -> *mut CONF_VALUE;
10919}
10920unsafe extern "C" {
10921    #[link_name = "sk_CONF_VALUE_delete_if__extern"]
10922    pub fn sk_CONF_VALUE_delete_if(
10923        sk: *mut stack_st_CONF_VALUE,
10924        func: sk_CONF_VALUE_delete_if_func,
10925        data: *mut ::core::ffi::c_void,
10926    );
10927}
10928unsafe extern "C" {
10929    #[link_name = "sk_CONF_VALUE_find__extern"]
10930    pub fn sk_CONF_VALUE_find(
10931        sk: *const stack_st_CONF_VALUE,
10932        out_index: *mut usize,
10933        p: *const CONF_VALUE,
10934    ) -> ::core::ffi::c_int;
10935}
10936unsafe extern "C" {
10937    #[link_name = "sk_CONF_VALUE_shift__extern"]
10938    pub fn sk_CONF_VALUE_shift(sk: *mut stack_st_CONF_VALUE) -> *mut CONF_VALUE;
10939}
10940unsafe extern "C" {
10941    #[link_name = "sk_CONF_VALUE_push__extern"]
10942    pub fn sk_CONF_VALUE_push(sk: *mut stack_st_CONF_VALUE, p: *mut CONF_VALUE) -> usize;
10943}
10944unsafe extern "C" {
10945    #[link_name = "sk_CONF_VALUE_pop__extern"]
10946    pub fn sk_CONF_VALUE_pop(sk: *mut stack_st_CONF_VALUE) -> *mut CONF_VALUE;
10947}
10948unsafe extern "C" {
10949    #[link_name = "sk_CONF_VALUE_dup__extern"]
10950    pub fn sk_CONF_VALUE_dup(sk: *const stack_st_CONF_VALUE) -> *mut stack_st_CONF_VALUE;
10951}
10952unsafe extern "C" {
10953    #[link_name = "sk_CONF_VALUE_sort__extern"]
10954    pub fn sk_CONF_VALUE_sort(sk: *mut stack_st_CONF_VALUE);
10955}
10956unsafe extern "C" {
10957    #[link_name = "sk_CONF_VALUE_sort_and_dedup__extern"]
10958    pub fn sk_CONF_VALUE_sort_and_dedup(
10959        sk: *mut stack_st_CONF_VALUE,
10960        free_func: sk_CONF_VALUE_free_func,
10961    );
10962}
10963unsafe extern "C" {
10964    #[link_name = "sk_CONF_VALUE_is_sorted__extern"]
10965    pub fn sk_CONF_VALUE_is_sorted(sk: *const stack_st_CONF_VALUE) -> ::core::ffi::c_int;
10966}
10967unsafe extern "C" {
10968    #[link_name = "sk_CONF_VALUE_set_cmp_func__extern"]
10969    pub fn sk_CONF_VALUE_set_cmp_func(
10970        sk: *mut stack_st_CONF_VALUE,
10971        comp: sk_CONF_VALUE_cmp_func,
10972    ) -> sk_CONF_VALUE_cmp_func;
10973}
10974unsafe extern "C" {
10975    #[link_name = "sk_CONF_VALUE_deep_copy__extern"]
10976    pub fn sk_CONF_VALUE_deep_copy(
10977        sk: *const stack_st_CONF_VALUE,
10978        copy_func: sk_CONF_VALUE_copy_func,
10979        free_func: sk_CONF_VALUE_free_func,
10980    ) -> *mut stack_st_CONF_VALUE;
10981}
10982unsafe extern "C" {
10983    pub fn NCONF_new(method: *mut ::core::ffi::c_void) -> *mut CONF;
10984}
10985unsafe extern "C" {
10986    pub fn NCONF_free(conf: *mut CONF);
10987}
10988unsafe extern "C" {
10989    pub fn NCONF_load(
10990        conf: *mut CONF,
10991        filename: *const ::core::ffi::c_char,
10992        out_error_line: *mut ::core::ffi::c_long,
10993    ) -> ::core::ffi::c_int;
10994}
10995unsafe extern "C" {
10996    pub fn NCONF_load_bio(
10997        conf: *mut CONF,
10998        bio: *mut BIO,
10999        out_error_line: *mut ::core::ffi::c_long,
11000    ) -> ::core::ffi::c_int;
11001}
11002unsafe extern "C" {
11003    pub fn NCONF_get_section(
11004        conf: *const CONF,
11005        section: *const ::core::ffi::c_char,
11006    ) -> *const stack_st_CONF_VALUE;
11007}
11008unsafe extern "C" {
11009    pub fn NCONF_get_string(
11010        conf: *const CONF,
11011        section: *const ::core::ffi::c_char,
11012        name: *const ::core::ffi::c_char,
11013    ) -> *const ::core::ffi::c_char;
11014}
11015unsafe extern "C" {
11016    pub fn CONF_modules_load_file(
11017        filename: *const ::core::ffi::c_char,
11018        appname: *const ::core::ffi::c_char,
11019        flags: ::core::ffi::c_ulong,
11020    ) -> ::core::ffi::c_int;
11021}
11022unsafe extern "C" {
11023    pub fn CONF_modules_unload(all: ::core::ffi::c_int);
11024}
11025unsafe extern "C" {
11026    pub fn CONF_modules_free();
11027}
11028unsafe extern "C" {
11029    pub fn OPENSSL_config(config_name: *const ::core::ffi::c_char);
11030}
11031unsafe extern "C" {
11032    pub fn OPENSSL_no_config();
11033}
11034unsafe extern "C" {
11035    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11036}
11037unsafe extern "C" {
11038    pub fn SHA224_Update(
11039        sha: *mut SHA256_CTX,
11040        data: *const ::core::ffi::c_void,
11041        len: usize,
11042    ) -> ::core::ffi::c_int;
11043}
11044unsafe extern "C" {
11045    pub fn SHA224_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11046}
11047unsafe extern "C" {
11048    pub fn SHA224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11049}
11050unsafe extern "C" {
11051    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11052}
11053unsafe extern "C" {
11054    pub fn SHA256_Update(
11055        sha: *mut SHA256_CTX,
11056        data: *const ::core::ffi::c_void,
11057        len: usize,
11058    ) -> ::core::ffi::c_int;
11059}
11060unsafe extern "C" {
11061    pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11062}
11063unsafe extern "C" {
11064    pub fn SHA256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11065}
11066unsafe extern "C" {
11067    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
11068}
11069unsafe extern "C" {
11070    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
11071}
11072#[repr(C)]
11073#[derive(Debug, Copy, Clone)]
11074pub struct sha256_state_st {
11075    pub h: [u32; 8usize],
11076    pub Nl: u32,
11077    pub Nh: u32,
11078    pub data: [u8; 64usize],
11079    pub num: ::core::ffi::c_uint,
11080    pub md_len: ::core::ffi::c_uint,
11081}
11082unsafe extern "C" {
11083    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11084}
11085unsafe extern "C" {
11086    pub fn SHA384_Update(
11087        sha: *mut SHA512_CTX,
11088        data: *const ::core::ffi::c_void,
11089        len: usize,
11090    ) -> ::core::ffi::c_int;
11091}
11092unsafe extern "C" {
11093    pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11094}
11095unsafe extern "C" {
11096    pub fn SHA384(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11097}
11098unsafe extern "C" {
11099    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11100}
11101unsafe extern "C" {
11102    pub fn SHA512_Update(
11103        sha: *mut SHA512_CTX,
11104        data: *const ::core::ffi::c_void,
11105        len: usize,
11106    ) -> ::core::ffi::c_int;
11107}
11108unsafe extern "C" {
11109    pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11110}
11111unsafe extern "C" {
11112    pub fn SHA512(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11113}
11114unsafe extern "C" {
11115    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
11116}
11117#[repr(C)]
11118#[derive(Debug, Copy, Clone)]
11119pub struct sha512_state_st {
11120    pub h: [u64; 8usize],
11121    pub num: u16,
11122    pub md_len: u16,
11123    pub bytes_so_far_high: u32,
11124    pub bytes_so_far_low: u64,
11125    pub p: [u8; 128usize],
11126}
11127unsafe extern "C" {
11128    pub fn SHA512_256_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11129}
11130unsafe extern "C" {
11131    pub fn SHA512_256_Update(
11132        sha: *mut SHA512_CTX,
11133        data: *const ::core::ffi::c_void,
11134        len: usize,
11135    ) -> ::core::ffi::c_int;
11136}
11137unsafe extern "C" {
11138    pub fn SHA512_256_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11139}
11140unsafe extern "C" {
11141    pub fn SHA512_256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11142}
11143unsafe extern "C" {
11144    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::core::ffi::c_int;
11145}
11146unsafe extern "C" {
11147    pub fn SHA1_Update(
11148        sha: *mut SHA_CTX,
11149        data: *const ::core::ffi::c_void,
11150        len: usize,
11151    ) -> ::core::ffi::c_int;
11152}
11153unsafe extern "C" {
11154    pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::core::ffi::c_int;
11155}
11156unsafe extern "C" {
11157    pub fn SHA1(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11158}
11159unsafe extern "C" {
11160    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
11161}
11162#[repr(C)]
11163#[derive(Copy, Clone)]
11164pub struct sha_state_st {
11165    pub __bindgen_anon_1: sha_state_st__bindgen_ty_1,
11166    pub Nl: u32,
11167    pub Nh: u32,
11168    pub data: [u8; 64usize],
11169    pub num: ::core::ffi::c_uint,
11170}
11171#[repr(C)]
11172#[derive(Copy, Clone)]
11173pub union sha_state_st__bindgen_ty_1 {
11174    pub h: [u32; 5usize],
11175    pub __bindgen_anon_1: sha_state_st__bindgen_ty_1__bindgen_ty_1,
11176}
11177#[repr(C)]
11178#[derive(Debug, Copy, Clone)]
11179pub struct sha_state_st__bindgen_ty_1__bindgen_ty_1 {
11180    pub h0: u32,
11181    pub h1: u32,
11182    pub h2: u32,
11183    pub h3: u32,
11184    pub h4: u32,
11185}
11186unsafe extern "C" {
11187    pub fn CRYPTO_fips_186_2_prf(out: *mut u8, out_len: usize, xkey: *const u8);
11188}
11189unsafe extern "C" {
11190    pub fn OPENSSL_malloc(size: usize) -> *mut ::core::ffi::c_void;
11191}
11192unsafe extern "C" {
11193    pub fn OPENSSL_zalloc(size: usize) -> *mut ::core::ffi::c_void;
11194}
11195unsafe extern "C" {
11196    pub fn OPENSSL_calloc(num: usize, size: usize) -> *mut ::core::ffi::c_void;
11197}
11198unsafe extern "C" {
11199    pub fn OPENSSL_realloc(
11200        ptr: *mut ::core::ffi::c_void,
11201        new_size: usize,
11202    ) -> *mut ::core::ffi::c_void;
11203}
11204unsafe extern "C" {
11205    pub fn OPENSSL_free(ptr: *mut ::core::ffi::c_void);
11206}
11207unsafe extern "C" {
11208    pub fn OPENSSL_cleanse(ptr: *mut ::core::ffi::c_void, len: usize);
11209}
11210unsafe extern "C" {
11211    pub fn CRYPTO_memcmp(
11212        a: *const ::core::ffi::c_void,
11213        b: *const ::core::ffi::c_void,
11214        len: usize,
11215    ) -> ::core::ffi::c_int;
11216}
11217unsafe extern "C" {
11218    pub fn OPENSSL_hash32(ptr: *const ::core::ffi::c_void, len: usize) -> u32;
11219}
11220unsafe extern "C" {
11221    pub fn OPENSSL_strhash(s: *const ::core::ffi::c_char) -> u32;
11222}
11223unsafe extern "C" {
11224    pub fn OPENSSL_strdup(s: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
11225}
11226unsafe extern "C" {
11227    pub fn OPENSSL_strnlen(s: *const ::core::ffi::c_char, len: usize) -> usize;
11228}
11229unsafe extern "C" {
11230    pub fn OPENSSL_isalpha(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11231}
11232unsafe extern "C" {
11233    pub fn OPENSSL_isdigit(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11234}
11235unsafe extern "C" {
11236    pub fn OPENSSL_isxdigit(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11237}
11238unsafe extern "C" {
11239    pub fn OPENSSL_fromxdigit(out: *mut u8, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11240}
11241unsafe extern "C" {
11242    pub fn OPENSSL_isalnum(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11243}
11244unsafe extern "C" {
11245    pub fn OPENSSL_tolower(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11246}
11247unsafe extern "C" {
11248    pub fn OPENSSL_isspace(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11249}
11250unsafe extern "C" {
11251    pub fn OPENSSL_strcasecmp(
11252        a: *const ::core::ffi::c_char,
11253        b: *const ::core::ffi::c_char,
11254    ) -> ::core::ffi::c_int;
11255}
11256unsafe extern "C" {
11257    pub fn OPENSSL_strncasecmp(
11258        a: *const ::core::ffi::c_char,
11259        b: *const ::core::ffi::c_char,
11260        n: usize,
11261    ) -> ::core::ffi::c_int;
11262}
11263unsafe extern "C" {
11264    pub fn BIO_snprintf(
11265        buf: *mut ::core::ffi::c_char,
11266        n: usize,
11267        format: *const ::core::ffi::c_char,
11268        ...
11269    ) -> ::core::ffi::c_int;
11270}
11271unsafe extern "C" {
11272    pub fn BIO_vsnprintf(
11273        buf: *mut ::core::ffi::c_char,
11274        n: usize,
11275        format: *const ::core::ffi::c_char,
11276        args: *mut __va_list_tag,
11277    ) -> ::core::ffi::c_int;
11278}
11279unsafe extern "C" {
11280    pub fn OPENSSL_vasprintf(
11281        str_: *mut *mut ::core::ffi::c_char,
11282        format: *const ::core::ffi::c_char,
11283        args: *mut __va_list_tag,
11284    ) -> ::core::ffi::c_int;
11285}
11286unsafe extern "C" {
11287    pub fn OPENSSL_asprintf(
11288        str_: *mut *mut ::core::ffi::c_char,
11289        format: *const ::core::ffi::c_char,
11290        ...
11291    ) -> ::core::ffi::c_int;
11292}
11293unsafe extern "C" {
11294    pub fn OPENSSL_strndup(
11295        str_: *const ::core::ffi::c_char,
11296        size: usize,
11297    ) -> *mut ::core::ffi::c_char;
11298}
11299unsafe extern "C" {
11300    pub fn OPENSSL_memdup(
11301        data: *const ::core::ffi::c_void,
11302        size: usize,
11303    ) -> *mut ::core::ffi::c_void;
11304}
11305unsafe extern "C" {
11306    pub fn OPENSSL_strlcpy(
11307        dst: *mut ::core::ffi::c_char,
11308        src: *const ::core::ffi::c_char,
11309        dst_size: usize,
11310    ) -> usize;
11311}
11312unsafe extern "C" {
11313    pub fn OPENSSL_strlcat(
11314        dst: *mut ::core::ffi::c_char,
11315        src: *const ::core::ffi::c_char,
11316        dst_size: usize,
11317    ) -> usize;
11318}
11319unsafe extern "C" {
11320    pub fn CRYPTO_malloc(
11321        size: usize,
11322        file: *const ::core::ffi::c_char,
11323        line: ::core::ffi::c_int,
11324    ) -> *mut ::core::ffi::c_void;
11325}
11326unsafe extern "C" {
11327    pub fn CRYPTO_realloc(
11328        ptr: *mut ::core::ffi::c_void,
11329        new_size: usize,
11330        file: *const ::core::ffi::c_char,
11331        line: ::core::ffi::c_int,
11332    ) -> *mut ::core::ffi::c_void;
11333}
11334unsafe extern "C" {
11335    pub fn CRYPTO_free(
11336        ptr: *mut ::core::ffi::c_void,
11337        file: *const ::core::ffi::c_char,
11338        line: ::core::ffi::c_int,
11339    );
11340}
11341unsafe extern "C" {
11342    pub fn OPENSSL_clear_free(ptr: *mut ::core::ffi::c_void, len: usize);
11343}
11344unsafe extern "C" {
11345    pub fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) -> ::core::ffi::c_int;
11346}
11347unsafe extern "C" {
11348    pub fn CRYPTO_secure_malloc_initialized() -> ::core::ffi::c_int;
11349}
11350unsafe extern "C" {
11351    pub fn CRYPTO_secure_used() -> usize;
11352}
11353unsafe extern "C" {
11354    pub fn OPENSSL_secure_malloc(size: usize) -> *mut ::core::ffi::c_void;
11355}
11356unsafe extern "C" {
11357    pub fn OPENSSL_secure_clear_free(ptr: *mut ::core::ffi::c_void, len: usize);
11358}
11359unsafe extern "C" {
11360    pub fn CRYPTO_num_locks() -> ::core::ffi::c_int;
11361}
11362unsafe extern "C" {
11363    pub fn CRYPTO_set_locking_callback(
11364        func: ::core::option::Option<
11365            unsafe extern "C" fn(
11366                mode: ::core::ffi::c_int,
11367                lock_num: ::core::ffi::c_int,
11368                file: *const ::core::ffi::c_char,
11369                line: ::core::ffi::c_int,
11370            ),
11371        >,
11372    );
11373}
11374unsafe extern "C" {
11375    pub fn CRYPTO_set_add_lock_callback(
11376        func: ::core::option::Option<
11377            unsafe extern "C" fn(
11378                num: *mut ::core::ffi::c_int,
11379                amount: ::core::ffi::c_int,
11380                lock_num: ::core::ffi::c_int,
11381                file: *const ::core::ffi::c_char,
11382                line: ::core::ffi::c_int,
11383            ) -> ::core::ffi::c_int,
11384        >,
11385    );
11386}
11387unsafe extern "C" {
11388    pub fn CRYPTO_get_locking_callback() -> ::core::option::Option<
11389        unsafe extern "C" fn(
11390            arg1: ::core::ffi::c_int,
11391            arg2: ::core::ffi::c_int,
11392            arg3: *const ::core::ffi::c_char,
11393            arg4: ::core::ffi::c_int,
11394        ),
11395    >;
11396}
11397unsafe extern "C" {
11398    pub fn CRYPTO_get_lock_name(lock_num: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11399}
11400unsafe extern "C" {
11401    pub fn CRYPTO_THREADID_set_callback(
11402        threadid_func: ::core::option::Option<unsafe extern "C" fn(threadid: *mut CRYPTO_THREADID)>,
11403    ) -> ::core::ffi::c_int;
11404}
11405unsafe extern "C" {
11406    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::core::ffi::c_ulong);
11407}
11408unsafe extern "C" {
11409    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::core::ffi::c_void);
11410}
11411unsafe extern "C" {
11412    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
11413}
11414unsafe extern "C" {
11415    pub fn CRYPTO_set_id_callback(
11416        func: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_ulong>,
11417    );
11418}
11419#[repr(C)]
11420#[derive(Debug, Copy, Clone)]
11421pub struct CRYPTO_dynlock {
11422    pub references: ::core::ffi::c_int,
11423    pub data: *mut CRYPTO_dynlock_value,
11424}
11425unsafe extern "C" {
11426    pub fn CRYPTO_set_dynlock_create_callback(
11427        dyn_create_function: ::core::option::Option<
11428            unsafe extern "C" fn(
11429                file: *const ::core::ffi::c_char,
11430                line: ::core::ffi::c_int,
11431            ) -> *mut CRYPTO_dynlock_value,
11432        >,
11433    );
11434}
11435unsafe extern "C" {
11436    pub fn CRYPTO_set_dynlock_lock_callback(
11437        dyn_lock_function: ::core::option::Option<
11438            unsafe extern "C" fn(
11439                mode: ::core::ffi::c_int,
11440                l: *mut CRYPTO_dynlock_value,
11441                file: *const ::core::ffi::c_char,
11442                line: ::core::ffi::c_int,
11443            ),
11444        >,
11445    );
11446}
11447unsafe extern "C" {
11448    pub fn CRYPTO_set_dynlock_destroy_callback(
11449        dyn_destroy_function: ::core::option::Option<
11450            unsafe extern "C" fn(
11451                l: *mut CRYPTO_dynlock_value,
11452                file: *const ::core::ffi::c_char,
11453                line: ::core::ffi::c_int,
11454            ),
11455        >,
11456    );
11457}
11458unsafe extern "C" {
11459    pub fn CRYPTO_get_dynlock_create_callback() -> ::core::option::Option<
11460        unsafe extern "C" fn(
11461            arg1: *const ::core::ffi::c_char,
11462            arg2: ::core::ffi::c_int,
11463        ) -> *mut CRYPTO_dynlock_value,
11464    >;
11465}
11466unsafe extern "C" {
11467    pub fn CRYPTO_get_dynlock_lock_callback() -> ::core::option::Option<
11468        unsafe extern "C" fn(
11469            arg1: ::core::ffi::c_int,
11470            arg2: *mut CRYPTO_dynlock_value,
11471            arg3: *const ::core::ffi::c_char,
11472            arg4: ::core::ffi::c_int,
11473        ),
11474    >;
11475}
11476unsafe extern "C" {
11477    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::core::option::Option<
11478        unsafe extern "C" fn(
11479            arg1: *mut CRYPTO_dynlock_value,
11480            arg2: *const ::core::ffi::c_char,
11481            arg3: ::core::ffi::c_int,
11482        ),
11483    >;
11484}
11485unsafe extern "C" {
11486    pub fn CRYPTO_is_confidential_build() -> ::core::ffi::c_int;
11487}
11488unsafe extern "C" {
11489    pub fn CRYPTO_has_asm() -> ::core::ffi::c_int;
11490}
11491unsafe extern "C" {
11492    pub fn BORINGSSL_self_test() -> ::core::ffi::c_int;
11493}
11494unsafe extern "C" {
11495    pub fn BORINGSSL_self_test_all() -> ::core::ffi::c_int;
11496}
11497unsafe extern "C" {
11498    pub fn BORINGSSL_integrity_test() -> ::core::ffi::c_int;
11499}
11500unsafe extern "C" {
11501    pub fn CRYPTO_pre_sandbox_init();
11502}
11503unsafe extern "C" {
11504    pub fn FIPS_mode() -> ::core::ffi::c_int;
11505}
11506pub const fips_counter_t_fips_counter_evp_aes_128_gcm: fips_counter_t = 0;
11507pub const fips_counter_t_fips_counter_evp_aes_256_gcm: fips_counter_t = 1;
11508pub const fips_counter_t_fips_counter_evp_aes_128_ctr: fips_counter_t = 2;
11509pub const fips_counter_t_fips_counter_evp_aes_256_ctr: fips_counter_t = 3;
11510pub const fips_counter_t_fips_counter_max: fips_counter_t = 3;
11511pub type fips_counter_t = ::core::ffi::c_uint;
11512unsafe extern "C" {
11513    pub fn FIPS_read_counter(counter: fips_counter_t) -> usize;
11514}
11515unsafe extern "C" {
11516    pub fn OpenSSL_version(which: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11517}
11518unsafe extern "C" {
11519    pub fn SSLeay_version(which: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11520}
11521unsafe extern "C" {
11522    pub fn SSLeay() -> ::core::ffi::c_ulong;
11523}
11524unsafe extern "C" {
11525    pub fn OpenSSL_version_num() -> ::core::ffi::c_ulong;
11526}
11527unsafe extern "C" {
11528    pub fn CRYPTO_malloc_init() -> ::core::ffi::c_int;
11529}
11530unsafe extern "C" {
11531    pub fn OPENSSL_malloc_init() -> ::core::ffi::c_int;
11532}
11533unsafe extern "C" {
11534    pub fn ENGINE_load_builtin_engines();
11535}
11536unsafe extern "C" {
11537    pub fn ENGINE_register_all_complete() -> ::core::ffi::c_int;
11538}
11539unsafe extern "C" {
11540    pub fn ENGINE_cleanup();
11541}
11542unsafe extern "C" {
11543    pub fn OPENSSL_load_builtin_modules();
11544}
11545unsafe extern "C" {
11546    pub fn OPENSSL_init_crypto(
11547        opts: u64,
11548        settings: *const OPENSSL_INIT_SETTINGS,
11549    ) -> ::core::ffi::c_int;
11550}
11551unsafe extern "C" {
11552    pub fn OPENSSL_cleanup();
11553}
11554unsafe extern "C" {
11555    pub fn FIPS_mode_set(on: ::core::ffi::c_int) -> ::core::ffi::c_int;
11556}
11557unsafe extern "C" {
11558    pub fn FIPS_module_name() -> *const ::core::ffi::c_char;
11559}
11560unsafe extern "C" {
11561    pub fn FIPS_module_hash() -> *const u8;
11562}
11563unsafe extern "C" {
11564    pub fn FIPS_version() -> u32;
11565}
11566unsafe extern "C" {
11567    pub fn FIPS_query_algorithm_status(algorithm: *const ::core::ffi::c_char)
11568        -> ::core::ffi::c_int;
11569}
11570unsafe extern "C" {
11571    pub fn CRYPTO_library_init();
11572}
11573unsafe extern "C" {
11574    pub fn CTR_DRBG_new(
11575        entropy: *const u8,
11576        personalization: *const u8,
11577        personalization_len: usize,
11578    ) -> *mut CTR_DRBG_STATE;
11579}
11580unsafe extern "C" {
11581    pub fn CTR_DRBG_new_df(
11582        entropy: *const u8,
11583        entropy_len: usize,
11584        nonce: *const u8,
11585        personalization: *const u8,
11586        personalization_len: usize,
11587    ) -> *mut CTR_DRBG_STATE;
11588}
11589unsafe extern "C" {
11590    pub fn CTR_DRBG_free(state: *mut CTR_DRBG_STATE);
11591}
11592unsafe extern "C" {
11593    pub fn CTR_DRBG_reseed(
11594        drbg: *mut CTR_DRBG_STATE,
11595        entropy: *const u8,
11596        additional_data: *const u8,
11597        additional_data_len: usize,
11598    ) -> ::core::ffi::c_int;
11599}
11600unsafe extern "C" {
11601    pub fn CTR_DRBG_reseed_ex(
11602        drbg: *mut CTR_DRBG_STATE,
11603        entropy: *const u8,
11604        entropy_len: usize,
11605        additional_data: *const u8,
11606        additional_data_len: usize,
11607    ) -> ::core::ffi::c_int;
11608}
11609unsafe extern "C" {
11610    pub fn CTR_DRBG_generate(
11611        drbg: *mut CTR_DRBG_STATE,
11612        out: *mut u8,
11613        out_len: usize,
11614        additional_data: *const u8,
11615        additional_data_len: usize,
11616    ) -> ::core::ffi::c_int;
11617}
11618unsafe extern "C" {
11619    pub fn CTR_DRBG_clear(drbg: *mut CTR_DRBG_STATE);
11620}
11621unsafe extern "C" {
11622    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
11623}
11624unsafe extern "C" {
11625    pub fn X25519(
11626        out_shared_key: *mut u8,
11627        private_key: *const u8,
11628        peer_public_value: *const u8,
11629    ) -> ::core::ffi::c_int;
11630}
11631unsafe extern "C" {
11632    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
11633}
11634unsafe extern "C" {
11635    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
11636}
11637unsafe extern "C" {
11638    pub fn ED25519_sign(
11639        out_sig: *mut u8,
11640        message: *const u8,
11641        message_len: usize,
11642        private_key: *const u8,
11643    ) -> ::core::ffi::c_int;
11644}
11645unsafe extern "C" {
11646    pub fn ED25519_verify(
11647        message: *const u8,
11648        message_len: usize,
11649        signature: *const u8,
11650        public_key: *const u8,
11651    ) -> ::core::ffi::c_int;
11652}
11653unsafe extern "C" {
11654    pub fn ED25519_keypair_from_seed(
11655        out_public_key: *mut u8,
11656        out_private_key: *mut u8,
11657        seed: *const u8,
11658    );
11659}
11660pub const spake2_role_t_spake2_role_alice: spake2_role_t = 0;
11661pub const spake2_role_t_spake2_role_bob: spake2_role_t = 1;
11662pub type spake2_role_t = ::core::ffi::c_uint;
11663unsafe extern "C" {
11664    pub fn SPAKE2_CTX_new(
11665        my_role: spake2_role_t,
11666        my_name: *const u8,
11667        my_name_len: usize,
11668        their_name: *const u8,
11669        their_name_len: usize,
11670    ) -> *mut SPAKE2_CTX;
11671}
11672unsafe extern "C" {
11673    pub fn SPAKE2_CTX_free(ctx: *mut SPAKE2_CTX);
11674}
11675unsafe extern "C" {
11676    pub fn SPAKE2_generate_msg(
11677        ctx: *mut SPAKE2_CTX,
11678        out: *mut u8,
11679        out_len: *mut usize,
11680        max_out_len: usize,
11681        password: *const u8,
11682        password_len: usize,
11683    ) -> ::core::ffi::c_int;
11684}
11685unsafe extern "C" {
11686    pub fn SPAKE2_process_msg(
11687        ctx: *mut SPAKE2_CTX,
11688        out_key: *mut u8,
11689        out_key_len: *mut usize,
11690        max_out_key_len: usize,
11691        their_msg: *const u8,
11692        their_msg_len: usize,
11693    ) -> ::core::ffi::c_int;
11694}
11695#[repr(C)]
11696#[derive(Debug, Copy, Clone)]
11697pub struct DES_cblock_st {
11698    pub bytes: [u8; 8usize],
11699}
11700pub type DES_cblock = DES_cblock_st;
11701#[repr(C)]
11702#[derive(Debug, Copy, Clone)]
11703pub struct DES_ks {
11704    pub subkeys: [[u32; 2usize]; 16usize],
11705}
11706pub type DES_key_schedule = DES_ks;
11707unsafe extern "C" {
11708    pub fn DES_set_key(key: *const DES_cblock, schedule: *mut DES_key_schedule);
11709}
11710unsafe extern "C" {
11711    pub fn DES_set_odd_parity(key: *mut DES_cblock);
11712}
11713unsafe extern "C" {
11714    pub fn DES_ecb_encrypt(
11715        in_: *const DES_cblock,
11716        out: *mut DES_cblock,
11717        schedule: *const DES_key_schedule,
11718        is_encrypt: ::core::ffi::c_int,
11719    );
11720}
11721unsafe extern "C" {
11722    pub fn DES_ncbc_encrypt(
11723        in_: *const u8,
11724        out: *mut u8,
11725        len: usize,
11726        schedule: *const DES_key_schedule,
11727        ivec: *mut DES_cblock,
11728        enc: ::core::ffi::c_int,
11729    );
11730}
11731unsafe extern "C" {
11732    pub fn DES_ecb3_encrypt(
11733        input: *const DES_cblock,
11734        output: *mut DES_cblock,
11735        ks1: *const DES_key_schedule,
11736        ks2: *const DES_key_schedule,
11737        ks3: *const DES_key_schedule,
11738        enc: ::core::ffi::c_int,
11739    );
11740}
11741unsafe extern "C" {
11742    pub fn DES_ede3_cbc_encrypt(
11743        in_: *const u8,
11744        out: *mut u8,
11745        len: usize,
11746        ks1: *const DES_key_schedule,
11747        ks2: *const DES_key_schedule,
11748        ks3: *const DES_key_schedule,
11749        ivec: *mut DES_cblock,
11750        enc: ::core::ffi::c_int,
11751    );
11752}
11753unsafe extern "C" {
11754    pub fn DES_ede2_cbc_encrypt(
11755        in_: *const u8,
11756        out: *mut u8,
11757        len: usize,
11758        ks1: *const DES_key_schedule,
11759        ks2: *const DES_key_schedule,
11760        ivec: *mut DES_cblock,
11761        enc: ::core::ffi::c_int,
11762    );
11763}
11764unsafe extern "C" {
11765    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
11766}
11767unsafe extern "C" {
11768    pub fn DES_ede3_cfb64_encrypt(
11769        in_: *const u8,
11770        out: *mut u8,
11771        length: ::core::ffi::c_long,
11772        ks1: *mut DES_key_schedule,
11773        ks2: *mut DES_key_schedule,
11774        ks3: *mut DES_key_schedule,
11775        ivec: *mut DES_cblock,
11776        num: *mut ::core::ffi::c_int,
11777        enc: ::core::ffi::c_int,
11778    );
11779}
11780unsafe extern "C" {
11781    pub fn DES_ede3_cfb_encrypt(
11782        in_: *const u8,
11783        out: *mut u8,
11784        numbits: ::core::ffi::c_int,
11785        length: ::core::ffi::c_long,
11786        ks1: *mut DES_key_schedule,
11787        ks2: *mut DES_key_schedule,
11788        ks3: *mut DES_key_schedule,
11789        ivec: *mut DES_cblock,
11790        enc: ::core::ffi::c_int,
11791    );
11792}
11793unsafe extern "C" {
11794    pub fn DH_new() -> *mut DH;
11795}
11796unsafe extern "C" {
11797    pub fn DH_free(dh: *mut DH);
11798}
11799unsafe extern "C" {
11800    pub fn DH_up_ref(dh: *mut DH) -> ::core::ffi::c_int;
11801}
11802unsafe extern "C" {
11803    pub fn DH_bits(dh: *const DH) -> ::core::ffi::c_uint;
11804}
11805unsafe extern "C" {
11806    pub fn DH_size(dh: *const DH) -> ::core::ffi::c_int;
11807}
11808unsafe extern "C" {
11809    pub fn DH_get0_pub_key(dh: *const DH) -> *const BIGNUM;
11810}
11811unsafe extern "C" {
11812    pub fn DH_get0_priv_key(dh: *const DH) -> *const BIGNUM;
11813}
11814unsafe extern "C" {
11815    pub fn DH_get0_p(dh: *const DH) -> *const BIGNUM;
11816}
11817unsafe extern "C" {
11818    pub fn DH_get0_q(dh: *const DH) -> *const BIGNUM;
11819}
11820unsafe extern "C" {
11821    pub fn DH_get0_g(dh: *const DH) -> *const BIGNUM;
11822}
11823unsafe extern "C" {
11824    pub fn DH_get0_key(
11825        dh: *const DH,
11826        out_pub_key: *mut *const BIGNUM,
11827        out_priv_key: *mut *const BIGNUM,
11828    );
11829}
11830unsafe extern "C" {
11831    pub fn DH_set0_key(
11832        dh: *mut DH,
11833        pub_key: *mut BIGNUM,
11834        priv_key: *mut BIGNUM,
11835    ) -> ::core::ffi::c_int;
11836}
11837unsafe extern "C" {
11838    pub fn DH_get0_pqg(
11839        dh: *const DH,
11840        out_p: *mut *const BIGNUM,
11841        out_q: *mut *const BIGNUM,
11842        out_g: *mut *const BIGNUM,
11843    );
11844}
11845unsafe extern "C" {
11846    pub fn DH_set0_pqg(
11847        dh: *mut DH,
11848        p: *mut BIGNUM,
11849        q: *mut BIGNUM,
11850        g: *mut BIGNUM,
11851    ) -> ::core::ffi::c_int;
11852}
11853unsafe extern "C" {
11854    pub fn DH_set_length(dh: *mut DH, priv_length: ::core::ffi::c_uint) -> ::core::ffi::c_int;
11855}
11856unsafe extern "C" {
11857    pub fn DH_get_rfc7919_2048() -> *mut DH;
11858}
11859unsafe extern "C" {
11860    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
11861}
11862unsafe extern "C" {
11863    pub fn BN_get_rfc3526_prime_2048(ret: *mut BIGNUM) -> *mut BIGNUM;
11864}
11865unsafe extern "C" {
11866    pub fn BN_get_rfc3526_prime_3072(ret: *mut BIGNUM) -> *mut BIGNUM;
11867}
11868unsafe extern "C" {
11869    pub fn BN_get_rfc3526_prime_4096(ret: *mut BIGNUM) -> *mut BIGNUM;
11870}
11871unsafe extern "C" {
11872    pub fn BN_get_rfc3526_prime_6144(ret: *mut BIGNUM) -> *mut BIGNUM;
11873}
11874unsafe extern "C" {
11875    pub fn BN_get_rfc3526_prime_8192(ret: *mut BIGNUM) -> *mut BIGNUM;
11876}
11877unsafe extern "C" {
11878    pub fn DH_generate_parameters_ex(
11879        dh: *mut DH,
11880        prime_bits: ::core::ffi::c_int,
11881        generator: ::core::ffi::c_int,
11882        cb: *mut BN_GENCB,
11883    ) -> ::core::ffi::c_int;
11884}
11885unsafe extern "C" {
11886    pub fn DH_generate_key(dh: *mut DH) -> ::core::ffi::c_int;
11887}
11888unsafe extern "C" {
11889    pub fn DH_compute_key_padded(
11890        out: *mut u8,
11891        peers_key: *const BIGNUM,
11892        dh: *mut DH,
11893    ) -> ::core::ffi::c_int;
11894}
11895unsafe extern "C" {
11896    pub fn DH_compute_key_hashed(
11897        dh: *mut DH,
11898        out: *mut u8,
11899        out_len: *mut usize,
11900        max_out_len: usize,
11901        peers_key: *const BIGNUM,
11902        digest: *const EVP_MD,
11903    ) -> ::core::ffi::c_int;
11904}
11905unsafe extern "C" {
11906    pub fn DH_check(dh: *const DH, out_flags: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
11907}
11908unsafe extern "C" {
11909    pub fn DH_check_pub_key(
11910        dh: *const DH,
11911        pub_key: *const BIGNUM,
11912        out_flags: *mut ::core::ffi::c_int,
11913    ) -> ::core::ffi::c_int;
11914}
11915unsafe extern "C" {
11916    pub fn DHparams_dup(dh: *const DH) -> *mut DH;
11917}
11918unsafe extern "C" {
11919    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
11920}
11921unsafe extern "C" {
11922    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::core::ffi::c_int;
11923}
11924unsafe extern "C" {
11925    pub fn DH_generate_parameters(
11926        prime_len: ::core::ffi::c_int,
11927        generator: ::core::ffi::c_int,
11928        callback: ::core::option::Option<
11929            unsafe extern "C" fn(
11930                arg1: ::core::ffi::c_int,
11931                arg2: ::core::ffi::c_int,
11932                arg3: *mut ::core::ffi::c_void,
11933            ),
11934        >,
11935        cb_arg: *mut ::core::ffi::c_void,
11936    ) -> *mut DH;
11937}
11938unsafe extern "C" {
11939    pub fn d2i_DHparams(
11940        ret: *mut *mut DH,
11941        inp: *mut *const ::core::ffi::c_uchar,
11942        len: ::core::ffi::c_long,
11943    ) -> *mut DH;
11944}
11945unsafe extern "C" {
11946    pub fn i2d_DHparams(in_: *const DH, outp: *mut *mut ::core::ffi::c_uchar)
11947        -> ::core::ffi::c_int;
11948}
11949unsafe extern "C" {
11950    pub fn DH_compute_key(
11951        out: *mut u8,
11952        peers_key: *const BIGNUM,
11953        dh: *mut DH,
11954    ) -> ::core::ffi::c_int;
11955}
11956unsafe extern "C" {
11957    pub fn EVP_md4() -> *const EVP_MD;
11958}
11959unsafe extern "C" {
11960    pub fn EVP_md5() -> *const EVP_MD;
11961}
11962unsafe extern "C" {
11963    pub fn EVP_sha1() -> *const EVP_MD;
11964}
11965unsafe extern "C" {
11966    pub fn EVP_sha224() -> *const EVP_MD;
11967}
11968unsafe extern "C" {
11969    pub fn EVP_sha256() -> *const EVP_MD;
11970}
11971unsafe extern "C" {
11972    pub fn EVP_sha384() -> *const EVP_MD;
11973}
11974unsafe extern "C" {
11975    pub fn EVP_sha512() -> *const EVP_MD;
11976}
11977unsafe extern "C" {
11978    pub fn EVP_sha512_256() -> *const EVP_MD;
11979}
11980unsafe extern "C" {
11981    pub fn EVP_blake2b256() -> *const EVP_MD;
11982}
11983unsafe extern "C" {
11984    pub fn EVP_md5_sha1() -> *const EVP_MD;
11985}
11986unsafe extern "C" {
11987    pub fn EVP_get_digestbynid(nid: ::core::ffi::c_int) -> *const EVP_MD;
11988}
11989unsafe extern "C" {
11990    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
11991}
11992unsafe extern "C" {
11993    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
11994}
11995unsafe extern "C" {
11996    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
11997}
11998unsafe extern "C" {
11999    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
12000}
12001unsafe extern "C" {
12002    pub fn EVP_MD_CTX_cleanse(ctx: *mut EVP_MD_CTX);
12003}
12004unsafe extern "C" {
12005    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
12006}
12007unsafe extern "C" {
12008    pub fn EVP_MD_CTX_copy_ex(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12009}
12010unsafe extern "C" {
12011    pub fn EVP_MD_CTX_move(out: *mut EVP_MD_CTX, in_: *mut EVP_MD_CTX);
12012}
12013unsafe extern "C" {
12014    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
12015}
12016unsafe extern "C" {
12017    pub fn EVP_DigestInit_ex(
12018        ctx: *mut EVP_MD_CTX,
12019        type_: *const EVP_MD,
12020        engine: *mut ENGINE,
12021    ) -> ::core::ffi::c_int;
12022}
12023unsafe extern "C" {
12024    pub fn EVP_DigestUpdate(
12025        ctx: *mut EVP_MD_CTX,
12026        data: *const ::core::ffi::c_void,
12027        len: usize,
12028    ) -> ::core::ffi::c_int;
12029}
12030unsafe extern "C" {
12031    pub fn EVP_DigestFinal_ex(
12032        ctx: *mut EVP_MD_CTX,
12033        md_out: *mut u8,
12034        out_size: *mut ::core::ffi::c_uint,
12035    ) -> ::core::ffi::c_int;
12036}
12037unsafe extern "C" {
12038    pub fn EVP_DigestFinal(
12039        ctx: *mut EVP_MD_CTX,
12040        md_out: *mut u8,
12041        out_size: *mut ::core::ffi::c_uint,
12042    ) -> ::core::ffi::c_int;
12043}
12044unsafe extern "C" {
12045    pub fn EVP_Digest(
12046        data: *const ::core::ffi::c_void,
12047        len: usize,
12048        md_out: *mut u8,
12049        md_out_size: *mut ::core::ffi::c_uint,
12050        type_: *const EVP_MD,
12051        impl_: *mut ENGINE,
12052    ) -> ::core::ffi::c_int;
12053}
12054unsafe extern "C" {
12055    pub fn EVP_MD_type(md: *const EVP_MD) -> ::core::ffi::c_int;
12056}
12057unsafe extern "C" {
12058    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
12059}
12060unsafe extern "C" {
12061    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
12062}
12063unsafe extern "C" {
12064    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
12065}
12066unsafe extern "C" {
12067    pub fn EVP_MD_CTX_get0_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
12068}
12069unsafe extern "C" {
12070    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
12071}
12072unsafe extern "C" {
12073    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
12074}
12075unsafe extern "C" {
12076    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
12077}
12078unsafe extern "C" {
12079    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12080}
12081unsafe extern "C" {
12082    pub fn EVP_MD_CTX_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
12083}
12084unsafe extern "C" {
12085    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
12086}
12087unsafe extern "C" {
12088    pub fn EVP_parse_digest_algorithm_nid(cbs: *mut CBS) -> ::core::ffi::c_int;
12089}
12090unsafe extern "C" {
12091    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::core::ffi::c_int;
12092}
12093unsafe extern "C" {
12094    pub fn EVP_marshal_digest_algorithm_no_params(
12095        cbb: *mut CBB,
12096        md: *const EVP_MD,
12097    ) -> ::core::ffi::c_int;
12098}
12099unsafe extern "C" {
12100    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
12101}
12102unsafe extern "C" {
12103    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12104}
12105unsafe extern "C" {
12106    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::core::ffi::c_int;
12107}
12108unsafe extern "C" {
12109    pub fn EVP_get_digestbyname(name: *const ::core::ffi::c_char) -> *const EVP_MD;
12110}
12111unsafe extern "C" {
12112    pub fn EVP_dss1() -> *const EVP_MD;
12113}
12114unsafe extern "C" {
12115    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
12116}
12117unsafe extern "C" {
12118    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
12119}
12120unsafe extern "C" {
12121    pub fn EVP_DigestFinalXOF(ctx: *mut EVP_MD_CTX, out: *mut u8, len: usize)
12122        -> ::core::ffi::c_int;
12123}
12124unsafe extern "C" {
12125    pub fn EVP_MD_meth_get_flags(md: *const EVP_MD) -> u32;
12126}
12127unsafe extern "C" {
12128    pub fn EVP_MD_CTX_set_flags(ctx: *mut EVP_MD_CTX, flags: ::core::ffi::c_int);
12129}
12130unsafe extern "C" {
12131    pub fn EVP_MD_nid(md: *const EVP_MD) -> ::core::ffi::c_int;
12132}
12133unsafe extern "C" {
12134    pub fn EVP_MD_fetch(
12135        libctx: *mut OSSL_LIB_CTX,
12136        name: *const ::core::ffi::c_char,
12137        propq: *const ::core::ffi::c_char,
12138    ) -> *mut EVP_MD;
12139}
12140unsafe extern "C" {
12141    pub fn EVP_MD_up_ref(md: *mut EVP_MD) -> ::core::ffi::c_int;
12142}
12143unsafe extern "C" {
12144    pub fn EVP_MD_free(md: *mut EVP_MD);
12145}
12146unsafe extern "C" {
12147    pub fn EVP_Q_digest(
12148        libctx: *mut OSSL_LIB_CTX,
12149        name: *const ::core::ffi::c_char,
12150        propq: *const ::core::ffi::c_char,
12151        in_: *const ::core::ffi::c_void,
12152        in_len: usize,
12153        out: *mut u8,
12154        out_len: *mut usize,
12155    ) -> ::core::ffi::c_int;
12156}
12157#[repr(C)]
12158#[derive(Debug)]
12159pub struct evp_md_pctx_ops {
12160    _unused: [u8; 0],
12161}
12162#[repr(C)]
12163#[derive(Copy, Clone)]
12164pub struct env_md_ctx_st {
12165    pub __bindgen_anon_1: env_md_ctx_st__bindgen_ty_1,
12166    pub digest: *const EVP_MD,
12167    pub pctx: *mut EVP_PKEY_CTX,
12168    pub pctx_ops: *const evp_md_pctx_ops,
12169}
12170#[repr(C)]
12171#[derive(Copy, Clone)]
12172pub union env_md_ctx_st__bindgen_ty_1 {
12173    pub md_data: [u8; 208usize],
12174    pub alignment: u64,
12175}
12176unsafe extern "C" {
12177    pub fn DSA_new() -> *mut DSA;
12178}
12179unsafe extern "C" {
12180    pub fn DSA_free(dsa: *mut DSA);
12181}
12182unsafe extern "C" {
12183    pub fn DSA_up_ref(dsa: *mut DSA) -> ::core::ffi::c_int;
12184}
12185unsafe extern "C" {
12186    pub fn DSA_bits(dsa: *const DSA) -> ::core::ffi::c_uint;
12187}
12188unsafe extern "C" {
12189    pub fn DSA_get0_pub_key(dsa: *const DSA) -> *const BIGNUM;
12190}
12191unsafe extern "C" {
12192    pub fn DSA_get0_priv_key(dsa: *const DSA) -> *const BIGNUM;
12193}
12194unsafe extern "C" {
12195    pub fn DSA_get0_p(dsa: *const DSA) -> *const BIGNUM;
12196}
12197unsafe extern "C" {
12198    pub fn DSA_get0_q(dsa: *const DSA) -> *const BIGNUM;
12199}
12200unsafe extern "C" {
12201    pub fn DSA_get0_g(dsa: *const DSA) -> *const BIGNUM;
12202}
12203unsafe extern "C" {
12204    pub fn DSA_get0_key(
12205        dsa: *const DSA,
12206        out_pub_key: *mut *const BIGNUM,
12207        out_priv_key: *mut *const BIGNUM,
12208    );
12209}
12210unsafe extern "C" {
12211    pub fn DSA_get0_pqg(
12212        dsa: *const DSA,
12213        out_p: *mut *const BIGNUM,
12214        out_q: *mut *const BIGNUM,
12215        out_g: *mut *const BIGNUM,
12216    );
12217}
12218unsafe extern "C" {
12219    pub fn DSA_set0_key(
12220        dsa: *mut DSA,
12221        pub_key: *mut BIGNUM,
12222        priv_key: *mut BIGNUM,
12223    ) -> ::core::ffi::c_int;
12224}
12225unsafe extern "C" {
12226    pub fn DSA_set0_pqg(
12227        dsa: *mut DSA,
12228        p: *mut BIGNUM,
12229        q: *mut BIGNUM,
12230        g: *mut BIGNUM,
12231    ) -> ::core::ffi::c_int;
12232}
12233unsafe extern "C" {
12234    pub fn DSA_generate_parameters_ex(
12235        dsa: *mut DSA,
12236        bits: ::core::ffi::c_uint,
12237        seed: *const u8,
12238        seed_len: usize,
12239        out_counter: *mut ::core::ffi::c_int,
12240        out_h: *mut ::core::ffi::c_ulong,
12241        cb: *mut BN_GENCB,
12242    ) -> ::core::ffi::c_int;
12243}
12244unsafe extern "C" {
12245    pub fn DSAparams_dup(dsa: *const DSA) -> *mut DSA;
12246}
12247unsafe extern "C" {
12248    pub fn DSA_generate_key(dsa: *mut DSA) -> ::core::ffi::c_int;
12249}
12250#[repr(C)]
12251#[derive(Debug, Copy, Clone)]
12252pub struct DSA_SIG_st {
12253    pub r: *mut BIGNUM,
12254    pub s: *mut BIGNUM,
12255}
12256unsafe extern "C" {
12257    pub fn DSA_SIG_new() -> *mut DSA_SIG;
12258}
12259unsafe extern "C" {
12260    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
12261}
12262unsafe extern "C" {
12263    pub fn DSA_SIG_get0(sig: *const DSA_SIG, out_r: *mut *const BIGNUM, out_s: *mut *const BIGNUM);
12264}
12265unsafe extern "C" {
12266    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, r: *mut BIGNUM, s: *mut BIGNUM) -> ::core::ffi::c_int;
12267}
12268unsafe extern "C" {
12269    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
12270}
12271unsafe extern "C" {
12272    pub fn DSA_do_verify(
12273        digest: *const u8,
12274        digest_len: usize,
12275        sig: *const DSA_SIG,
12276        dsa: *const DSA,
12277    ) -> ::core::ffi::c_int;
12278}
12279unsafe extern "C" {
12280    pub fn DSA_do_check_signature(
12281        out_valid: *mut ::core::ffi::c_int,
12282        digest: *const u8,
12283        digest_len: usize,
12284        sig: *const DSA_SIG,
12285        dsa: *const DSA,
12286    ) -> ::core::ffi::c_int;
12287}
12288unsafe extern "C" {
12289    pub fn DSA_sign(
12290        type_: ::core::ffi::c_int,
12291        digest: *const u8,
12292        digest_len: usize,
12293        out_sig: *mut u8,
12294        out_siglen: *mut ::core::ffi::c_uint,
12295        dsa: *const DSA,
12296    ) -> ::core::ffi::c_int;
12297}
12298unsafe extern "C" {
12299    pub fn DSA_verify(
12300        type_: ::core::ffi::c_int,
12301        digest: *const u8,
12302        digest_len: usize,
12303        sig: *const u8,
12304        sig_len: usize,
12305        dsa: *const DSA,
12306    ) -> ::core::ffi::c_int;
12307}
12308unsafe extern "C" {
12309    pub fn DSA_check_signature(
12310        out_valid: *mut ::core::ffi::c_int,
12311        digest: *const u8,
12312        digest_len: usize,
12313        sig: *const u8,
12314        sig_len: usize,
12315        dsa: *const DSA,
12316    ) -> ::core::ffi::c_int;
12317}
12318unsafe extern "C" {
12319    pub fn DSA_size(dsa: *const DSA) -> ::core::ffi::c_int;
12320}
12321unsafe extern "C" {
12322    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
12323}
12324unsafe extern "C" {
12325    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::core::ffi::c_int;
12326}
12327unsafe extern "C" {
12328    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
12329}
12330unsafe extern "C" {
12331    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12332}
12333unsafe extern "C" {
12334    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
12335}
12336unsafe extern "C" {
12337    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12338}
12339unsafe extern "C" {
12340    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
12341}
12342unsafe extern "C" {
12343    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12344}
12345unsafe extern "C" {
12346    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
12347}
12348unsafe extern "C" {
12349    pub fn DSA_get_ex_new_index(
12350        argl: ::core::ffi::c_long,
12351        argp: *mut ::core::ffi::c_void,
12352        unused: *mut CRYPTO_EX_unused,
12353        dup_unused: CRYPTO_EX_dup,
12354        free_func: CRYPTO_EX_free,
12355    ) -> ::core::ffi::c_int;
12356}
12357unsafe extern "C" {
12358    pub fn DSA_set_ex_data(
12359        dsa: *mut DSA,
12360        idx: ::core::ffi::c_int,
12361        arg: *mut ::core::ffi::c_void,
12362    ) -> ::core::ffi::c_int;
12363}
12364unsafe extern "C" {
12365    pub fn DSA_get_ex_data(dsa: *const DSA, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
12366}
12367unsafe extern "C" {
12368    pub fn d2i_DSA_SIG(
12369        out_sig: *mut *mut DSA_SIG,
12370        inp: *mut *const u8,
12371        len: ::core::ffi::c_long,
12372    ) -> *mut DSA_SIG;
12373}
12374unsafe extern "C" {
12375    pub fn i2d_DSA_SIG(in_: *const DSA_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
12376}
12377unsafe extern "C" {
12378    pub fn d2i_DSAPublicKey(
12379        out: *mut *mut DSA,
12380        inp: *mut *const u8,
12381        len: ::core::ffi::c_long,
12382    ) -> *mut DSA;
12383}
12384unsafe extern "C" {
12385    pub fn i2d_DSAPublicKey(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12386}
12387unsafe extern "C" {
12388    pub fn d2i_DSAPrivateKey(
12389        out: *mut *mut DSA,
12390        inp: *mut *const u8,
12391        len: ::core::ffi::c_long,
12392    ) -> *mut DSA;
12393}
12394unsafe extern "C" {
12395    pub fn i2d_DSAPrivateKey(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12396}
12397unsafe extern "C" {
12398    pub fn d2i_DSAparams(
12399        out: *mut *mut DSA,
12400        inp: *mut *const u8,
12401        len: ::core::ffi::c_long,
12402    ) -> *mut DSA;
12403}
12404unsafe extern "C" {
12405    pub fn i2d_DSAparams(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12406}
12407unsafe extern "C" {
12408    pub fn DSA_generate_parameters(
12409        bits: ::core::ffi::c_int,
12410        seed: *mut ::core::ffi::c_uchar,
12411        seed_len: ::core::ffi::c_int,
12412        counter_ret: *mut ::core::ffi::c_int,
12413        h_ret: *mut ::core::ffi::c_ulong,
12414        callback: ::core::option::Option<
12415            unsafe extern "C" fn(
12416                arg1: ::core::ffi::c_int,
12417                arg2: ::core::ffi::c_int,
12418                arg3: *mut ::core::ffi::c_void,
12419            ),
12420        >,
12421        cb_arg: *mut ::core::ffi::c_void,
12422    ) -> *mut DSA;
12423}
12424#[repr(u32)]
12425#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12426pub enum point_conversion_form_t {
12427    POINT_CONVERSION_COMPRESSED = 2,
12428    POINT_CONVERSION_UNCOMPRESSED = 4,
12429    POINT_CONVERSION_HYBRID = 6,
12430}
12431unsafe extern "C" {
12432    pub fn EC_group_p224() -> *const EC_GROUP;
12433}
12434unsafe extern "C" {
12435    pub fn EC_group_p256() -> *const EC_GROUP;
12436}
12437unsafe extern "C" {
12438    pub fn EC_group_p384() -> *const EC_GROUP;
12439}
12440unsafe extern "C" {
12441    pub fn EC_group_p521() -> *const EC_GROUP;
12442}
12443unsafe extern "C" {
12444    pub fn EC_GROUP_new_by_curve_name(nid: ::core::ffi::c_int) -> *mut EC_GROUP;
12445}
12446unsafe extern "C" {
12447    pub fn EC_GROUP_cmp(
12448        a: *const EC_GROUP,
12449        b: *const EC_GROUP,
12450        ignored: *mut BN_CTX,
12451    ) -> ::core::ffi::c_int;
12452}
12453unsafe extern "C" {
12454    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
12455}
12456unsafe extern "C" {
12457    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
12458}
12459unsafe extern "C" {
12460    pub fn EC_GROUP_order_bits(group: *const EC_GROUP) -> ::core::ffi::c_int;
12461}
12462unsafe extern "C" {
12463    pub fn EC_GROUP_get_cofactor(
12464        group: *const EC_GROUP,
12465        cofactor: *mut BIGNUM,
12466        ctx: *mut BN_CTX,
12467    ) -> ::core::ffi::c_int;
12468}
12469unsafe extern "C" {
12470    pub fn EC_GROUP_get_curve_GFp(
12471        group: *const EC_GROUP,
12472        out_p: *mut BIGNUM,
12473        out_a: *mut BIGNUM,
12474        out_b: *mut BIGNUM,
12475        ctx: *mut BN_CTX,
12476    ) -> ::core::ffi::c_int;
12477}
12478unsafe extern "C" {
12479    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::core::ffi::c_int;
12480}
12481unsafe extern "C" {
12482    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::core::ffi::c_uint;
12483}
12484unsafe extern "C" {
12485    pub fn EC_curve_nid2nist(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
12486}
12487unsafe extern "C" {
12488    pub fn EC_curve_nist2nid(name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
12489}
12490unsafe extern "C" {
12491    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
12492}
12493unsafe extern "C" {
12494    pub fn EC_POINT_free(point: *mut EC_POINT);
12495}
12496unsafe extern "C" {
12497    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::core::ffi::c_int;
12498}
12499unsafe extern "C" {
12500    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
12501}
12502unsafe extern "C" {
12503    pub fn EC_POINT_set_to_infinity(
12504        group: *const EC_GROUP,
12505        point: *mut EC_POINT,
12506    ) -> ::core::ffi::c_int;
12507}
12508unsafe extern "C" {
12509    pub fn EC_POINT_is_at_infinity(
12510        group: *const EC_GROUP,
12511        point: *const EC_POINT,
12512    ) -> ::core::ffi::c_int;
12513}
12514unsafe extern "C" {
12515    pub fn EC_POINT_is_on_curve(
12516        group: *const EC_GROUP,
12517        point: *const EC_POINT,
12518        ctx: *mut BN_CTX,
12519    ) -> ::core::ffi::c_int;
12520}
12521unsafe extern "C" {
12522    pub fn EC_POINT_cmp(
12523        group: *const EC_GROUP,
12524        a: *const EC_POINT,
12525        b: *const EC_POINT,
12526        ctx: *mut BN_CTX,
12527    ) -> ::core::ffi::c_int;
12528}
12529unsafe extern "C" {
12530    pub fn EC_POINT_get_affine_coordinates_GFp(
12531        group: *const EC_GROUP,
12532        point: *const EC_POINT,
12533        x: *mut BIGNUM,
12534        y: *mut BIGNUM,
12535        ctx: *mut BN_CTX,
12536    ) -> ::core::ffi::c_int;
12537}
12538unsafe extern "C" {
12539    pub fn EC_POINT_get_affine_coordinates(
12540        group: *const EC_GROUP,
12541        point: *const EC_POINT,
12542        x: *mut BIGNUM,
12543        y: *mut BIGNUM,
12544        ctx: *mut BN_CTX,
12545    ) -> ::core::ffi::c_int;
12546}
12547unsafe extern "C" {
12548    pub fn EC_POINT_set_affine_coordinates_GFp(
12549        group: *const EC_GROUP,
12550        point: *mut EC_POINT,
12551        x: *const BIGNUM,
12552        y: *const BIGNUM,
12553        ctx: *mut BN_CTX,
12554    ) -> ::core::ffi::c_int;
12555}
12556unsafe extern "C" {
12557    pub fn EC_POINT_set_affine_coordinates(
12558        group: *const EC_GROUP,
12559        point: *mut EC_POINT,
12560        x: *const BIGNUM,
12561        y: *const BIGNUM,
12562        ctx: *mut BN_CTX,
12563    ) -> ::core::ffi::c_int;
12564}
12565unsafe extern "C" {
12566    pub fn EC_POINT_point2oct(
12567        group: *const EC_GROUP,
12568        point: *const EC_POINT,
12569        form: point_conversion_form_t,
12570        buf: *mut u8,
12571        max_out: usize,
12572        ctx: *mut BN_CTX,
12573    ) -> usize;
12574}
12575unsafe extern "C" {
12576    pub fn EC_POINT_point2buf(
12577        group: *const EC_GROUP,
12578        point: *const EC_POINT,
12579        form: point_conversion_form_t,
12580        out_buf: *mut *mut u8,
12581        ctx: *mut BN_CTX,
12582    ) -> usize;
12583}
12584unsafe extern "C" {
12585    pub fn EC_POINT_point2cbb(
12586        out: *mut CBB,
12587        group: *const EC_GROUP,
12588        point: *const EC_POINT,
12589        form: point_conversion_form_t,
12590        ctx: *mut BN_CTX,
12591    ) -> ::core::ffi::c_int;
12592}
12593unsafe extern "C" {
12594    pub fn EC_POINT_oct2point(
12595        group: *const EC_GROUP,
12596        point: *mut EC_POINT,
12597        buf: *const u8,
12598        len: usize,
12599        ctx: *mut BN_CTX,
12600    ) -> ::core::ffi::c_int;
12601}
12602unsafe extern "C" {
12603    pub fn EC_POINT_set_compressed_coordinates_GFp(
12604        group: *const EC_GROUP,
12605        point: *mut EC_POINT,
12606        x: *const BIGNUM,
12607        y_bit: ::core::ffi::c_int,
12608        ctx: *mut BN_CTX,
12609    ) -> ::core::ffi::c_int;
12610}
12611unsafe extern "C" {
12612    pub fn EC_POINT_add(
12613        group: *const EC_GROUP,
12614        r: *mut EC_POINT,
12615        a: *const EC_POINT,
12616        b: *const EC_POINT,
12617        ctx: *mut BN_CTX,
12618    ) -> ::core::ffi::c_int;
12619}
12620unsafe extern "C" {
12621    pub fn EC_POINT_dbl(
12622        group: *const EC_GROUP,
12623        r: *mut EC_POINT,
12624        a: *const EC_POINT,
12625        ctx: *mut BN_CTX,
12626    ) -> ::core::ffi::c_int;
12627}
12628unsafe extern "C" {
12629    pub fn EC_POINT_invert(
12630        group: *const EC_GROUP,
12631        a: *mut EC_POINT,
12632        ctx: *mut BN_CTX,
12633    ) -> ::core::ffi::c_int;
12634}
12635unsafe extern "C" {
12636    pub fn EC_POINT_mul(
12637        group: *const EC_GROUP,
12638        r: *mut EC_POINT,
12639        n: *const BIGNUM,
12640        q: *const EC_POINT,
12641        m: *const BIGNUM,
12642        ctx: *mut BN_CTX,
12643    ) -> ::core::ffi::c_int;
12644}
12645unsafe extern "C" {
12646    pub fn EC_hash_to_curve_p256_xmd_sha256_sswu(
12647        group: *const EC_GROUP,
12648        out: *mut EC_POINT,
12649        dst: *const u8,
12650        dst_len: usize,
12651        msg: *const u8,
12652        msg_len: usize,
12653    ) -> ::core::ffi::c_int;
12654}
12655unsafe extern "C" {
12656    pub fn EC_hash_to_curve_p384_xmd_sha384_sswu(
12657        group: *const EC_GROUP,
12658        out: *mut EC_POINT,
12659        dst: *const u8,
12660        dst_len: usize,
12661        msg: *const u8,
12662        msg_len: usize,
12663    ) -> ::core::ffi::c_int;
12664}
12665unsafe extern "C" {
12666    pub fn EC_encode_to_curve_p256_xmd_sha256_sswu(
12667        group: *const EC_GROUP,
12668        out: *mut EC_POINT,
12669        dst: *const u8,
12670        dst_len: usize,
12671        msg: *const u8,
12672        msg_len: usize,
12673    ) -> ::core::ffi::c_int;
12674}
12675unsafe extern "C" {
12676    pub fn EC_encode_to_curve_p384_xmd_sha384_sswu(
12677        group: *const EC_GROUP,
12678        out: *mut EC_POINT,
12679        dst: *const u8,
12680        dst_len: usize,
12681        msg: *const u8,
12682        msg_len: usize,
12683    ) -> ::core::ffi::c_int;
12684}
12685unsafe extern "C" {
12686    pub fn EC_wpa3_sae_hash_to_curve_p256(
12687        group: *const EC_GROUP,
12688        out: *mut EC_POINT,
12689        salt: *const u8,
12690        salt_len: usize,
12691        ikm: *const u8,
12692        ikm_len: usize,
12693    ) -> ::core::ffi::c_int;
12694}
12695unsafe extern "C" {
12696    pub fn EC_GROUP_free(group: *mut EC_GROUP);
12697}
12698unsafe extern "C" {
12699    pub fn EC_GROUP_dup(group: *const EC_GROUP) -> *mut EC_GROUP;
12700}
12701unsafe extern "C" {
12702    pub fn EC_GROUP_new_curve_GFp(
12703        p: *const BIGNUM,
12704        a: *const BIGNUM,
12705        b: *const BIGNUM,
12706        ctx: *mut BN_CTX,
12707    ) -> *mut EC_GROUP;
12708}
12709unsafe extern "C" {
12710    pub fn EC_GROUP_set_generator(
12711        group: *mut EC_GROUP,
12712        generator: *const EC_POINT,
12713        order: *const BIGNUM,
12714        cofactor: *const BIGNUM,
12715    ) -> ::core::ffi::c_int;
12716}
12717unsafe extern "C" {
12718    pub fn EC_GROUP_get_order(
12719        group: *const EC_GROUP,
12720        order: *mut BIGNUM,
12721        ctx: *mut BN_CTX,
12722    ) -> ::core::ffi::c_int;
12723}
12724unsafe extern "C" {
12725    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::core::ffi::c_int);
12726}
12727unsafe extern "C" {
12728    pub fn EC_GROUP_get_asn1_flag(group: *const EC_GROUP) -> ::core::ffi::c_int;
12729}
12730#[repr(C)]
12731#[derive(Debug)]
12732pub struct ec_method_st {
12733    _unused: [u8; 0],
12734}
12735pub type EC_METHOD = ec_method_st;
12736unsafe extern "C" {
12737    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
12738}
12739unsafe extern "C" {
12740    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::core::ffi::c_int;
12741}
12742unsafe extern "C" {
12743    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
12744}
12745#[repr(C)]
12746#[derive(Debug, Copy, Clone)]
12747pub struct EC_builtin_curve {
12748    pub nid: ::core::ffi::c_int,
12749    pub comment: *const ::core::ffi::c_char,
12750}
12751unsafe extern "C" {
12752    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
12753        -> usize;
12754}
12755unsafe extern "C" {
12756    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
12757}
12758unsafe extern "C" {
12759    pub fn ENGINE_new() -> *mut ENGINE;
12760}
12761unsafe extern "C" {
12762    pub fn ENGINE_free(engine: *mut ENGINE) -> ::core::ffi::c_int;
12763}
12764unsafe extern "C" {
12765    pub fn ENGINE_set_RSA_method(
12766        engine: *mut ENGINE,
12767        method: *const RSA_METHOD,
12768        method_size: usize,
12769    ) -> ::core::ffi::c_int;
12770}
12771unsafe extern "C" {
12772    pub fn ENGINE_get_RSA_method(engine: *const ENGINE) -> *mut RSA_METHOD;
12773}
12774unsafe extern "C" {
12775    pub fn ENGINE_set_ECDSA_method(
12776        engine: *mut ENGINE,
12777        method: *const ECDSA_METHOD,
12778        method_size: usize,
12779    ) -> ::core::ffi::c_int;
12780}
12781unsafe extern "C" {
12782    pub fn ENGINE_get_ECDSA_method(engine: *const ENGINE) -> *mut ECDSA_METHOD;
12783}
12784unsafe extern "C" {
12785    pub fn METHOD_ref(method: *mut ::core::ffi::c_void);
12786}
12787unsafe extern "C" {
12788    pub fn METHOD_unref(method: *mut ::core::ffi::c_void);
12789}
12790#[repr(C)]
12791#[derive(Debug, Copy, Clone)]
12792pub struct openssl_method_common_st {
12793    pub references: ::core::ffi::c_int,
12794    pub is_static: ::core::ffi::c_char,
12795}
12796unsafe extern "C" {
12797    pub fn EC_KEY_new() -> *mut EC_KEY;
12798}
12799unsafe extern "C" {
12800    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
12801}
12802unsafe extern "C" {
12803    pub fn EC_KEY_new_by_curve_name(nid: ::core::ffi::c_int) -> *mut EC_KEY;
12804}
12805unsafe extern "C" {
12806    pub fn EC_KEY_free(key: *mut EC_KEY);
12807}
12808unsafe extern "C" {
12809    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
12810}
12811unsafe extern "C" {
12812    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::core::ffi::c_int;
12813}
12814unsafe extern "C" {
12815    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::core::ffi::c_int;
12816}
12817unsafe extern "C" {
12818    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
12819}
12820unsafe extern "C" {
12821    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::core::ffi::c_int;
12822}
12823unsafe extern "C" {
12824    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
12825}
12826unsafe extern "C" {
12827    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, priv_: *const BIGNUM) -> ::core::ffi::c_int;
12828}
12829unsafe extern "C" {
12830    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
12831}
12832unsafe extern "C" {
12833    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::core::ffi::c_int;
12834}
12835unsafe extern "C" {
12836    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::core::ffi::c_uint;
12837}
12838unsafe extern "C" {
12839    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::core::ffi::c_uint);
12840}
12841unsafe extern "C" {
12842    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
12843}
12844unsafe extern "C" {
12845    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
12846}
12847unsafe extern "C" {
12848    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::core::ffi::c_int;
12849}
12850unsafe extern "C" {
12851    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::core::ffi::c_int;
12852}
12853unsafe extern "C" {
12854    pub fn EC_KEY_set_public_key_affine_coordinates(
12855        key: *mut EC_KEY,
12856        x: *const BIGNUM,
12857        y: *const BIGNUM,
12858    ) -> ::core::ffi::c_int;
12859}
12860unsafe extern "C" {
12861    pub fn EC_KEY_oct2key(
12862        key: *mut EC_KEY,
12863        in_: *const u8,
12864        len: usize,
12865        ctx: *mut BN_CTX,
12866    ) -> ::core::ffi::c_int;
12867}
12868unsafe extern "C" {
12869    pub fn EC_KEY_key2buf(
12870        key: *const EC_KEY,
12871        form: point_conversion_form_t,
12872        out_buf: *mut *mut u8,
12873        ctx: *mut BN_CTX,
12874    ) -> usize;
12875}
12876unsafe extern "C" {
12877    pub fn EC_KEY_oct2priv(key: *mut EC_KEY, in_: *const u8, len: usize) -> ::core::ffi::c_int;
12878}
12879unsafe extern "C" {
12880    pub fn EC_KEY_priv2oct(key: *const EC_KEY, out: *mut u8, max_out: usize) -> usize;
12881}
12882unsafe extern "C" {
12883    pub fn EC_KEY_priv2buf(key: *const EC_KEY, out_buf: *mut *mut u8) -> usize;
12884}
12885unsafe extern "C" {
12886    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::core::ffi::c_int;
12887}
12888unsafe extern "C" {
12889    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::core::ffi::c_int;
12890}
12891unsafe extern "C" {
12892    pub fn EC_KEY_derive_from_secret(
12893        group: *const EC_GROUP,
12894        secret: *const u8,
12895        secret_len: usize,
12896    ) -> *mut EC_KEY;
12897}
12898unsafe extern "C" {
12899    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
12900}
12901unsafe extern "C" {
12902    pub fn EC_KEY_marshal_private_key(
12903        cbb: *mut CBB,
12904        key: *const EC_KEY,
12905        enc_flags: ::core::ffi::c_uint,
12906    ) -> ::core::ffi::c_int;
12907}
12908unsafe extern "C" {
12909    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
12910}
12911unsafe extern "C" {
12912    pub fn EC_KEY_marshal_curve_name(cbb: *mut CBB, group: *const EC_GROUP) -> ::core::ffi::c_int;
12913}
12914unsafe extern "C" {
12915    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
12916}
12917unsafe extern "C" {
12918    pub fn EC_KEY_get_ex_new_index(
12919        argl: ::core::ffi::c_long,
12920        argp: *mut ::core::ffi::c_void,
12921        unused: *mut CRYPTO_EX_unused,
12922        dup_unused: CRYPTO_EX_dup,
12923        free_func: CRYPTO_EX_free,
12924    ) -> ::core::ffi::c_int;
12925}
12926unsafe extern "C" {
12927    pub fn EC_KEY_set_ex_data(
12928        r: *mut EC_KEY,
12929        idx: ::core::ffi::c_int,
12930        arg: *mut ::core::ffi::c_void,
12931    ) -> ::core::ffi::c_int;
12932}
12933unsafe extern "C" {
12934    pub fn EC_KEY_get_ex_data(
12935        r: *const EC_KEY,
12936        idx: ::core::ffi::c_int,
12937    ) -> *mut ::core::ffi::c_void;
12938}
12939#[repr(C)]
12940#[derive(Debug, Copy, Clone)]
12941pub struct ecdsa_method_st {
12942    pub common: openssl_method_common_st,
12943    pub app_data: *mut ::core::ffi::c_void,
12944    pub init: ::core::option::Option<unsafe extern "C" fn(key: *mut EC_KEY) -> ::core::ffi::c_int>,
12945    pub finish:
12946        ::core::option::Option<unsafe extern "C" fn(key: *mut EC_KEY) -> ::core::ffi::c_int>,
12947    pub sign: ::core::option::Option<
12948        unsafe extern "C" fn(
12949            digest: *const u8,
12950            digest_len: usize,
12951            sig: *mut u8,
12952            sig_len: *mut ::core::ffi::c_uint,
12953            eckey: *mut EC_KEY,
12954        ) -> ::core::ffi::c_int,
12955    >,
12956    pub flags: ::core::ffi::c_int,
12957}
12958unsafe extern "C" {
12959    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::core::ffi::c_int);
12960}
12961unsafe extern "C" {
12962    pub fn d2i_ECPrivateKey(
12963        out_key: *mut *mut EC_KEY,
12964        inp: *mut *const u8,
12965        len: ::core::ffi::c_long,
12966    ) -> *mut EC_KEY;
12967}
12968unsafe extern "C" {
12969    pub fn i2d_ECPrivateKey(key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
12970}
12971unsafe extern "C" {
12972    pub fn d2i_ECPKParameters(
12973        out: *mut *mut EC_GROUP,
12974        inp: *mut *const u8,
12975        len: ::core::ffi::c_long,
12976    ) -> *mut EC_GROUP;
12977}
12978unsafe extern "C" {
12979    pub fn i2d_ECPKParameters(group: *const EC_GROUP, outp: *mut *mut u8) -> ::core::ffi::c_int;
12980}
12981unsafe extern "C" {
12982    pub fn d2i_ECParameters(
12983        out_key: *mut *mut EC_KEY,
12984        inp: *mut *const u8,
12985        len: ::core::ffi::c_long,
12986    ) -> *mut EC_KEY;
12987}
12988unsafe extern "C" {
12989    pub fn i2d_ECParameters(key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
12990}
12991unsafe extern "C" {
12992    pub fn o2i_ECPublicKey(
12993        out_key: *mut *mut EC_KEY,
12994        inp: *mut *const u8,
12995        len: ::core::ffi::c_long,
12996    ) -> *mut EC_KEY;
12997}
12998unsafe extern "C" {
12999    pub fn i2o_ECPublicKey(
13000        key: *const EC_KEY,
13001        outp: *mut *mut ::core::ffi::c_uchar,
13002    ) -> ::core::ffi::c_int;
13003}
13004unsafe extern "C" {
13005    pub fn ECDH_compute_key(
13006        out: *mut ::core::ffi::c_void,
13007        outlen: usize,
13008        pub_key: *const EC_POINT,
13009        priv_key: *const EC_KEY,
13010        kdf: ::core::option::Option<
13011            unsafe extern "C" fn(
13012                in_: *const ::core::ffi::c_void,
13013                inlen: usize,
13014                out: *mut ::core::ffi::c_void,
13015                outlen: *mut usize,
13016            ) -> *mut ::core::ffi::c_void,
13017        >,
13018    ) -> ::core::ffi::c_int;
13019}
13020unsafe extern "C" {
13021    pub fn ECDH_compute_key_fips(
13022        out: *mut u8,
13023        out_len: usize,
13024        pub_key: *const EC_POINT,
13025        priv_key: *const EC_KEY,
13026    ) -> ::core::ffi::c_int;
13027}
13028unsafe extern "C" {
13029    pub fn ECDSA_sign(
13030        type_: ::core::ffi::c_int,
13031        digest: *const u8,
13032        digest_len: usize,
13033        sig: *mut u8,
13034        sig_len: *mut ::core::ffi::c_uint,
13035        key: *const EC_KEY,
13036    ) -> ::core::ffi::c_int;
13037}
13038unsafe extern "C" {
13039    pub fn ECDSA_verify(
13040        type_: ::core::ffi::c_int,
13041        digest: *const u8,
13042        digest_len: usize,
13043        sig: *const u8,
13044        sig_len: usize,
13045        key: *const EC_KEY,
13046    ) -> ::core::ffi::c_int;
13047}
13048unsafe extern "C" {
13049    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
13050}
13051#[repr(C)]
13052#[derive(Debug, Copy, Clone)]
13053pub struct ecdsa_sig_st {
13054    pub r: *mut BIGNUM,
13055    pub s: *mut BIGNUM,
13056}
13057unsafe extern "C" {
13058    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
13059}
13060unsafe extern "C" {
13061    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
13062}
13063unsafe extern "C" {
13064    pub fn ECDSA_SIG_get0_r(sig: *const ECDSA_SIG) -> *const BIGNUM;
13065}
13066unsafe extern "C" {
13067    pub fn ECDSA_SIG_get0_s(sig: *const ECDSA_SIG) -> *const BIGNUM;
13068}
13069unsafe extern "C" {
13070    pub fn ECDSA_SIG_get0(
13071        sig: *const ECDSA_SIG,
13072        out_r: *mut *const BIGNUM,
13073        out_s: *mut *const BIGNUM,
13074    );
13075}
13076unsafe extern "C" {
13077    pub fn ECDSA_SIG_set0(
13078        sig: *mut ECDSA_SIG,
13079        r: *mut BIGNUM,
13080        s: *mut BIGNUM,
13081    ) -> ::core::ffi::c_int;
13082}
13083unsafe extern "C" {
13084    pub fn ECDSA_do_sign(
13085        digest: *const u8,
13086        digest_len: usize,
13087        key: *const EC_KEY,
13088    ) -> *mut ECDSA_SIG;
13089}
13090unsafe extern "C" {
13091    pub fn ECDSA_do_verify(
13092        digest: *const u8,
13093        digest_len: usize,
13094        sig: *const ECDSA_SIG,
13095        key: *const EC_KEY,
13096    ) -> ::core::ffi::c_int;
13097}
13098unsafe extern "C" {
13099    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
13100}
13101unsafe extern "C" {
13102    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
13103}
13104unsafe extern "C" {
13105    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::core::ffi::c_int;
13106}
13107unsafe extern "C" {
13108    pub fn ECDSA_SIG_to_bytes(
13109        out_bytes: *mut *mut u8,
13110        out_len: *mut usize,
13111        sig: *const ECDSA_SIG,
13112    ) -> ::core::ffi::c_int;
13113}
13114unsafe extern "C" {
13115    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
13116}
13117unsafe extern "C" {
13118    pub fn ECDSA_sign_p1363(
13119        digest: *const u8,
13120        digest_len: usize,
13121        sig: *mut u8,
13122        out_sig_len: *mut usize,
13123        max_sig_len: usize,
13124        key: *const EC_KEY,
13125    ) -> ::core::ffi::c_int;
13126}
13127unsafe extern "C" {
13128    pub fn ECDSA_verify_p1363(
13129        digest: *const u8,
13130        digest_len: usize,
13131        sig: *const u8,
13132        sig_len: usize,
13133        key: *const EC_KEY,
13134    ) -> ::core::ffi::c_int;
13135}
13136unsafe extern "C" {
13137    pub fn ECDSA_size_p1363(key: *const EC_KEY) -> usize;
13138}
13139unsafe extern "C" {
13140    pub fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(
13141        digest: *const u8,
13142        digest_len: usize,
13143        eckey: *const EC_KEY,
13144        nonce: *const u8,
13145        nonce_len: usize,
13146    ) -> *mut ECDSA_SIG;
13147}
13148unsafe extern "C" {
13149    pub fn d2i_ECDSA_SIG(
13150        out: *mut *mut ECDSA_SIG,
13151        inp: *mut *const u8,
13152        len: ::core::ffi::c_long,
13153    ) -> *mut ECDSA_SIG;
13154}
13155unsafe extern "C" {
13156    pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
13157}
13158unsafe extern "C" {
13159    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
13160}
13161unsafe extern "C" {
13162    pub fn EVP_aead_aes_192_gcm() -> *const EVP_AEAD;
13163}
13164unsafe extern "C" {
13165    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
13166}
13167unsafe extern "C" {
13168    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
13169}
13170unsafe extern "C" {
13171    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
13172}
13173unsafe extern "C" {
13174    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
13175}
13176unsafe extern "C" {
13177    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
13178}
13179unsafe extern "C" {
13180    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
13181}
13182unsafe extern "C" {
13183    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
13184}
13185unsafe extern "C" {
13186    pub fn EVP_aead_aes_128_gcm_randnonce() -> *const EVP_AEAD;
13187}
13188unsafe extern "C" {
13189    pub fn EVP_aead_aes_256_gcm_randnonce() -> *const EVP_AEAD;
13190}
13191unsafe extern "C" {
13192    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
13193}
13194unsafe extern "C" {
13195    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
13196}
13197unsafe extern "C" {
13198    pub fn EVP_aead_aes_128_ccm_matter() -> *const EVP_AEAD;
13199}
13200unsafe extern "C" {
13201    pub fn EVP_has_aes_hardware() -> ::core::ffi::c_int;
13202}
13203unsafe extern "C" {
13204    pub fn EVP_aead_aes_128_eax() -> *const EVP_AEAD;
13205}
13206unsafe extern "C" {
13207    pub fn EVP_aead_aes_256_eax() -> *const EVP_AEAD;
13208}
13209unsafe extern "C" {
13210    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
13211}
13212unsafe extern "C" {
13213    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
13214}
13215unsafe extern "C" {
13216    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
13217}
13218unsafe extern "C" {
13219    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
13220}
13221#[repr(C)]
13222#[derive(Copy, Clone)]
13223pub union evp_aead_ctx_st_state {
13224    pub opaque: [u8; 560usize],
13225    pub alignment: u64,
13226}
13227#[repr(C)]
13228#[derive(Copy, Clone)]
13229pub struct evp_aead_ctx_st {
13230    pub aead: *const EVP_AEAD,
13231    pub state: evp_aead_ctx_st_state,
13232    pub tag_len: u8,
13233}
13234unsafe extern "C" {
13235    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
13236}
13237unsafe extern "C" {
13238    pub fn EVP_AEAD_CTX_new(
13239        aead: *const EVP_AEAD,
13240        key: *const u8,
13241        key_len: usize,
13242        tag_len: usize,
13243    ) -> *mut EVP_AEAD_CTX;
13244}
13245unsafe extern "C" {
13246    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
13247}
13248unsafe extern "C" {
13249    pub fn EVP_AEAD_CTX_init(
13250        ctx: *mut EVP_AEAD_CTX,
13251        aead: *const EVP_AEAD,
13252        key: *const u8,
13253        key_len: usize,
13254        tag_len: usize,
13255        impl_: *mut ENGINE,
13256    ) -> ::core::ffi::c_int;
13257}
13258unsafe extern "C" {
13259    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
13260}
13261unsafe extern "C" {
13262    pub fn EVP_AEAD_CTX_seal(
13263        ctx: *const EVP_AEAD_CTX,
13264        out: *mut u8,
13265        out_len: *mut usize,
13266        max_out_len: usize,
13267        nonce: *const u8,
13268        nonce_len: usize,
13269        in_: *const u8,
13270        in_len: usize,
13271        ad: *const u8,
13272        ad_len: usize,
13273    ) -> ::core::ffi::c_int;
13274}
13275unsafe extern "C" {
13276    pub fn EVP_AEAD_CTX_open(
13277        ctx: *const EVP_AEAD_CTX,
13278        out: *mut u8,
13279        out_len: *mut usize,
13280        max_out_len: usize,
13281        nonce: *const u8,
13282        nonce_len: usize,
13283        in_: *const u8,
13284        in_len: usize,
13285        ad: *const u8,
13286        ad_len: usize,
13287    ) -> ::core::ffi::c_int;
13288}
13289unsafe extern "C" {
13290    pub fn EVP_AEAD_CTX_seal_scatter(
13291        ctx: *const EVP_AEAD_CTX,
13292        out: *mut u8,
13293        out_tag: *mut u8,
13294        out_tag_len: *mut usize,
13295        max_out_tag_len: usize,
13296        nonce: *const u8,
13297        nonce_len: usize,
13298        in_: *const u8,
13299        in_len: usize,
13300        extra_in: *const u8,
13301        extra_in_len: usize,
13302        ad: *const u8,
13303        ad_len: usize,
13304    ) -> ::core::ffi::c_int;
13305}
13306unsafe extern "C" {
13307    pub fn EVP_AEAD_CTX_open_gather(
13308        ctx: *const EVP_AEAD_CTX,
13309        out: *mut u8,
13310        nonce: *const u8,
13311        nonce_len: usize,
13312        in_: *const u8,
13313        in_len: usize,
13314        in_tag: *const u8,
13315        in_tag_len: usize,
13316        ad: *const u8,
13317        ad_len: usize,
13318    ) -> ::core::ffi::c_int;
13319}
13320#[repr(C)]
13321#[derive(Debug, Copy, Clone)]
13322pub struct crypto_ivec_st {
13323    pub in_: *const u8,
13324    pub len: usize,
13325}
13326#[repr(C)]
13327#[derive(Debug, Copy, Clone)]
13328pub struct crypto_iovec_st {
13329    pub out: *mut u8,
13330    pub in_: *const u8,
13331    pub len: usize,
13332}
13333unsafe extern "C" {
13334    pub fn EVP_AEAD_CTX_sealv(
13335        ctx: *const EVP_AEAD_CTX,
13336        iovec: *const CRYPTO_IOVEC,
13337        num_iovec: usize,
13338        out_tag: *mut u8,
13339        out_tag_len: *mut usize,
13340        max_out_tag_len: usize,
13341        nonce: *const u8,
13342        nonce_len: usize,
13343        aadvec: *const CRYPTO_IVEC,
13344        num_aadvec: usize,
13345    ) -> ::core::ffi::c_int;
13346}
13347unsafe extern "C" {
13348    pub fn EVP_AEAD_CTX_openv(
13349        ctx: *const EVP_AEAD_CTX,
13350        iovec: *const CRYPTO_IOVEC,
13351        num_iovec: usize,
13352        out_total_bytes: *mut usize,
13353        nonce: *const u8,
13354        nonce_len: usize,
13355        aadvec: *const CRYPTO_IVEC,
13356        num_aadvec: usize,
13357    ) -> ::core::ffi::c_int;
13358}
13359unsafe extern "C" {
13360    pub fn EVP_AEAD_CTX_openv_detached(
13361        ctx: *const EVP_AEAD_CTX,
13362        iovec: *const CRYPTO_IOVEC,
13363        num_iovec: usize,
13364        nonce: *const u8,
13365        nonce_len: usize,
13366        in_tag: *const u8,
13367        in_tag_len: usize,
13368        aadvec: *const CRYPTO_IVEC,
13369        num_aadvec: usize,
13370    ) -> ::core::ffi::c_int;
13371}
13372unsafe extern "C" {
13373    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
13374}
13375unsafe extern "C" {
13376    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
13377}
13378unsafe extern "C" {
13379    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13380}
13381unsafe extern "C" {
13382    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
13383}
13384unsafe extern "C" {
13385    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
13386}
13387unsafe extern "C" {
13388    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13389}
13390unsafe extern "C" {
13391    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
13392}
13393unsafe extern "C" {
13394    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13395}
13396unsafe extern "C" {
13397    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
13398}
13399unsafe extern "C" {
13400    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
13401}
13402unsafe extern "C" {
13403    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
13404}
13405unsafe extern "C" {
13406    pub fn EVP_aead_aes_256_gcm_tls13() -> *const EVP_AEAD;
13407}
13408pub const evp_aead_direction_t_evp_aead_open: evp_aead_direction_t = 0;
13409pub const evp_aead_direction_t_evp_aead_seal: evp_aead_direction_t = 1;
13410pub type evp_aead_direction_t = ::core::ffi::c_uint;
13411unsafe extern "C" {
13412    pub fn EVP_AEAD_CTX_init_with_direction(
13413        ctx: *mut EVP_AEAD_CTX,
13414        aead: *const EVP_AEAD,
13415        key: *const u8,
13416        key_len: usize,
13417        tag_len: usize,
13418        dir: evp_aead_direction_t,
13419    ) -> ::core::ffi::c_int;
13420}
13421unsafe extern "C" {
13422    pub fn EVP_AEAD_CTX_get_iv(
13423        ctx: *const EVP_AEAD_CTX,
13424        out_iv: *mut *const u8,
13425        out_len: *mut usize,
13426    ) -> ::core::ffi::c_int;
13427}
13428unsafe extern "C" {
13429    pub fn EVP_AEAD_CTX_tag_len(
13430        ctx: *const EVP_AEAD_CTX,
13431        out_tag_len: *mut usize,
13432        in_len: usize,
13433        extra_in_len: usize,
13434    ) -> ::core::ffi::c_int;
13435}
13436unsafe extern "C" {
13437    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
13438}
13439unsafe extern "C" {
13440    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
13441}
13442unsafe extern "C" {
13443    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
13444}
13445unsafe extern "C" {
13446    pub fn EVP_PKEY_dup_ref(pkey: *const EVP_PKEY) -> *mut EVP_PKEY;
13447}
13448unsafe extern "C" {
13449    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13450}
13451unsafe extern "C" {
13452    pub fn EVP_PKEY_eq(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
13453}
13454unsafe extern "C" {
13455    pub fn EVP_PKEY_copy_parameters(to: *mut EVP_PKEY, from: *const EVP_PKEY)
13456        -> ::core::ffi::c_int;
13457}
13458unsafe extern "C" {
13459    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13460}
13461unsafe extern "C" {
13462    pub fn EVP_PKEY_parameters_eq(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
13463}
13464unsafe extern "C" {
13465    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13466}
13467unsafe extern "C" {
13468    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13469}
13470unsafe extern "C" {
13471    pub fn EVP_PKEY_has_public(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13472}
13473unsafe extern "C" {
13474    pub fn EVP_PKEY_has_private(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13475}
13476unsafe extern "C" {
13477    pub fn EVP_PKEY_copy_public(pkey: *const EVP_PKEY) -> *mut EVP_PKEY;
13478}
13479unsafe extern "C" {
13480    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13481}
13482unsafe extern "C" {
13483    pub fn EVP_pkey_rsa() -> *const EVP_PKEY_ALG;
13484}
13485unsafe extern "C" {
13486    pub fn EVP_pkey_ec_p224() -> *const EVP_PKEY_ALG;
13487}
13488unsafe extern "C" {
13489    pub fn EVP_pkey_ec_p256() -> *const EVP_PKEY_ALG;
13490}
13491unsafe extern "C" {
13492    pub fn EVP_pkey_ec_p384() -> *const EVP_PKEY_ALG;
13493}
13494unsafe extern "C" {
13495    pub fn EVP_pkey_ec_p521() -> *const EVP_PKEY_ALG;
13496}
13497unsafe extern "C" {
13498    pub fn EVP_pkey_x25519() -> *const EVP_PKEY_ALG;
13499}
13500unsafe extern "C" {
13501    pub fn EVP_pkey_ed25519() -> *const EVP_PKEY_ALG;
13502}
13503unsafe extern "C" {
13504    pub fn EVP_pkey_ml_dsa_44() -> *const EVP_PKEY_ALG;
13505}
13506unsafe extern "C" {
13507    pub fn EVP_pkey_ml_dsa_65() -> *const EVP_PKEY_ALG;
13508}
13509unsafe extern "C" {
13510    pub fn EVP_pkey_ml_dsa_87() -> *const EVP_PKEY_ALG;
13511}
13512unsafe extern "C" {
13513    pub fn EVP_pkey_ml_kem_768() -> *const EVP_PKEY_ALG;
13514}
13515unsafe extern "C" {
13516    pub fn EVP_pkey_ml_kem_1024() -> *const EVP_PKEY_ALG;
13517}
13518unsafe extern "C" {
13519    pub fn EVP_pkey_xwing() -> *const EVP_PKEY_ALG;
13520}
13521unsafe extern "C" {
13522    pub fn EVP_pkey_dsa() -> *const EVP_PKEY_ALG;
13523}
13524unsafe extern "C" {
13525    pub fn EVP_pkey_rsa_pss_sha256() -> *const EVP_PKEY_ALG;
13526}
13527unsafe extern "C" {
13528    pub fn EVP_pkey_rsa_pss_sha384() -> *const EVP_PKEY_ALG;
13529}
13530unsafe extern "C" {
13531    pub fn EVP_pkey_rsa_pss_sha512() -> *const EVP_PKEY_ALG;
13532}
13533unsafe extern "C" {
13534    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::core::ffi::c_int;
13535}
13536unsafe extern "C" {
13537    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::core::ffi::c_int;
13538}
13539unsafe extern "C" {
13540    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
13541}
13542unsafe extern "C" {
13543    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
13544}
13545unsafe extern "C" {
13546    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::core::ffi::c_int;
13547}
13548unsafe extern "C" {
13549    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::core::ffi::c_int;
13550}
13551unsafe extern "C" {
13552    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
13553}
13554unsafe extern "C" {
13555    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
13556}
13557unsafe extern "C" {
13558    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::core::ffi::c_int;
13559}
13560unsafe extern "C" {
13561    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::core::ffi::c_int;
13562}
13563unsafe extern "C" {
13564    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
13565}
13566unsafe extern "C" {
13567    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
13568}
13569unsafe extern "C" {
13570    pub fn EVP_PKEY_set1_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::core::ffi::c_int;
13571}
13572unsafe extern "C" {
13573    pub fn EVP_PKEY_assign_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::core::ffi::c_int;
13574}
13575unsafe extern "C" {
13576    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
13577}
13578unsafe extern "C" {
13579    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
13580}
13581unsafe extern "C" {
13582    pub fn EVP_PKEY_from_subject_public_key_info(
13583        in_: *const u8,
13584        len: usize,
13585        algs: *const *const EVP_PKEY_ALG,
13586        num_algs: usize,
13587    ) -> *mut EVP_PKEY;
13588}
13589unsafe extern "C" {
13590    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
13591}
13592unsafe extern "C" {
13593    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::core::ffi::c_int;
13594}
13595unsafe extern "C" {
13596    pub fn EVP_PKEY_from_private_key_info(
13597        in_: *const u8,
13598        len: usize,
13599        algs: *const *const EVP_PKEY_ALG,
13600        num_algs: usize,
13601    ) -> *mut EVP_PKEY;
13602}
13603unsafe extern "C" {
13604    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
13605}
13606unsafe extern "C" {
13607    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::core::ffi::c_int;
13608}
13609unsafe extern "C" {
13610    pub fn EVP_PKEY_from_raw_private_key(
13611        alg: *const EVP_PKEY_ALG,
13612        in_: *const u8,
13613        len: usize,
13614    ) -> *mut EVP_PKEY;
13615}
13616unsafe extern "C" {
13617    pub fn EVP_PKEY_from_private_seed(
13618        alg: *const EVP_PKEY_ALG,
13619        in_: *const u8,
13620        len: usize,
13621    ) -> *mut EVP_PKEY;
13622}
13623unsafe extern "C" {
13624    pub fn EVP_PKEY_from_raw_public_key(
13625        alg: *const EVP_PKEY_ALG,
13626        in_: *const u8,
13627        len: usize,
13628    ) -> *mut EVP_PKEY;
13629}
13630unsafe extern "C" {
13631    pub fn EVP_PKEY_get_raw_private_key(
13632        pkey: *const EVP_PKEY,
13633        out: *mut u8,
13634        out_len: *mut usize,
13635    ) -> ::core::ffi::c_int;
13636}
13637unsafe extern "C" {
13638    pub fn EVP_PKEY_get_private_seed(
13639        pkey: *const EVP_PKEY,
13640        out: *mut u8,
13641        out_len: *mut usize,
13642    ) -> ::core::ffi::c_int;
13643}
13644unsafe extern "C" {
13645    pub fn EVP_PKEY_get_raw_public_key(
13646        pkey: *const EVP_PKEY,
13647        out: *mut u8,
13648        out_len: *mut usize,
13649    ) -> ::core::ffi::c_int;
13650}
13651unsafe extern "C" {
13652    pub fn EVP_PKEY_generate_from_alg(alg: *const EVP_PKEY_ALG) -> *mut EVP_PKEY;
13653}
13654unsafe extern "C" {
13655    pub fn EVP_DigestSignInit(
13656        ctx: *mut EVP_MD_CTX,
13657        pctx: *mut *mut EVP_PKEY_CTX,
13658        type_: *const EVP_MD,
13659        e: *mut ENGINE,
13660        pkey: *mut EVP_PKEY,
13661    ) -> ::core::ffi::c_int;
13662}
13663unsafe extern "C" {
13664    pub fn EVP_DigestSignUpdate(
13665        ctx: *mut EVP_MD_CTX,
13666        data: *const ::core::ffi::c_void,
13667        len: usize,
13668    ) -> ::core::ffi::c_int;
13669}
13670unsafe extern "C" {
13671    pub fn EVP_DigestSignFinal(
13672        ctx: *mut EVP_MD_CTX,
13673        out_sig: *mut u8,
13674        out_sig_len: *mut usize,
13675    ) -> ::core::ffi::c_int;
13676}
13677unsafe extern "C" {
13678    pub fn EVP_DigestSign(
13679        ctx: *mut EVP_MD_CTX,
13680        out_sig: *mut u8,
13681        out_sig_len: *mut usize,
13682        data: *const u8,
13683        data_len: usize,
13684    ) -> ::core::ffi::c_int;
13685}
13686unsafe extern "C" {
13687    pub fn EVP_DigestVerifyInit(
13688        ctx: *mut EVP_MD_CTX,
13689        pctx: *mut *mut EVP_PKEY_CTX,
13690        type_: *const EVP_MD,
13691        e: *mut ENGINE,
13692        pkey: *mut EVP_PKEY,
13693    ) -> ::core::ffi::c_int;
13694}
13695unsafe extern "C" {
13696    pub fn EVP_DigestVerifyUpdate(
13697        ctx: *mut EVP_MD_CTX,
13698        data: *const ::core::ffi::c_void,
13699        len: usize,
13700    ) -> ::core::ffi::c_int;
13701}
13702unsafe extern "C" {
13703    pub fn EVP_DigestVerifyFinal(
13704        ctx: *mut EVP_MD_CTX,
13705        sig: *const u8,
13706        sig_len: usize,
13707    ) -> ::core::ffi::c_int;
13708}
13709unsafe extern "C" {
13710    pub fn EVP_DigestVerify(
13711        ctx: *mut EVP_MD_CTX,
13712        sig: *const u8,
13713        sig_len: usize,
13714        data: *const u8,
13715        len: usize,
13716    ) -> ::core::ffi::c_int;
13717}
13718unsafe extern "C" {
13719    pub fn EVP_SignInit_ex(
13720        ctx: *mut EVP_MD_CTX,
13721        type_: *const EVP_MD,
13722        impl_: *mut ENGINE,
13723    ) -> ::core::ffi::c_int;
13724}
13725unsafe extern "C" {
13726    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
13727}
13728unsafe extern "C" {
13729    pub fn EVP_SignUpdate(
13730        ctx: *mut EVP_MD_CTX,
13731        data: *const ::core::ffi::c_void,
13732        len: usize,
13733    ) -> ::core::ffi::c_int;
13734}
13735unsafe extern "C" {
13736    pub fn EVP_SignFinal(
13737        ctx: *const EVP_MD_CTX,
13738        sig: *mut u8,
13739        out_sig_len: *mut ::core::ffi::c_uint,
13740        pkey: *mut EVP_PKEY,
13741    ) -> ::core::ffi::c_int;
13742}
13743unsafe extern "C" {
13744    pub fn EVP_VerifyInit_ex(
13745        ctx: *mut EVP_MD_CTX,
13746        type_: *const EVP_MD,
13747        impl_: *mut ENGINE,
13748    ) -> ::core::ffi::c_int;
13749}
13750unsafe extern "C" {
13751    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
13752}
13753unsafe extern "C" {
13754    pub fn EVP_VerifyUpdate(
13755        ctx: *mut EVP_MD_CTX,
13756        data: *const ::core::ffi::c_void,
13757        len: usize,
13758    ) -> ::core::ffi::c_int;
13759}
13760unsafe extern "C" {
13761    pub fn EVP_VerifyFinal(
13762        ctx: *mut EVP_MD_CTX,
13763        sig: *const u8,
13764        sig_len: usize,
13765        pkey: *mut EVP_PKEY,
13766    ) -> ::core::ffi::c_int;
13767}
13768unsafe extern "C" {
13769    pub fn EVP_PKEY_print_public(
13770        out: *mut BIO,
13771        pkey: *const EVP_PKEY,
13772        indent: ::core::ffi::c_int,
13773        pctx: *mut ASN1_PCTX,
13774    ) -> ::core::ffi::c_int;
13775}
13776unsafe extern "C" {
13777    pub fn EVP_PKEY_print_private(
13778        out: *mut BIO,
13779        pkey: *const EVP_PKEY,
13780        indent: ::core::ffi::c_int,
13781        pctx: *mut ASN1_PCTX,
13782    ) -> ::core::ffi::c_int;
13783}
13784unsafe extern "C" {
13785    pub fn EVP_PKEY_print_params(
13786        out: *mut BIO,
13787        pkey: *const EVP_PKEY,
13788        indent: ::core::ffi::c_int,
13789        pctx: *mut ASN1_PCTX,
13790    ) -> ::core::ffi::c_int;
13791}
13792unsafe extern "C" {
13793    pub fn PKCS5_PBKDF2_HMAC(
13794        password: *const ::core::ffi::c_char,
13795        password_len: usize,
13796        salt: *const u8,
13797        salt_len: usize,
13798        iterations: u32,
13799        digest: *const EVP_MD,
13800        key_len: usize,
13801        out_key: *mut u8,
13802    ) -> ::core::ffi::c_int;
13803}
13804unsafe extern "C" {
13805    pub fn PKCS5_PBKDF2_HMAC_SHA1(
13806        password: *const ::core::ffi::c_char,
13807        password_len: usize,
13808        salt: *const u8,
13809        salt_len: usize,
13810        iterations: u32,
13811        key_len: usize,
13812        out_key: *mut u8,
13813    ) -> ::core::ffi::c_int;
13814}
13815unsafe extern "C" {
13816    pub fn EVP_PBE_scrypt(
13817        password: *const ::core::ffi::c_char,
13818        password_len: usize,
13819        salt: *const u8,
13820        salt_len: usize,
13821        N: u64,
13822        r: u64,
13823        p: u64,
13824        max_mem: usize,
13825        out_key: *mut u8,
13826        key_len: usize,
13827    ) -> ::core::ffi::c_int;
13828}
13829unsafe extern "C" {
13830    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
13831}
13832unsafe extern "C" {
13833    pub fn EVP_PKEY_CTX_new_id(id: ::core::ffi::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
13834}
13835unsafe extern "C" {
13836    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
13837}
13838unsafe extern "C" {
13839    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
13840}
13841unsafe extern "C" {
13842    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
13843}
13844unsafe extern "C" {
13845    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13846}
13847unsafe extern "C" {
13848    pub fn EVP_PKEY_sign(
13849        ctx: *mut EVP_PKEY_CTX,
13850        sig: *mut u8,
13851        sig_len: *mut usize,
13852        digest: *const u8,
13853        digest_len: usize,
13854    ) -> ::core::ffi::c_int;
13855}
13856unsafe extern "C" {
13857    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13858}
13859unsafe extern "C" {
13860    pub fn EVP_PKEY_verify(
13861        ctx: *mut EVP_PKEY_CTX,
13862        sig: *const u8,
13863        sig_len: usize,
13864        digest: *const u8,
13865        digest_len: usize,
13866    ) -> ::core::ffi::c_int;
13867}
13868unsafe extern "C" {
13869    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13870}
13871unsafe extern "C" {
13872    pub fn EVP_PKEY_encrypt(
13873        ctx: *mut EVP_PKEY_CTX,
13874        out: *mut u8,
13875        out_len: *mut usize,
13876        in_: *const u8,
13877        in_len: usize,
13878    ) -> ::core::ffi::c_int;
13879}
13880unsafe extern "C" {
13881    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13882}
13883unsafe extern "C" {
13884    pub fn EVP_PKEY_decrypt(
13885        ctx: *mut EVP_PKEY_CTX,
13886        out: *mut u8,
13887        out_len: *mut usize,
13888        in_: *const u8,
13889        in_len: usize,
13890    ) -> ::core::ffi::c_int;
13891}
13892unsafe extern "C" {
13893    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13894}
13895unsafe extern "C" {
13896    pub fn EVP_PKEY_verify_recover(
13897        ctx: *mut EVP_PKEY_CTX,
13898        out: *mut u8,
13899        out_len: *mut usize,
13900        sig: *const u8,
13901        siglen: usize,
13902    ) -> ::core::ffi::c_int;
13903}
13904unsafe extern "C" {
13905    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13906}
13907unsafe extern "C" {
13908    pub fn EVP_PKEY_derive_set_peer(
13909        ctx: *mut EVP_PKEY_CTX,
13910        peer: *mut EVP_PKEY,
13911    ) -> ::core::ffi::c_int;
13912}
13913unsafe extern "C" {
13914    pub fn EVP_PKEY_derive(
13915        ctx: *mut EVP_PKEY_CTX,
13916        key: *mut u8,
13917        out_key_len: *mut usize,
13918    ) -> ::core::ffi::c_int;
13919}
13920unsafe extern "C" {
13921    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13922}
13923unsafe extern "C" {
13924    pub fn EVP_PKEY_keygen(
13925        ctx: *mut EVP_PKEY_CTX,
13926        out_pkey: *mut *mut EVP_PKEY,
13927    ) -> ::core::ffi::c_int;
13928}
13929unsafe extern "C" {
13930    pub fn EVP_PKEY_paramgen_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13931}
13932unsafe extern "C" {
13933    pub fn EVP_PKEY_paramgen(
13934        ctx: *mut EVP_PKEY_CTX,
13935        out_pkey: *mut *mut EVP_PKEY,
13936    ) -> ::core::ffi::c_int;
13937}
13938unsafe extern "C" {
13939    pub fn EVP_PKEY_encapsulate_init(
13940        ctx: *mut EVP_PKEY_CTX,
13941        params: *const OSSL_PARAM,
13942    ) -> ::core::ffi::c_int;
13943}
13944unsafe extern "C" {
13945    pub fn EVP_PKEY_encapsulate(
13946        ctx: *mut EVP_PKEY_CTX,
13947        out_ciphertext: *mut u8,
13948        out_ciphertext_len: *mut usize,
13949        out_secret: *mut u8,
13950        out_secret_len: *mut usize,
13951    ) -> ::core::ffi::c_int;
13952}
13953unsafe extern "C" {
13954    pub fn EVP_PKEY_decapsulate_init(
13955        ctx: *mut EVP_PKEY_CTX,
13956        params: *const OSSL_PARAM,
13957    ) -> ::core::ffi::c_int;
13958}
13959unsafe extern "C" {
13960    pub fn EVP_PKEY_decapsulate(
13961        ctx: *mut EVP_PKEY_CTX,
13962        out_secret: *mut u8,
13963        out_secret_len: *mut usize,
13964        ciphertext: *const u8,
13965        ciphertext_len: usize,
13966    ) -> ::core::ffi::c_int;
13967}
13968unsafe extern "C" {
13969    pub fn EVP_PKEY_CTX_set_signature_md(
13970        ctx: *mut EVP_PKEY_CTX,
13971        md: *const EVP_MD,
13972    ) -> ::core::ffi::c_int;
13973}
13974unsafe extern "C" {
13975    pub fn EVP_PKEY_CTX_get_signature_md(
13976        ctx: *mut EVP_PKEY_CTX,
13977        out_md: *mut *const EVP_MD,
13978    ) -> ::core::ffi::c_int;
13979}
13980unsafe extern "C" {
13981    pub fn EVP_PKEY_CTX_set1_signature_context_string(
13982        ctx: *mut EVP_PKEY_CTX,
13983        context: *const u8,
13984        context_len: usize,
13985    ) -> ::core::ffi::c_int;
13986}
13987unsafe extern "C" {
13988    pub fn EVP_RSA_gen(bits: ::core::ffi::c_uint) -> *mut EVP_PKEY;
13989}
13990unsafe extern "C" {
13991    pub fn EVP_PKEY_CTX_set_rsa_padding(
13992        ctx: *mut EVP_PKEY_CTX,
13993        padding: ::core::ffi::c_int,
13994    ) -> ::core::ffi::c_int;
13995}
13996unsafe extern "C" {
13997    pub fn EVP_PKEY_CTX_get_rsa_padding(
13998        ctx: *mut EVP_PKEY_CTX,
13999        out_padding: *mut ::core::ffi::c_int,
14000    ) -> ::core::ffi::c_int;
14001}
14002unsafe extern "C" {
14003    pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen(
14004        ctx: *mut EVP_PKEY_CTX,
14005        salt_len: ::core::ffi::c_int,
14006    ) -> ::core::ffi::c_int;
14007}
14008unsafe extern "C" {
14009    pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen(
14010        ctx: *mut EVP_PKEY_CTX,
14011        out_salt_len: *mut ::core::ffi::c_int,
14012    ) -> ::core::ffi::c_int;
14013}
14014unsafe extern "C" {
14015    pub fn EVP_PKEY_CTX_set_rsa_keygen_bits(
14016        ctx: *mut EVP_PKEY_CTX,
14017        bits: ::core::ffi::c_int,
14018    ) -> ::core::ffi::c_int;
14019}
14020unsafe extern "C" {
14021    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
14022        ctx: *mut EVP_PKEY_CTX,
14023        e: *mut BIGNUM,
14024    ) -> ::core::ffi::c_int;
14025}
14026unsafe extern "C" {
14027    pub fn EVP_PKEY_CTX_set_rsa_oaep_md(
14028        ctx: *mut EVP_PKEY_CTX,
14029        md: *const EVP_MD,
14030    ) -> ::core::ffi::c_int;
14031}
14032unsafe extern "C" {
14033    pub fn EVP_PKEY_CTX_get_rsa_oaep_md(
14034        ctx: *mut EVP_PKEY_CTX,
14035        out_md: *mut *const EVP_MD,
14036    ) -> ::core::ffi::c_int;
14037}
14038unsafe extern "C" {
14039    pub fn EVP_PKEY_CTX_set_rsa_mgf1_md(
14040        ctx: *mut EVP_PKEY_CTX,
14041        md: *const EVP_MD,
14042    ) -> ::core::ffi::c_int;
14043}
14044unsafe extern "C" {
14045    pub fn EVP_PKEY_CTX_get_rsa_mgf1_md(
14046        ctx: *mut EVP_PKEY_CTX,
14047        out_md: *mut *const EVP_MD,
14048    ) -> ::core::ffi::c_int;
14049}
14050unsafe extern "C" {
14051    pub fn EVP_PKEY_CTX_set0_rsa_oaep_label(
14052        ctx: *mut EVP_PKEY_CTX,
14053        label: *mut u8,
14054        label_len: usize,
14055    ) -> ::core::ffi::c_int;
14056}
14057unsafe extern "C" {
14058    pub fn EVP_PKEY_CTX_get0_rsa_oaep_label(
14059        ctx: *mut EVP_PKEY_CTX,
14060        out_label: *mut *const u8,
14061    ) -> ::core::ffi::c_int;
14062}
14063unsafe extern "C" {
14064    pub fn EVP_PKEY_get_ec_curve_nid(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14065}
14066unsafe extern "C" {
14067    pub fn EVP_PKEY_get_ec_point_conv_form(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14068}
14069unsafe extern "C" {
14070    pub fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(
14071        ctx: *mut EVP_PKEY_CTX,
14072        nid: ::core::ffi::c_int,
14073    ) -> ::core::ffi::c_int;
14074}
14075unsafe extern "C" {
14076    pub fn EVP_PKEY_CTX_set_dh_pad(
14077        ctx: *mut EVP_PKEY_CTX,
14078        pad: ::core::ffi::c_int,
14079    ) -> ::core::ffi::c_int;
14080}
14081unsafe extern "C" {
14082    pub fn EVP_kem_ml_kem_768() -> *const EVP_KEM;
14083}
14084unsafe extern "C" {
14085    pub fn EVP_kem_ml_kem_1024() -> *const EVP_KEM;
14086}
14087unsafe extern "C" {
14088    pub fn EVP_kem_xwing() -> *const EVP_KEM;
14089}
14090unsafe extern "C" {
14091    pub fn EVP_KEM_ciphertext_len(kem: *const EVP_KEM) -> usize;
14092}
14093unsafe extern "C" {
14094    pub fn EVP_KEM_secret_len(kem: *const EVP_KEM) -> usize;
14095}
14096unsafe extern "C" {
14097    pub fn EVP_KEM_encap(
14098        kem: *const EVP_KEM,
14099        out_ciphertext: *mut u8,
14100        ciphertext_len: usize,
14101        out_secret: *mut u8,
14102        secret_len: usize,
14103        peer_key: *const EVP_PKEY,
14104    ) -> ::core::ffi::c_int;
14105}
14106unsafe extern "C" {
14107    pub fn EVP_KEM_decap(
14108        kem: *const EVP_KEM,
14109        out_secret: *mut u8,
14110        secret_len: usize,
14111        ciphertext: *const u8,
14112        ciphertext_len: usize,
14113        key: *const EVP_PKEY,
14114    ) -> ::core::ffi::c_int;
14115}
14116unsafe extern "C" {
14117    pub fn EVP_PKEY_get0(pkey: *const EVP_PKEY) -> *mut ::core::ffi::c_void;
14118}
14119unsafe extern "C" {
14120    pub fn OpenSSL_add_all_algorithms();
14121}
14122unsafe extern "C" {
14123    pub fn OPENSSL_add_all_algorithms_conf();
14124}
14125unsafe extern "C" {
14126    pub fn OpenSSL_add_all_ciphers();
14127}
14128unsafe extern "C" {
14129    pub fn OpenSSL_add_all_digests();
14130}
14131unsafe extern "C" {
14132    pub fn EVP_cleanup();
14133}
14134unsafe extern "C" {
14135    pub fn EVP_default_properties_is_fips_enabled(libctx: *mut OSSL_LIB_CTX) -> ::core::ffi::c_int;
14136}
14137unsafe extern "C" {
14138    pub fn EVP_CIPHER_do_all_sorted(
14139        callback: ::core::option::Option<
14140            unsafe extern "C" fn(
14141                cipher: *const EVP_CIPHER,
14142                name: *const ::core::ffi::c_char,
14143                unused: *const ::core::ffi::c_char,
14144                arg: *mut ::core::ffi::c_void,
14145            ),
14146        >,
14147        arg: *mut ::core::ffi::c_void,
14148    );
14149}
14150unsafe extern "C" {
14151    pub fn EVP_MD_do_all_sorted(
14152        callback: ::core::option::Option<
14153            unsafe extern "C" fn(
14154                md: *const EVP_MD,
14155                name: *const ::core::ffi::c_char,
14156                unused: *const ::core::ffi::c_char,
14157                arg: *mut ::core::ffi::c_void,
14158            ),
14159        >,
14160        arg: *mut ::core::ffi::c_void,
14161    );
14162}
14163unsafe extern "C" {
14164    pub fn EVP_MD_do_all(
14165        callback: ::core::option::Option<
14166            unsafe extern "C" fn(
14167                md: *const EVP_MD,
14168                name: *const ::core::ffi::c_char,
14169                unused: *const ::core::ffi::c_char,
14170                arg: *mut ::core::ffi::c_void,
14171            ),
14172        >,
14173        arg: *mut ::core::ffi::c_void,
14174    );
14175}
14176unsafe extern "C" {
14177    pub fn EVP_MD_do_all_provided(
14178        libctx: *mut OSSL_LIB_CTX,
14179        callback: ::core::option::Option<
14180            unsafe extern "C" fn(md: *mut EVP_MD, arg: *mut ::core::ffi::c_void),
14181        >,
14182        arg: *mut ::core::ffi::c_void,
14183    );
14184}
14185unsafe extern "C" {
14186    pub fn i2d_PrivateKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14187}
14188unsafe extern "C" {
14189    pub fn i2d_PublicKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14190}
14191unsafe extern "C" {
14192    pub fn d2i_PrivateKey(
14193        type_: ::core::ffi::c_int,
14194        out: *mut *mut EVP_PKEY,
14195        inp: *mut *const u8,
14196        len: ::core::ffi::c_long,
14197    ) -> *mut EVP_PKEY;
14198}
14199unsafe extern "C" {
14200    pub fn d2i_AutoPrivateKey(
14201        out: *mut *mut EVP_PKEY,
14202        inp: *mut *const u8,
14203        len: ::core::ffi::c_long,
14204    ) -> *mut EVP_PKEY;
14205}
14206unsafe extern "C" {
14207    pub fn d2i_PublicKey(
14208        type_: ::core::ffi::c_int,
14209        out: *mut *mut EVP_PKEY,
14210        inp: *mut *const u8,
14211        len: ::core::ffi::c_long,
14212    ) -> *mut EVP_PKEY;
14213}
14214unsafe extern "C" {
14215    pub fn EVP_PKEY_CTX_set_ec_param_enc(
14216        ctx: *mut EVP_PKEY_CTX,
14217        encoding: ::core::ffi::c_int,
14218    ) -> ::core::ffi::c_int;
14219}
14220unsafe extern "C" {
14221    pub fn EVP_PKEY_set_type(pkey: *mut EVP_PKEY, type_: ::core::ffi::c_int) -> ::core::ffi::c_int;
14222}
14223unsafe extern "C" {
14224    pub fn EVP_PKEY_set1_tls_encodedpoint(
14225        pkey: *mut EVP_PKEY,
14226        in_: *const u8,
14227        len: usize,
14228    ) -> ::core::ffi::c_int;
14229}
14230unsafe extern "C" {
14231    pub fn EVP_PKEY_get1_tls_encodedpoint(pkey: *const EVP_PKEY, out_ptr: *mut *mut u8) -> usize;
14232}
14233unsafe extern "C" {
14234    pub fn EVP_PKEY_base_id(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14235}
14236unsafe extern "C" {
14237    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_md(
14238        ctx: *mut EVP_PKEY_CTX,
14239        md: *const EVP_MD,
14240    ) -> ::core::ffi::c_int;
14241}
14242unsafe extern "C" {
14243    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(
14244        ctx: *mut EVP_PKEY_CTX,
14245        salt_len: ::core::ffi::c_int,
14246    ) -> ::core::ffi::c_int;
14247}
14248unsafe extern "C" {
14249    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(
14250        ctx: *mut EVP_PKEY_CTX,
14251        md: *const EVP_MD,
14252    ) -> ::core::ffi::c_int;
14253}
14254unsafe extern "C" {
14255    pub fn i2d_PUBKEY(pkey: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14256}
14257unsafe extern "C" {
14258    pub fn d2i_PUBKEY(
14259        out: *mut *mut EVP_PKEY,
14260        inp: *mut *const u8,
14261        len: ::core::ffi::c_long,
14262    ) -> *mut EVP_PKEY;
14263}
14264unsafe extern "C" {
14265    pub fn i2d_RSA_PUBKEY(rsa: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
14266}
14267unsafe extern "C" {
14268    pub fn d2i_RSA_PUBKEY(
14269        out: *mut *mut RSA,
14270        inp: *mut *const u8,
14271        len: ::core::ffi::c_long,
14272    ) -> *mut RSA;
14273}
14274unsafe extern "C" {
14275    pub fn i2d_DSA_PUBKEY(dsa: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
14276}
14277unsafe extern "C" {
14278    pub fn d2i_DSA_PUBKEY(
14279        out: *mut *mut DSA,
14280        inp: *mut *const u8,
14281        len: ::core::ffi::c_long,
14282    ) -> *mut DSA;
14283}
14284unsafe extern "C" {
14285    pub fn i2d_EC_PUBKEY(ec_key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14286}
14287unsafe extern "C" {
14288    pub fn d2i_EC_PUBKEY(
14289        out: *mut *mut EC_KEY,
14290        inp: *mut *const u8,
14291        len: ::core::ffi::c_long,
14292    ) -> *mut EC_KEY;
14293}
14294unsafe extern "C" {
14295    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(
14296        ctx: *mut EVP_PKEY_CTX,
14297        nbits: ::core::ffi::c_int,
14298    ) -> ::core::ffi::c_int;
14299}
14300unsafe extern "C" {
14301    pub fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(
14302        ctx: *mut EVP_PKEY_CTX,
14303        qbits: ::core::ffi::c_int,
14304    ) -> ::core::ffi::c_int;
14305}
14306unsafe extern "C" {
14307    pub fn EVP_PKEY_assign(
14308        pkey: *mut EVP_PKEY,
14309        type_: ::core::ffi::c_int,
14310        key: *mut ::core::ffi::c_void,
14311    ) -> ::core::ffi::c_int;
14312}
14313unsafe extern "C" {
14314    pub fn EVP_PKEY_type(nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
14315}
14316unsafe extern "C" {
14317    pub fn EVP_PKEY_new_raw_private_key(
14318        type_: ::core::ffi::c_int,
14319        unused: *mut ENGINE,
14320        in_: *const u8,
14321        len: usize,
14322    ) -> *mut EVP_PKEY;
14323}
14324unsafe extern "C" {
14325    pub fn EVP_PKEY_new_raw_public_key(
14326        type_: ::core::ffi::c_int,
14327        unused: *mut ENGINE,
14328        in_: *const u8,
14329        len: usize,
14330    ) -> *mut EVP_PKEY;
14331}
14332unsafe extern "C" {
14333    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
14334}
14335unsafe extern "C" {
14336    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
14337}
14338unsafe extern "C" {
14339    pub fn HKDF(
14340        out_key: *mut u8,
14341        out_len: usize,
14342        digest: *const EVP_MD,
14343        secret: *const u8,
14344        secret_len: usize,
14345        salt: *const u8,
14346        salt_len: usize,
14347        info: *const u8,
14348        info_len: usize,
14349    ) -> ::core::ffi::c_int;
14350}
14351unsafe extern "C" {
14352    pub fn HKDF_extract(
14353        out_key: *mut u8,
14354        out_len: *mut usize,
14355        digest: *const EVP_MD,
14356        secret: *const u8,
14357        secret_len: usize,
14358        salt: *const u8,
14359        salt_len: usize,
14360    ) -> ::core::ffi::c_int;
14361}
14362unsafe extern "C" {
14363    pub fn HKDF_expand(
14364        out_key: *mut u8,
14365        out_len: usize,
14366        digest: *const EVP_MD,
14367        prk: *const u8,
14368        prk_len: usize,
14369        info: *const u8,
14370        info_len: usize,
14371    ) -> ::core::ffi::c_int;
14372}
14373unsafe extern "C" {
14374    pub fn HMAC(
14375        evp_md: *const EVP_MD,
14376        key: *const ::core::ffi::c_void,
14377        key_len: usize,
14378        data: *const u8,
14379        data_len: usize,
14380        out: *mut u8,
14381        out_len: *mut ::core::ffi::c_uint,
14382    ) -> *mut u8;
14383}
14384unsafe extern "C" {
14385    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
14386}
14387unsafe extern "C" {
14388    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
14389}
14390unsafe extern "C" {
14391    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
14392}
14393unsafe extern "C" {
14394    pub fn HMAC_CTX_cleanse(ctx: *mut HMAC_CTX);
14395}
14396unsafe extern "C" {
14397    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
14398}
14399unsafe extern "C" {
14400    pub fn HMAC_Init_ex(
14401        ctx: *mut HMAC_CTX,
14402        key: *const ::core::ffi::c_void,
14403        key_len: usize,
14404        md: *const EVP_MD,
14405        impl_: *mut ENGINE,
14406    ) -> ::core::ffi::c_int;
14407}
14408unsafe extern "C" {
14409    pub fn HMAC_Update(ctx: *mut HMAC_CTX, data: *const u8, data_len: usize) -> ::core::ffi::c_int;
14410}
14411unsafe extern "C" {
14412    pub fn HMAC_Final(
14413        ctx: *mut HMAC_CTX,
14414        out: *mut u8,
14415        out_len: *mut ::core::ffi::c_uint,
14416    ) -> ::core::ffi::c_int;
14417}
14418unsafe extern "C" {
14419    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
14420}
14421unsafe extern "C" {
14422    pub fn HMAC_CTX_get_md(ctx: *const HMAC_CTX) -> *const EVP_MD;
14423}
14424unsafe extern "C" {
14425    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::core::ffi::c_int;
14426}
14427unsafe extern "C" {
14428    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
14429}
14430unsafe extern "C" {
14431    pub fn HMAC_Init(
14432        ctx: *mut HMAC_CTX,
14433        key: *const ::core::ffi::c_void,
14434        key_len: ::core::ffi::c_int,
14435        md: *const EVP_MD,
14436    ) -> ::core::ffi::c_int;
14437}
14438unsafe extern "C" {
14439    pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::core::ffi::c_int;
14440}
14441#[repr(C)]
14442#[derive(Copy, Clone)]
14443pub struct hmac_ctx_st {
14444    pub md: *const EVP_MD,
14445    pub md_ctx: EVP_MD_CTX,
14446    pub i_ctx: EVP_MD_CTX,
14447    pub o_ctx: EVP_MD_CTX,
14448}
14449unsafe extern "C" {
14450    pub fn EVP_hpke_x25519_hkdf_sha256() -> *const EVP_HPKE_KEM;
14451}
14452unsafe extern "C" {
14453    pub fn EVP_hpke_p256_hkdf_sha256() -> *const EVP_HPKE_KEM;
14454}
14455unsafe extern "C" {
14456    pub fn EVP_hpke_xwing() -> *const EVP_HPKE_KEM;
14457}
14458unsafe extern "C" {
14459    pub fn EVP_hpke_mlkem768() -> *const EVP_HPKE_KEM;
14460}
14461unsafe extern "C" {
14462    pub fn EVP_hpke_mlkem1024() -> *const EVP_HPKE_KEM;
14463}
14464unsafe extern "C" {
14465    pub fn EVP_HPKE_KEM_id(kem: *const EVP_HPKE_KEM) -> u16;
14466}
14467unsafe extern "C" {
14468    pub fn EVP_HPKE_KEM_public_key_len(kem: *const EVP_HPKE_KEM) -> usize;
14469}
14470unsafe extern "C" {
14471    pub fn EVP_HPKE_KEM_private_key_len(kem: *const EVP_HPKE_KEM) -> usize;
14472}
14473unsafe extern "C" {
14474    pub fn EVP_HPKE_KEM_enc_len(kem: *const EVP_HPKE_KEM) -> usize;
14475}
14476unsafe extern "C" {
14477    pub fn EVP_hpke_hkdf_sha256() -> *const EVP_HPKE_KDF;
14478}
14479unsafe extern "C" {
14480    pub fn EVP_hpke_hkdf_sha384() -> *const EVP_HPKE_KDF;
14481}
14482unsafe extern "C" {
14483    pub fn EVP_HPKE_KDF_id(kdf: *const EVP_HPKE_KDF) -> u16;
14484}
14485unsafe extern "C" {
14486    pub fn EVP_HPKE_KDF_hkdf_md(kdf: *const EVP_HPKE_KDF) -> *const EVP_MD;
14487}
14488unsafe extern "C" {
14489    pub fn EVP_hpke_aes_128_gcm() -> *const EVP_HPKE_AEAD;
14490}
14491unsafe extern "C" {
14492    pub fn EVP_hpke_aes_256_gcm() -> *const EVP_HPKE_AEAD;
14493}
14494unsafe extern "C" {
14495    pub fn EVP_hpke_chacha20_poly1305() -> *const EVP_HPKE_AEAD;
14496}
14497unsafe extern "C" {
14498    pub fn EVP_HPKE_AEAD_id(aead: *const EVP_HPKE_AEAD) -> u16;
14499}
14500unsafe extern "C" {
14501    pub fn EVP_HPKE_AEAD_aead(aead: *const EVP_HPKE_AEAD) -> *const EVP_AEAD;
14502}
14503unsafe extern "C" {
14504    pub fn EVP_HPKE_KEY_zero(key: *mut EVP_HPKE_KEY);
14505}
14506unsafe extern "C" {
14507    pub fn EVP_HPKE_KEY_cleanup(key: *mut EVP_HPKE_KEY);
14508}
14509unsafe extern "C" {
14510    pub fn EVP_HPKE_KEY_new() -> *mut EVP_HPKE_KEY;
14511}
14512unsafe extern "C" {
14513    pub fn EVP_HPKE_KEY_free(key: *mut EVP_HPKE_KEY);
14514}
14515unsafe extern "C" {
14516    pub fn EVP_HPKE_KEY_copy(
14517        dst: *mut EVP_HPKE_KEY,
14518        src: *const EVP_HPKE_KEY,
14519    ) -> ::core::ffi::c_int;
14520}
14521unsafe extern "C" {
14522    pub fn EVP_HPKE_KEY_move(out: *mut EVP_HPKE_KEY, in_: *mut EVP_HPKE_KEY);
14523}
14524unsafe extern "C" {
14525    pub fn EVP_HPKE_KEY_init(
14526        key: *mut EVP_HPKE_KEY,
14527        kem: *const EVP_HPKE_KEM,
14528        priv_key: *const u8,
14529        priv_key_len: usize,
14530    ) -> ::core::ffi::c_int;
14531}
14532unsafe extern "C" {
14533    pub fn EVP_HPKE_KEY_generate(
14534        key: *mut EVP_HPKE_KEY,
14535        kem: *const EVP_HPKE_KEM,
14536    ) -> ::core::ffi::c_int;
14537}
14538unsafe extern "C" {
14539    pub fn EVP_HPKE_KEY_derive(
14540        key: *mut EVP_HPKE_KEY,
14541        kem: *const EVP_HPKE_KEM,
14542        ikm: *const u8,
14543        ikm_len: usize,
14544    ) -> ::core::ffi::c_int;
14545}
14546unsafe extern "C" {
14547    pub fn EVP_HPKE_KEY_kem(key: *const EVP_HPKE_KEY) -> *const EVP_HPKE_KEM;
14548}
14549unsafe extern "C" {
14550    pub fn EVP_HPKE_KEY_public_key(
14551        key: *const EVP_HPKE_KEY,
14552        out: *mut u8,
14553        out_len: *mut usize,
14554        max_out: usize,
14555    ) -> ::core::ffi::c_int;
14556}
14557unsafe extern "C" {
14558    pub fn EVP_HPKE_KEY_private_key(
14559        key: *const EVP_HPKE_KEY,
14560        out: *mut u8,
14561        out_len: *mut usize,
14562        max_out: usize,
14563    ) -> ::core::ffi::c_int;
14564}
14565unsafe extern "C" {
14566    pub fn EVP_HPKE_CTX_zero(ctx: *mut EVP_HPKE_CTX);
14567}
14568unsafe extern "C" {
14569    pub fn EVP_HPKE_CTX_cleanup(ctx: *mut EVP_HPKE_CTX);
14570}
14571unsafe extern "C" {
14572    pub fn EVP_HPKE_CTX_new() -> *mut EVP_HPKE_CTX;
14573}
14574unsafe extern "C" {
14575    pub fn EVP_HPKE_CTX_free(ctx: *mut EVP_HPKE_CTX);
14576}
14577unsafe extern "C" {
14578    pub fn EVP_HPKE_CTX_setup_sender(
14579        ctx: *mut EVP_HPKE_CTX,
14580        out_enc: *mut u8,
14581        out_enc_len: *mut usize,
14582        max_enc: usize,
14583        kem: *const EVP_HPKE_KEM,
14584        kdf: *const EVP_HPKE_KDF,
14585        aead: *const EVP_HPKE_AEAD,
14586        peer_public_key: *const u8,
14587        peer_public_key_len: usize,
14588        info: *const u8,
14589        info_len: usize,
14590    ) -> ::core::ffi::c_int;
14591}
14592unsafe extern "C" {
14593    pub fn EVP_HPKE_CTX_setup_sender_with_seed_for_testing(
14594        ctx: *mut EVP_HPKE_CTX,
14595        out_enc: *mut u8,
14596        out_enc_len: *mut usize,
14597        max_enc: usize,
14598        kem: *const EVP_HPKE_KEM,
14599        kdf: *const EVP_HPKE_KDF,
14600        aead: *const EVP_HPKE_AEAD,
14601        peer_public_key: *const u8,
14602        peer_public_key_len: usize,
14603        info: *const u8,
14604        info_len: usize,
14605        seed: *const u8,
14606        seed_len: usize,
14607    ) -> ::core::ffi::c_int;
14608}
14609unsafe extern "C" {
14610    pub fn EVP_HPKE_CTX_setup_recipient(
14611        ctx: *mut EVP_HPKE_CTX,
14612        key: *const EVP_HPKE_KEY,
14613        kdf: *const EVP_HPKE_KDF,
14614        aead: *const EVP_HPKE_AEAD,
14615        enc: *const u8,
14616        enc_len: usize,
14617        info: *const u8,
14618        info_len: usize,
14619    ) -> ::core::ffi::c_int;
14620}
14621unsafe extern "C" {
14622    pub fn EVP_HPKE_CTX_setup_auth_sender(
14623        ctx: *mut EVP_HPKE_CTX,
14624        out_enc: *mut u8,
14625        out_enc_len: *mut usize,
14626        max_enc: usize,
14627        key: *const EVP_HPKE_KEY,
14628        kdf: *const EVP_HPKE_KDF,
14629        aead: *const EVP_HPKE_AEAD,
14630        peer_public_key: *const u8,
14631        peer_public_key_len: usize,
14632        info: *const u8,
14633        info_len: usize,
14634    ) -> ::core::ffi::c_int;
14635}
14636unsafe extern "C" {
14637    pub fn EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing(
14638        ctx: *mut EVP_HPKE_CTX,
14639        out_enc: *mut u8,
14640        out_enc_len: *mut usize,
14641        max_enc: usize,
14642        key: *const EVP_HPKE_KEY,
14643        kdf: *const EVP_HPKE_KDF,
14644        aead: *const EVP_HPKE_AEAD,
14645        peer_public_key: *const u8,
14646        peer_public_key_len: usize,
14647        info: *const u8,
14648        info_len: usize,
14649        seed: *const u8,
14650        seed_len: usize,
14651    ) -> ::core::ffi::c_int;
14652}
14653unsafe extern "C" {
14654    pub fn EVP_HPKE_CTX_setup_auth_recipient(
14655        ctx: *mut EVP_HPKE_CTX,
14656        key: *const EVP_HPKE_KEY,
14657        kdf: *const EVP_HPKE_KDF,
14658        aead: *const EVP_HPKE_AEAD,
14659        enc: *const u8,
14660        enc_len: usize,
14661        info: *const u8,
14662        info_len: usize,
14663        peer_public_key: *const u8,
14664        peer_public_key_len: usize,
14665    ) -> ::core::ffi::c_int;
14666}
14667unsafe extern "C" {
14668    pub fn EVP_HPKE_CTX_open(
14669        ctx: *mut EVP_HPKE_CTX,
14670        out: *mut u8,
14671        out_len: *mut usize,
14672        max_out_len: usize,
14673        in_: *const u8,
14674        in_len: usize,
14675        ad: *const u8,
14676        ad_len: usize,
14677    ) -> ::core::ffi::c_int;
14678}
14679unsafe extern "C" {
14680    pub fn EVP_HPKE_CTX_seal(
14681        ctx: *mut EVP_HPKE_CTX,
14682        out: *mut u8,
14683        out_len: *mut usize,
14684        max_out_len: usize,
14685        in_: *const u8,
14686        in_len: usize,
14687        ad: *const u8,
14688        ad_len: usize,
14689    ) -> ::core::ffi::c_int;
14690}
14691unsafe extern "C" {
14692    pub fn EVP_HPKE_CTX_export(
14693        ctx: *const EVP_HPKE_CTX,
14694        out: *mut u8,
14695        secret_len: usize,
14696        context: *const u8,
14697        context_len: usize,
14698    ) -> ::core::ffi::c_int;
14699}
14700unsafe extern "C" {
14701    pub fn EVP_HPKE_CTX_max_overhead(ctx: *const EVP_HPKE_CTX) -> usize;
14702}
14703unsafe extern "C" {
14704    pub fn EVP_HPKE_CTX_kem(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KEM;
14705}
14706unsafe extern "C" {
14707    pub fn EVP_HPKE_CTX_aead(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_AEAD;
14708}
14709unsafe extern "C" {
14710    pub fn EVP_HPKE_CTX_kdf(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KDF;
14711}
14712#[repr(C)]
14713#[derive(Copy, Clone)]
14714pub struct evp_hpke_ctx_st {
14715    pub kem: *const EVP_HPKE_KEM,
14716    pub aead: *const EVP_HPKE_AEAD,
14717    pub kdf: *const EVP_HPKE_KDF,
14718    pub aead_ctx: EVP_AEAD_CTX,
14719    pub base_nonce: [u8; 24usize],
14720    pub exporter_secret: [u8; 64usize],
14721    pub seq: u64,
14722    pub is_sender: ::core::ffi::c_int,
14723}
14724#[repr(C)]
14725#[derive(Debug, Copy, Clone)]
14726pub struct evp_hpke_key_st {
14727    pub kem: *const EVP_HPKE_KEM,
14728    pub private_key: [u8; 64usize],
14729    pub public_key: [u8; 1568usize],
14730}
14731#[repr(C)]
14732#[derive(Debug, Copy, Clone)]
14733pub struct HRSS_private_key {
14734    pub opaque: [u8; 1808usize],
14735}
14736#[repr(C)]
14737#[derive(Debug, Copy, Clone)]
14738pub struct HRSS_public_key {
14739    pub opaque: [u8; 1424usize],
14740}
14741unsafe extern "C" {
14742    pub fn HRSS_generate_key(
14743        out_pub: *mut HRSS_public_key,
14744        out_priv: *mut HRSS_private_key,
14745        input: *const u8,
14746    ) -> ::core::ffi::c_int;
14747}
14748unsafe extern "C" {
14749    pub fn HRSS_encap(
14750        out_ciphertext: *mut u8,
14751        out_shared_key: *mut u8,
14752        in_pub: *const HRSS_public_key,
14753        in_: *const u8,
14754    ) -> ::core::ffi::c_int;
14755}
14756unsafe extern "C" {
14757    pub fn HRSS_decap(
14758        out_shared_key: *mut u8,
14759        in_priv: *const HRSS_private_key,
14760        ciphertext: *const u8,
14761        ciphertext_len: usize,
14762    ) -> ::core::ffi::c_int;
14763}
14764unsafe extern "C" {
14765    pub fn HRSS_marshal_public_key(out: *mut u8, in_pub: *const HRSS_public_key);
14766}
14767unsafe extern "C" {
14768    pub fn HRSS_parse_public_key(out: *mut HRSS_public_key, in_: *const u8) -> ::core::ffi::c_int;
14769}
14770unsafe extern "C" {
14771    pub fn EVP_PKEY_CTX_hkdf_mode(
14772        ctx: *mut EVP_PKEY_CTX,
14773        mode: ::core::ffi::c_int,
14774    ) -> ::core::ffi::c_int;
14775}
14776unsafe extern "C" {
14777    pub fn EVP_PKEY_CTX_set_hkdf_md(
14778        ctx: *mut EVP_PKEY_CTX,
14779        md: *const EVP_MD,
14780    ) -> ::core::ffi::c_int;
14781}
14782unsafe extern "C" {
14783    pub fn EVP_PKEY_CTX_set1_hkdf_key(
14784        ctx: *mut EVP_PKEY_CTX,
14785        key: *const u8,
14786        key_len: usize,
14787    ) -> ::core::ffi::c_int;
14788}
14789unsafe extern "C" {
14790    pub fn EVP_PKEY_CTX_set1_hkdf_salt(
14791        ctx: *mut EVP_PKEY_CTX,
14792        salt: *const u8,
14793        salt_len: usize,
14794    ) -> ::core::ffi::c_int;
14795}
14796unsafe extern "C" {
14797    pub fn EVP_PKEY_CTX_add1_hkdf_info(
14798        ctx: *mut EVP_PKEY_CTX,
14799        info: *const u8,
14800        info_len: usize,
14801    ) -> ::core::ffi::c_int;
14802}
14803unsafe extern "C" {
14804    pub fn MD4_Init(md4: *mut MD4_CTX) -> ::core::ffi::c_int;
14805}
14806unsafe extern "C" {
14807    pub fn MD4_Update(
14808        md4: *mut MD4_CTX,
14809        data: *const ::core::ffi::c_void,
14810        len: usize,
14811    ) -> ::core::ffi::c_int;
14812}
14813unsafe extern "C" {
14814    pub fn MD4_Final(out: *mut u8, md4: *mut MD4_CTX) -> ::core::ffi::c_int;
14815}
14816unsafe extern "C" {
14817    pub fn MD4(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
14818}
14819unsafe extern "C" {
14820    pub fn MD4_Transform(md4: *mut MD4_CTX, block: *const u8);
14821}
14822#[repr(C)]
14823#[derive(Debug, Copy, Clone)]
14824pub struct md4_state_st {
14825    pub h: [u32; 4usize],
14826    pub Nl: u32,
14827    pub Nh: u32,
14828    pub data: [u8; 64usize],
14829    pub num: ::core::ffi::c_uint,
14830}
14831unsafe extern "C" {
14832    pub fn MD5_Init(md5: *mut MD5_CTX) -> ::core::ffi::c_int;
14833}
14834unsafe extern "C" {
14835    pub fn MD5_Update(
14836        md5: *mut MD5_CTX,
14837        data: *const ::core::ffi::c_void,
14838        len: usize,
14839    ) -> ::core::ffi::c_int;
14840}
14841unsafe extern "C" {
14842    pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::core::ffi::c_int;
14843}
14844unsafe extern "C" {
14845    pub fn MD5(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
14846}
14847unsafe extern "C" {
14848    pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
14849}
14850#[repr(C)]
14851#[derive(Debug, Copy, Clone)]
14852pub struct md5_state_st {
14853    pub h: [u32; 4usize],
14854    pub Nl: u32,
14855    pub Nh: u32,
14856    pub data: [u8; 64usize],
14857    pub num: ::core::ffi::c_uint,
14858}
14859#[repr(C)]
14860#[derive(Copy, Clone)]
14861pub struct MLDSA65_private_key {
14862    pub opaque: MLDSA65_private_key__bindgen_ty_1,
14863}
14864#[repr(C)]
14865#[derive(Copy, Clone)]
14866pub union MLDSA65_private_key__bindgen_ty_1 {
14867    pub bytes: [u8; 23680usize],
14868    pub alignment: u32,
14869}
14870#[repr(C)]
14871#[derive(Copy, Clone)]
14872pub struct MLDSA65_public_key {
14873    pub opaque: MLDSA65_public_key__bindgen_ty_1,
14874}
14875#[repr(C)]
14876#[derive(Copy, Clone)]
14877pub union MLDSA65_public_key__bindgen_ty_1 {
14878    pub bytes: [u8; 6240usize],
14879    pub alignment: u32,
14880}
14881#[repr(C)]
14882#[derive(Copy, Clone)]
14883pub struct MLDSA65_prehash {
14884    pub opaque: MLDSA65_prehash__bindgen_ty_1,
14885}
14886#[repr(C)]
14887#[derive(Copy, Clone)]
14888pub union MLDSA65_prehash__bindgen_ty_1 {
14889    pub bytes: [u8; 240usize],
14890    pub alignment: u64,
14891}
14892unsafe extern "C" {
14893    pub fn MLDSA65_generate_key(
14894        out_encoded_public_key: *mut u8,
14895        out_seed: *mut u8,
14896        out_private_key: *mut MLDSA65_private_key,
14897    ) -> ::core::ffi::c_int;
14898}
14899unsafe extern "C" {
14900    pub fn MLDSA65_private_key_from_seed(
14901        out_private_key: *mut MLDSA65_private_key,
14902        seed: *const u8,
14903        seed_len: usize,
14904    ) -> ::core::ffi::c_int;
14905}
14906unsafe extern "C" {
14907    pub fn MLDSA65_public_from_private(
14908        out_public_key: *mut MLDSA65_public_key,
14909        private_key: *const MLDSA65_private_key,
14910    ) -> ::core::ffi::c_int;
14911}
14912unsafe extern "C" {
14913    pub fn MLDSA65_sign(
14914        out_encoded_signature: *mut u8,
14915        private_key: *const MLDSA65_private_key,
14916        msg: *const u8,
14917        msg_len: usize,
14918        context: *const u8,
14919        context_len: usize,
14920    ) -> ::core::ffi::c_int;
14921}
14922unsafe extern "C" {
14923    pub fn MLDSA65_verify(
14924        public_key: *const MLDSA65_public_key,
14925        signature: *const u8,
14926        signature_len: usize,
14927        msg: *const u8,
14928        msg_len: usize,
14929        context: *const u8,
14930        context_len: usize,
14931    ) -> ::core::ffi::c_int;
14932}
14933unsafe extern "C" {
14934    pub fn MLDSA65_prehash_init(
14935        out_state: *mut MLDSA65_prehash,
14936        public_key: *const MLDSA65_public_key,
14937        context: *const u8,
14938        context_len: usize,
14939    ) -> ::core::ffi::c_int;
14940}
14941unsafe extern "C" {
14942    pub fn MLDSA65_prehash_update(
14943        inout_state: *mut MLDSA65_prehash,
14944        msg: *const u8,
14945        msg_len: usize,
14946    );
14947}
14948unsafe extern "C" {
14949    pub fn MLDSA65_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA65_prehash);
14950}
14951unsafe extern "C" {
14952    pub fn MLDSA65_sign_message_representative(
14953        out_encoded_signature: *mut u8,
14954        private_key: *const MLDSA65_private_key,
14955        msg_rep: *const u8,
14956    ) -> ::core::ffi::c_int;
14957}
14958unsafe extern "C" {
14959    pub fn MLDSA65_verify_message_representative(
14960        public_key: *const MLDSA65_public_key,
14961        signature: *const u8,
14962        signature_len: usize,
14963        msg_rep: *const u8,
14964    ) -> ::core::ffi::c_int;
14965}
14966unsafe extern "C" {
14967    pub fn MLDSA65_marshal_public_key(
14968        out: *mut CBB,
14969        public_key: *const MLDSA65_public_key,
14970    ) -> ::core::ffi::c_int;
14971}
14972unsafe extern "C" {
14973    pub fn MLDSA65_parse_public_key(
14974        public_key: *mut MLDSA65_public_key,
14975        in_: *mut CBS,
14976    ) -> ::core::ffi::c_int;
14977}
14978#[repr(C)]
14979#[derive(Copy, Clone)]
14980pub struct MLDSA87_private_key {
14981    pub opaque: MLDSA87_private_key__bindgen_ty_1,
14982}
14983#[repr(C)]
14984#[derive(Copy, Clone)]
14985pub union MLDSA87_private_key__bindgen_ty_1 {
14986    pub bytes: [u8; 31872usize],
14987    pub alignment: u32,
14988}
14989#[repr(C)]
14990#[derive(Copy, Clone)]
14991pub struct MLDSA87_public_key {
14992    pub opaque: MLDSA87_public_key__bindgen_ty_1,
14993}
14994#[repr(C)]
14995#[derive(Copy, Clone)]
14996pub union MLDSA87_public_key__bindgen_ty_1 {
14997    pub bytes: [u8; 8288usize],
14998    pub alignment: u32,
14999}
15000#[repr(C)]
15001#[derive(Copy, Clone)]
15002pub struct MLDSA87_prehash {
15003    pub opaque: MLDSA87_prehash__bindgen_ty_1,
15004}
15005#[repr(C)]
15006#[derive(Copy, Clone)]
15007pub union MLDSA87_prehash__bindgen_ty_1 {
15008    pub bytes: [u8; 240usize],
15009    pub alignment: u64,
15010}
15011unsafe extern "C" {
15012    pub fn MLDSA87_generate_key(
15013        out_encoded_public_key: *mut u8,
15014        out_seed: *mut u8,
15015        out_private_key: *mut MLDSA87_private_key,
15016    ) -> ::core::ffi::c_int;
15017}
15018unsafe extern "C" {
15019    pub fn MLDSA87_private_key_from_seed(
15020        out_private_key: *mut MLDSA87_private_key,
15021        seed: *const u8,
15022        seed_len: usize,
15023    ) -> ::core::ffi::c_int;
15024}
15025unsafe extern "C" {
15026    pub fn MLDSA87_public_from_private(
15027        out_public_key: *mut MLDSA87_public_key,
15028        private_key: *const MLDSA87_private_key,
15029    ) -> ::core::ffi::c_int;
15030}
15031unsafe extern "C" {
15032    pub fn MLDSA87_sign(
15033        out_encoded_signature: *mut u8,
15034        private_key: *const MLDSA87_private_key,
15035        msg: *const u8,
15036        msg_len: usize,
15037        context: *const u8,
15038        context_len: usize,
15039    ) -> ::core::ffi::c_int;
15040}
15041unsafe extern "C" {
15042    pub fn MLDSA87_verify(
15043        public_key: *const MLDSA87_public_key,
15044        signature: *const u8,
15045        signature_len: usize,
15046        msg: *const u8,
15047        msg_len: usize,
15048        context: *const u8,
15049        context_len: usize,
15050    ) -> ::core::ffi::c_int;
15051}
15052unsafe extern "C" {
15053    pub fn MLDSA87_prehash_init(
15054        out_state: *mut MLDSA87_prehash,
15055        public_key: *const MLDSA87_public_key,
15056        context: *const u8,
15057        context_len: usize,
15058    ) -> ::core::ffi::c_int;
15059}
15060unsafe extern "C" {
15061    pub fn MLDSA87_prehash_update(
15062        inout_state: *mut MLDSA87_prehash,
15063        msg: *const u8,
15064        msg_len: usize,
15065    );
15066}
15067unsafe extern "C" {
15068    pub fn MLDSA87_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA87_prehash);
15069}
15070unsafe extern "C" {
15071    pub fn MLDSA87_sign_message_representative(
15072        out_encoded_signature: *mut u8,
15073        private_key: *const MLDSA87_private_key,
15074        msg_rep: *const u8,
15075    ) -> ::core::ffi::c_int;
15076}
15077unsafe extern "C" {
15078    pub fn MLDSA87_verify_message_representative(
15079        public_key: *const MLDSA87_public_key,
15080        signature: *const u8,
15081        signature_len: usize,
15082        msg_rep: *const u8,
15083    ) -> ::core::ffi::c_int;
15084}
15085unsafe extern "C" {
15086    pub fn MLDSA87_marshal_public_key(
15087        out: *mut CBB,
15088        public_key: *const MLDSA87_public_key,
15089    ) -> ::core::ffi::c_int;
15090}
15091unsafe extern "C" {
15092    pub fn MLDSA87_parse_public_key(
15093        public_key: *mut MLDSA87_public_key,
15094        in_: *mut CBS,
15095    ) -> ::core::ffi::c_int;
15096}
15097#[repr(C)]
15098#[derive(Copy, Clone)]
15099pub struct MLDSA44_private_key {
15100    pub opaque: MLDSA44_private_key__bindgen_ty_1,
15101}
15102#[repr(C)]
15103#[derive(Copy, Clone)]
15104pub union MLDSA44_private_key__bindgen_ty_1 {
15105    pub bytes: [u8; 16512usize],
15106    pub alignment: u32,
15107}
15108#[repr(C)]
15109#[derive(Copy, Clone)]
15110pub struct MLDSA44_public_key {
15111    pub opaque: MLDSA44_public_key__bindgen_ty_1,
15112}
15113#[repr(C)]
15114#[derive(Copy, Clone)]
15115pub union MLDSA44_public_key__bindgen_ty_1 {
15116    pub bytes: [u8; 4192usize],
15117    pub alignment: u32,
15118}
15119#[repr(C)]
15120#[derive(Copy, Clone)]
15121pub struct MLDSA44_prehash {
15122    pub opaque: MLDSA44_prehash__bindgen_ty_1,
15123}
15124#[repr(C)]
15125#[derive(Copy, Clone)]
15126pub union MLDSA44_prehash__bindgen_ty_1 {
15127    pub bytes: [u8; 240usize],
15128    pub alignment: u64,
15129}
15130unsafe extern "C" {
15131    pub fn MLDSA44_generate_key(
15132        out_encoded_public_key: *mut u8,
15133        out_seed: *mut u8,
15134        out_private_key: *mut MLDSA44_private_key,
15135    ) -> ::core::ffi::c_int;
15136}
15137unsafe extern "C" {
15138    pub fn MLDSA44_private_key_from_seed(
15139        out_private_key: *mut MLDSA44_private_key,
15140        seed: *const u8,
15141        seed_len: usize,
15142    ) -> ::core::ffi::c_int;
15143}
15144unsafe extern "C" {
15145    pub fn MLDSA44_public_from_private(
15146        out_public_key: *mut MLDSA44_public_key,
15147        private_key: *const MLDSA44_private_key,
15148    ) -> ::core::ffi::c_int;
15149}
15150unsafe extern "C" {
15151    pub fn MLDSA44_sign(
15152        out_encoded_signature: *mut u8,
15153        private_key: *const MLDSA44_private_key,
15154        msg: *const u8,
15155        msg_len: usize,
15156        context: *const u8,
15157        context_len: usize,
15158    ) -> ::core::ffi::c_int;
15159}
15160unsafe extern "C" {
15161    pub fn MLDSA44_verify(
15162        public_key: *const MLDSA44_public_key,
15163        signature: *const u8,
15164        signature_len: usize,
15165        msg: *const u8,
15166        msg_len: usize,
15167        context: *const u8,
15168        context_len: usize,
15169    ) -> ::core::ffi::c_int;
15170}
15171unsafe extern "C" {
15172    pub fn MLDSA44_prehash_init(
15173        out_state: *mut MLDSA44_prehash,
15174        public_key: *const MLDSA44_public_key,
15175        context: *const u8,
15176        context_len: usize,
15177    ) -> ::core::ffi::c_int;
15178}
15179unsafe extern "C" {
15180    pub fn MLDSA44_prehash_update(
15181        inout_state: *mut MLDSA44_prehash,
15182        msg: *const u8,
15183        msg_len: usize,
15184    );
15185}
15186unsafe extern "C" {
15187    pub fn MLDSA44_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA44_prehash);
15188}
15189unsafe extern "C" {
15190    pub fn MLDSA44_sign_message_representative(
15191        out_encoded_signature: *mut u8,
15192        private_key: *const MLDSA44_private_key,
15193        msg_rep: *const u8,
15194    ) -> ::core::ffi::c_int;
15195}
15196unsafe extern "C" {
15197    pub fn MLDSA44_verify_message_representative(
15198        public_key: *const MLDSA44_public_key,
15199        signature: *const u8,
15200        signature_len: usize,
15201        msg_rep: *const u8,
15202    ) -> ::core::ffi::c_int;
15203}
15204unsafe extern "C" {
15205    pub fn MLDSA44_marshal_public_key(
15206        out: *mut CBB,
15207        public_key: *const MLDSA44_public_key,
15208    ) -> ::core::ffi::c_int;
15209}
15210unsafe extern "C" {
15211    pub fn MLDSA44_parse_public_key(
15212        public_key: *mut MLDSA44_public_key,
15213        in_: *mut CBS,
15214    ) -> ::core::ffi::c_int;
15215}
15216#[repr(C)]
15217#[derive(Copy, Clone)]
15218pub struct MLKEM768_public_key {
15219    pub opaque: MLKEM768_public_key__bindgen_ty_1,
15220}
15221#[repr(C)]
15222#[derive(Copy, Clone)]
15223pub union MLKEM768_public_key__bindgen_ty_1 {
15224    pub bytes: [u8; 6208usize],
15225    pub alignment: u16,
15226}
15227#[repr(C)]
15228#[derive(Copy, Clone)]
15229pub struct MLKEM768_private_key {
15230    pub opaque: MLKEM768_private_key__bindgen_ty_1,
15231}
15232#[repr(C)]
15233#[derive(Copy, Clone)]
15234pub union MLKEM768_private_key__bindgen_ty_1 {
15235    pub bytes: [u8; 7776usize],
15236    pub alignment: u16,
15237}
15238unsafe extern "C" {
15239    pub fn MLKEM768_generate_key(
15240        out_encoded_public_key: *mut u8,
15241        optional_out_seed: *mut u8,
15242        out_private_key: *mut MLKEM768_private_key,
15243    );
15244}
15245unsafe extern "C" {
15246    pub fn MLKEM768_private_key_from_seed(
15247        out_private_key: *mut MLKEM768_private_key,
15248        seed: *const u8,
15249        seed_len: usize,
15250    ) -> ::core::ffi::c_int;
15251}
15252unsafe extern "C" {
15253    pub fn MLKEM768_public_from_private(
15254        out_public_key: *mut MLKEM768_public_key,
15255        private_key: *const MLKEM768_private_key,
15256    );
15257}
15258unsafe extern "C" {
15259    pub fn MLKEM768_encap(
15260        out_ciphertext: *mut u8,
15261        out_shared_secret: *mut u8,
15262        public_key: *const MLKEM768_public_key,
15263    );
15264}
15265unsafe extern "C" {
15266    pub fn MLKEM768_decap(
15267        out_shared_secret: *mut u8,
15268        ciphertext: *const u8,
15269        ciphertext_len: usize,
15270        private_key: *const MLKEM768_private_key,
15271    ) -> ::core::ffi::c_int;
15272}
15273unsafe extern "C" {
15274    pub fn MLKEM768_marshal_public_key(
15275        out: *mut CBB,
15276        public_key: *const MLKEM768_public_key,
15277    ) -> ::core::ffi::c_int;
15278}
15279unsafe extern "C" {
15280    pub fn MLKEM768_parse_public_key(
15281        out_public_key: *mut MLKEM768_public_key,
15282        in_: *mut CBS,
15283    ) -> ::core::ffi::c_int;
15284}
15285#[repr(C)]
15286#[derive(Copy, Clone)]
15287pub struct MLKEM1024_public_key {
15288    pub opaque: MLKEM1024_public_key__bindgen_ty_1,
15289}
15290#[repr(C)]
15291#[derive(Copy, Clone)]
15292pub union MLKEM1024_public_key__bindgen_ty_1 {
15293    pub bytes: [u8; 10304usize],
15294    pub alignment: u16,
15295}
15296#[repr(C)]
15297#[derive(Copy, Clone)]
15298pub struct MLKEM1024_private_key {
15299    pub opaque: MLKEM1024_private_key__bindgen_ty_1,
15300}
15301#[repr(C)]
15302#[derive(Copy, Clone)]
15303pub union MLKEM1024_private_key__bindgen_ty_1 {
15304    pub bytes: [u8; 12384usize],
15305    pub alignment: u16,
15306}
15307unsafe extern "C" {
15308    pub fn MLKEM1024_generate_key(
15309        out_encoded_public_key: *mut u8,
15310        optional_out_seed: *mut u8,
15311        out_private_key: *mut MLKEM1024_private_key,
15312    );
15313}
15314unsafe extern "C" {
15315    pub fn MLKEM1024_private_key_from_seed(
15316        out_private_key: *mut MLKEM1024_private_key,
15317        seed: *const u8,
15318        seed_len: usize,
15319    ) -> ::core::ffi::c_int;
15320}
15321unsafe extern "C" {
15322    pub fn MLKEM1024_public_from_private(
15323        out_public_key: *mut MLKEM1024_public_key,
15324        private_key: *const MLKEM1024_private_key,
15325    );
15326}
15327unsafe extern "C" {
15328    pub fn MLKEM1024_encap(
15329        out_ciphertext: *mut u8,
15330        out_shared_secret: *mut u8,
15331        public_key: *const MLKEM1024_public_key,
15332    );
15333}
15334unsafe extern "C" {
15335    pub fn MLKEM1024_decap(
15336        out_shared_secret: *mut u8,
15337        ciphertext: *const u8,
15338        ciphertext_len: usize,
15339        private_key: *const MLKEM1024_private_key,
15340    ) -> ::core::ffi::c_int;
15341}
15342unsafe extern "C" {
15343    pub fn MLKEM1024_marshal_public_key(
15344        out: *mut CBB,
15345        public_key: *const MLKEM1024_public_key,
15346    ) -> ::core::ffi::c_int;
15347}
15348unsafe extern "C" {
15349    pub fn MLKEM1024_parse_public_key(
15350        out_public_key: *mut MLKEM1024_public_key,
15351        in_: *mut CBS,
15352    ) -> ::core::ffi::c_int;
15353}
15354unsafe extern "C" {
15355    pub fn OBJ_dup(obj: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
15356}
15357unsafe extern "C" {
15358    pub fn OBJ_cmp(a: *const ASN1_OBJECT, b: *const ASN1_OBJECT) -> ::core::ffi::c_int;
15359}
15360unsafe extern "C" {
15361    pub fn OBJ_get0_data(obj: *const ASN1_OBJECT) -> *const u8;
15362}
15363unsafe extern "C" {
15364    pub fn OBJ_length(obj: *const ASN1_OBJECT) -> usize;
15365}
15366unsafe extern "C" {
15367    pub fn OBJ_obj2nid(obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
15368}
15369unsafe extern "C" {
15370    pub fn OBJ_cbs2nid(cbs: *const CBS) -> ::core::ffi::c_int;
15371}
15372unsafe extern "C" {
15373    pub fn OBJ_sn2nid(short_name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15374}
15375unsafe extern "C" {
15376    pub fn OBJ_ln2nid(long_name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15377}
15378unsafe extern "C" {
15379    pub fn OBJ_txt2nid(s: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15380}
15381unsafe extern "C" {
15382    pub fn OBJ_nid2obj(nid: ::core::ffi::c_int) -> *mut ASN1_OBJECT;
15383}
15384unsafe extern "C" {
15385    pub fn OBJ_get_undef() -> *const ASN1_OBJECT;
15386}
15387unsafe extern "C" {
15388    pub fn OBJ_nid2sn(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
15389}
15390unsafe extern "C" {
15391    pub fn OBJ_nid2ln(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
15392}
15393unsafe extern "C" {
15394    pub fn OBJ_nid2cbb(out: *mut CBB, nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
15395}
15396unsafe extern "C" {
15397    pub fn OBJ_txt2obj(
15398        s: *const ::core::ffi::c_char,
15399        dont_search_names: ::core::ffi::c_int,
15400    ) -> *mut ASN1_OBJECT;
15401}
15402unsafe extern "C" {
15403    pub fn OBJ_obj2txt(
15404        out: *mut ::core::ffi::c_char,
15405        out_len: ::core::ffi::c_int,
15406        obj: *const ASN1_OBJECT,
15407        always_return_oid: ::core::ffi::c_int,
15408    ) -> ::core::ffi::c_int;
15409}
15410unsafe extern "C" {
15411    pub fn OBJ_create(
15412        oid: *const ::core::ffi::c_char,
15413        short_name: *const ::core::ffi::c_char,
15414        long_name: *const ::core::ffi::c_char,
15415    ) -> ::core::ffi::c_int;
15416}
15417unsafe extern "C" {
15418    pub fn OBJ_find_sigid_algs(
15419        sign_nid: ::core::ffi::c_int,
15420        out_digest_nid: *mut ::core::ffi::c_int,
15421        out_pkey_nid: *mut ::core::ffi::c_int,
15422    ) -> ::core::ffi::c_int;
15423}
15424unsafe extern "C" {
15425    pub fn OBJ_find_sigid_by_algs(
15426        out_sign_nid: *mut ::core::ffi::c_int,
15427        digest_nid: ::core::ffi::c_int,
15428        pkey_nid: ::core::ffi::c_int,
15429    ) -> ::core::ffi::c_int;
15430}
15431#[repr(C)]
15432#[derive(Debug, Copy, Clone)]
15433pub struct obj_name_st {
15434    pub type_: ::core::ffi::c_int,
15435    pub alias: ::core::ffi::c_int,
15436    pub name: *const ::core::ffi::c_char,
15437    pub data: *const ::core::ffi::c_char,
15438}
15439pub type OBJ_NAME = obj_name_st;
15440unsafe extern "C" {
15441    pub fn OBJ_NAME_do_all_sorted(
15442        type_: ::core::ffi::c_int,
15443        callback: ::core::option::Option<
15444            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::core::ffi::c_void),
15445        >,
15446        arg: *mut ::core::ffi::c_void,
15447    );
15448}
15449unsafe extern "C" {
15450    pub fn OBJ_NAME_do_all(
15451        type_: ::core::ffi::c_int,
15452        callback: ::core::option::Option<
15453            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::core::ffi::c_void),
15454        >,
15455        arg: *mut ::core::ffi::c_void,
15456    );
15457}
15458unsafe extern "C" {
15459    pub fn OBJ_cleanup();
15460}
15461#[repr(C)]
15462#[derive(Debug)]
15463pub struct stack_st_CRYPTO_BUFFER {
15464    _unused: [u8; 0],
15465}
15466#[repr(C)]
15467#[derive(Debug)]
15468pub struct stack_st_X509 {
15469    _unused: [u8; 0],
15470}
15471#[repr(C)]
15472#[derive(Debug)]
15473pub struct stack_st_X509_CRL {
15474    _unused: [u8; 0],
15475}
15476unsafe extern "C" {
15477    pub fn PKCS7_get_raw_certificates(
15478        out_certs: *mut stack_st_CRYPTO_BUFFER,
15479        cbs: *mut CBS,
15480        pool: *mut CRYPTO_BUFFER_POOL,
15481    ) -> ::core::ffi::c_int;
15482}
15483unsafe extern "C" {
15484    pub fn PKCS7_get_certificates(
15485        out_certs: *mut stack_st_X509,
15486        cbs: *mut CBS,
15487    ) -> ::core::ffi::c_int;
15488}
15489unsafe extern "C" {
15490    pub fn PKCS7_bundle_raw_certificates(
15491        out: *mut CBB,
15492        certs: *const stack_st_CRYPTO_BUFFER,
15493    ) -> ::core::ffi::c_int;
15494}
15495unsafe extern "C" {
15496    pub fn PKCS7_bundle_certificates(
15497        out: *mut CBB,
15498        certs: *const stack_st_X509,
15499    ) -> ::core::ffi::c_int;
15500}
15501unsafe extern "C" {
15502    pub fn PKCS7_get_CRLs(out_crls: *mut stack_st_X509_CRL, cbs: *mut CBS) -> ::core::ffi::c_int;
15503}
15504unsafe extern "C" {
15505    pub fn PKCS7_bundle_CRLs(out: *mut CBB, crls: *const stack_st_X509_CRL) -> ::core::ffi::c_int;
15506}
15507unsafe extern "C" {
15508    pub fn PKCS7_get_PEM_certificates(
15509        out_certs: *mut stack_st_X509,
15510        pem_bio: *mut BIO,
15511    ) -> ::core::ffi::c_int;
15512}
15513unsafe extern "C" {
15514    pub fn PKCS7_get_PEM_CRLs(
15515        out_crls: *mut stack_st_X509_CRL,
15516        pem_bio: *mut BIO,
15517    ) -> ::core::ffi::c_int;
15518}
15519#[repr(C)]
15520#[derive(Debug, Copy, Clone)]
15521pub struct PKCS7_SIGNED {
15522    pub cert: *mut stack_st_X509,
15523    pub crl: *mut stack_st_X509_CRL,
15524}
15525#[repr(C)]
15526#[derive(Debug, Copy, Clone)]
15527pub struct PKCS7_SIGN_ENVELOPE {
15528    pub cert: *mut stack_st_X509,
15529    pub crl: *mut stack_st_X509_CRL,
15530}
15531pub type PKCS7_ENVELOPE = ::core::ffi::c_void;
15532pub type PKCS7_DIGEST = ::core::ffi::c_void;
15533pub type PKCS7_ENCRYPT = ::core::ffi::c_void;
15534pub type PKCS7_SIGNER_INFO = ::core::ffi::c_void;
15535#[repr(C)]
15536#[derive(Copy, Clone)]
15537pub struct PKCS7 {
15538    pub ber_bytes: *mut u8,
15539    pub ber_len: usize,
15540    pub type_: *mut ASN1_OBJECT,
15541    pub d: PKCS7__bindgen_ty_1,
15542}
15543#[repr(C)]
15544#[derive(Copy, Clone)]
15545pub union PKCS7__bindgen_ty_1 {
15546    pub ptr: *mut ::core::ffi::c_char,
15547    pub data: *mut ASN1_OCTET_STRING,
15548    pub sign: *mut PKCS7_SIGNED,
15549    pub enveloped: *mut PKCS7_ENVELOPE,
15550    pub signed_and_enveloped: *mut PKCS7_SIGN_ENVELOPE,
15551    pub digest: *mut PKCS7_DIGEST,
15552    pub encrypted: *mut PKCS7_ENCRYPT,
15553    pub other: *mut ASN1_TYPE,
15554}
15555unsafe extern "C" {
15556    pub fn d2i_PKCS7(out: *mut *mut PKCS7, inp: *mut *const u8, len: usize) -> *mut PKCS7;
15557}
15558unsafe extern "C" {
15559    pub fn d2i_PKCS7_bio(bio: *mut BIO, out: *mut *mut PKCS7) -> *mut PKCS7;
15560}
15561unsafe extern "C" {
15562    pub fn i2d_PKCS7(p7: *const PKCS7, out: *mut *mut u8) -> ::core::ffi::c_int;
15563}
15564unsafe extern "C" {
15565    pub fn i2d_PKCS7_bio(bio: *mut BIO, p7: *const PKCS7) -> ::core::ffi::c_int;
15566}
15567unsafe extern "C" {
15568    pub fn PKCS7_free(p7: *mut PKCS7);
15569}
15570unsafe extern "C" {
15571    pub fn PKCS7_type_is_data(p7: *const PKCS7) -> ::core::ffi::c_int;
15572}
15573unsafe extern "C" {
15574    pub fn PKCS7_type_is_digest(p7: *const PKCS7) -> ::core::ffi::c_int;
15575}
15576unsafe extern "C" {
15577    pub fn PKCS7_type_is_encrypted(p7: *const PKCS7) -> ::core::ffi::c_int;
15578}
15579unsafe extern "C" {
15580    pub fn PKCS7_type_is_enveloped(p7: *const PKCS7) -> ::core::ffi::c_int;
15581}
15582unsafe extern "C" {
15583    pub fn PKCS7_type_is_signed(p7: *const PKCS7) -> ::core::ffi::c_int;
15584}
15585unsafe extern "C" {
15586    pub fn PKCS7_type_is_signedAndEnveloped(p7: *const PKCS7) -> ::core::ffi::c_int;
15587}
15588unsafe extern "C" {
15589    pub fn PKCS7_sign(
15590        sign_cert: *mut X509,
15591        pkey: *mut EVP_PKEY,
15592        certs: *mut stack_st_X509,
15593        data: *mut BIO,
15594        flags: ::core::ffi::c_int,
15595    ) -> *mut PKCS7;
15596}
15597pub type sk_CRYPTO_BUFFER_free_func =
15598    ::core::option::Option<unsafe extern "C" fn(arg1: *mut CRYPTO_BUFFER)>;
15599pub type sk_CRYPTO_BUFFER_copy_func =
15600    ::core::option::Option<unsafe extern "C" fn(arg1: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER>;
15601pub type sk_CRYPTO_BUFFER_cmp_func = ::core::option::Option<
15602    unsafe extern "C" fn(
15603        arg1: *const *const CRYPTO_BUFFER,
15604        arg2: *const *const CRYPTO_BUFFER,
15605    ) -> ::core::ffi::c_int,
15606>;
15607pub type sk_CRYPTO_BUFFER_delete_if_func = ::core::option::Option<
15608    unsafe extern "C" fn(
15609        arg1: *mut CRYPTO_BUFFER,
15610        arg2: *mut ::core::ffi::c_void,
15611    ) -> ::core::ffi::c_int,
15612>;
15613unsafe extern "C" {
15614    #[link_name = "sk_CRYPTO_BUFFER_call_free_func__extern"]
15615    pub fn sk_CRYPTO_BUFFER_call_free_func(
15616        free_func: OPENSSL_sk_free_func,
15617        ptr: *mut ::core::ffi::c_void,
15618    );
15619}
15620unsafe extern "C" {
15621    #[link_name = "sk_CRYPTO_BUFFER_call_copy_func__extern"]
15622    pub fn sk_CRYPTO_BUFFER_call_copy_func(
15623        copy_func: OPENSSL_sk_copy_func,
15624        ptr: *const ::core::ffi::c_void,
15625    ) -> *mut ::core::ffi::c_void;
15626}
15627unsafe extern "C" {
15628    #[link_name = "sk_CRYPTO_BUFFER_call_cmp_func__extern"]
15629    pub fn sk_CRYPTO_BUFFER_call_cmp_func(
15630        cmp_func: OPENSSL_sk_cmp_func,
15631        a: *const ::core::ffi::c_void,
15632        b: *const ::core::ffi::c_void,
15633    ) -> ::core::ffi::c_int;
15634}
15635unsafe extern "C" {
15636    #[link_name = "sk_CRYPTO_BUFFER_call_delete_if_func__extern"]
15637    pub fn sk_CRYPTO_BUFFER_call_delete_if_func(
15638        func: OPENSSL_sk_delete_if_func,
15639        obj: *mut ::core::ffi::c_void,
15640        data: *mut ::core::ffi::c_void,
15641    ) -> ::core::ffi::c_int;
15642}
15643unsafe extern "C" {
15644    #[link_name = "sk_CRYPTO_BUFFER_new__extern"]
15645    pub fn sk_CRYPTO_BUFFER_new(comp: sk_CRYPTO_BUFFER_cmp_func) -> *mut stack_st_CRYPTO_BUFFER;
15646}
15647unsafe extern "C" {
15648    #[link_name = "sk_CRYPTO_BUFFER_new_null__extern"]
15649    pub fn sk_CRYPTO_BUFFER_new_null() -> *mut stack_st_CRYPTO_BUFFER;
15650}
15651unsafe extern "C" {
15652    #[link_name = "sk_CRYPTO_BUFFER_num__extern"]
15653    pub fn sk_CRYPTO_BUFFER_num(sk: *const stack_st_CRYPTO_BUFFER) -> usize;
15654}
15655unsafe extern "C" {
15656    #[link_name = "sk_CRYPTO_BUFFER_zero__extern"]
15657    pub fn sk_CRYPTO_BUFFER_zero(sk: *mut stack_st_CRYPTO_BUFFER);
15658}
15659unsafe extern "C" {
15660    #[link_name = "sk_CRYPTO_BUFFER_value__extern"]
15661    pub fn sk_CRYPTO_BUFFER_value(
15662        sk: *const stack_st_CRYPTO_BUFFER,
15663        i: usize,
15664    ) -> *mut CRYPTO_BUFFER;
15665}
15666unsafe extern "C" {
15667    #[link_name = "sk_CRYPTO_BUFFER_set__extern"]
15668    pub fn sk_CRYPTO_BUFFER_set(
15669        sk: *mut stack_st_CRYPTO_BUFFER,
15670        i: usize,
15671        p: *mut CRYPTO_BUFFER,
15672    ) -> *mut CRYPTO_BUFFER;
15673}
15674unsafe extern "C" {
15675    #[link_name = "sk_CRYPTO_BUFFER_free__extern"]
15676    pub fn sk_CRYPTO_BUFFER_free(sk: *mut stack_st_CRYPTO_BUFFER);
15677}
15678unsafe extern "C" {
15679    #[link_name = "sk_CRYPTO_BUFFER_pop_free__extern"]
15680    pub fn sk_CRYPTO_BUFFER_pop_free(
15681        sk: *mut stack_st_CRYPTO_BUFFER,
15682        free_func: sk_CRYPTO_BUFFER_free_func,
15683    );
15684}
15685unsafe extern "C" {
15686    #[link_name = "sk_CRYPTO_BUFFER_insert__extern"]
15687    pub fn sk_CRYPTO_BUFFER_insert(
15688        sk: *mut stack_st_CRYPTO_BUFFER,
15689        p: *mut CRYPTO_BUFFER,
15690        where_: usize,
15691    ) -> usize;
15692}
15693unsafe extern "C" {
15694    #[link_name = "sk_CRYPTO_BUFFER_delete__extern"]
15695    pub fn sk_CRYPTO_BUFFER_delete(
15696        sk: *mut stack_st_CRYPTO_BUFFER,
15697        where_: usize,
15698    ) -> *mut CRYPTO_BUFFER;
15699}
15700unsafe extern "C" {
15701    #[link_name = "sk_CRYPTO_BUFFER_delete_ptr__extern"]
15702    pub fn sk_CRYPTO_BUFFER_delete_ptr(
15703        sk: *mut stack_st_CRYPTO_BUFFER,
15704        p: *const CRYPTO_BUFFER,
15705    ) -> *mut CRYPTO_BUFFER;
15706}
15707unsafe extern "C" {
15708    #[link_name = "sk_CRYPTO_BUFFER_delete_if__extern"]
15709    pub fn sk_CRYPTO_BUFFER_delete_if(
15710        sk: *mut stack_st_CRYPTO_BUFFER,
15711        func: sk_CRYPTO_BUFFER_delete_if_func,
15712        data: *mut ::core::ffi::c_void,
15713    );
15714}
15715unsafe extern "C" {
15716    #[link_name = "sk_CRYPTO_BUFFER_find__extern"]
15717    pub fn sk_CRYPTO_BUFFER_find(
15718        sk: *const stack_st_CRYPTO_BUFFER,
15719        out_index: *mut usize,
15720        p: *const CRYPTO_BUFFER,
15721    ) -> ::core::ffi::c_int;
15722}
15723unsafe extern "C" {
15724    #[link_name = "sk_CRYPTO_BUFFER_shift__extern"]
15725    pub fn sk_CRYPTO_BUFFER_shift(sk: *mut stack_st_CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15726}
15727unsafe extern "C" {
15728    #[link_name = "sk_CRYPTO_BUFFER_push__extern"]
15729    pub fn sk_CRYPTO_BUFFER_push(sk: *mut stack_st_CRYPTO_BUFFER, p: *mut CRYPTO_BUFFER) -> usize;
15730}
15731unsafe extern "C" {
15732    #[link_name = "sk_CRYPTO_BUFFER_pop__extern"]
15733    pub fn sk_CRYPTO_BUFFER_pop(sk: *mut stack_st_CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15734}
15735unsafe extern "C" {
15736    #[link_name = "sk_CRYPTO_BUFFER_dup__extern"]
15737    pub fn sk_CRYPTO_BUFFER_dup(sk: *const stack_st_CRYPTO_BUFFER) -> *mut stack_st_CRYPTO_BUFFER;
15738}
15739unsafe extern "C" {
15740    #[link_name = "sk_CRYPTO_BUFFER_sort__extern"]
15741    pub fn sk_CRYPTO_BUFFER_sort(sk: *mut stack_st_CRYPTO_BUFFER);
15742}
15743unsafe extern "C" {
15744    #[link_name = "sk_CRYPTO_BUFFER_sort_and_dedup__extern"]
15745    pub fn sk_CRYPTO_BUFFER_sort_and_dedup(
15746        sk: *mut stack_st_CRYPTO_BUFFER,
15747        free_func: sk_CRYPTO_BUFFER_free_func,
15748    );
15749}
15750unsafe extern "C" {
15751    #[link_name = "sk_CRYPTO_BUFFER_is_sorted__extern"]
15752    pub fn sk_CRYPTO_BUFFER_is_sorted(sk: *const stack_st_CRYPTO_BUFFER) -> ::core::ffi::c_int;
15753}
15754unsafe extern "C" {
15755    #[link_name = "sk_CRYPTO_BUFFER_set_cmp_func__extern"]
15756    pub fn sk_CRYPTO_BUFFER_set_cmp_func(
15757        sk: *mut stack_st_CRYPTO_BUFFER,
15758        comp: sk_CRYPTO_BUFFER_cmp_func,
15759    ) -> sk_CRYPTO_BUFFER_cmp_func;
15760}
15761unsafe extern "C" {
15762    #[link_name = "sk_CRYPTO_BUFFER_deep_copy__extern"]
15763    pub fn sk_CRYPTO_BUFFER_deep_copy(
15764        sk: *const stack_st_CRYPTO_BUFFER,
15765        copy_func: sk_CRYPTO_BUFFER_copy_func,
15766        free_func: sk_CRYPTO_BUFFER_free_func,
15767    ) -> *mut stack_st_CRYPTO_BUFFER;
15768}
15769unsafe extern "C" {
15770    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
15771}
15772unsafe extern "C" {
15773    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
15774}
15775unsafe extern "C" {
15776    pub fn CRYPTO_BUFFER_POOL_up_ref(pool: *mut CRYPTO_BUFFER_POOL) -> ::core::ffi::c_int;
15777}
15778unsafe extern "C" {
15779    pub fn CRYPTO_BUFFER_new(
15780        data: *const u8,
15781        len: usize,
15782        pool: *mut CRYPTO_BUFFER_POOL,
15783    ) -> *mut CRYPTO_BUFFER;
15784}
15785unsafe extern "C" {
15786    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
15787}
15788unsafe extern "C" {
15789    pub fn CRYPTO_BUFFER_new_from_CBS(
15790        cbs: *const CBS,
15791        pool: *mut CRYPTO_BUFFER_POOL,
15792    ) -> *mut CRYPTO_BUFFER;
15793}
15794unsafe extern "C" {
15795    pub fn CRYPTO_BUFFER_new_from_static_data_unsafe(
15796        data: *const u8,
15797        len: usize,
15798        pool: *mut CRYPTO_BUFFER_POOL,
15799    ) -> *mut CRYPTO_BUFFER;
15800}
15801unsafe extern "C" {
15802    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
15803}
15804unsafe extern "C" {
15805    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::core::ffi::c_int;
15806}
15807unsafe extern "C" {
15808    pub fn CRYPTO_BUFFER_dup_ref(buf: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15809}
15810unsafe extern "C" {
15811    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
15812}
15813unsafe extern "C" {
15814    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
15815}
15816unsafe extern "C" {
15817    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
15818}
15819unsafe extern "C" {
15820    pub fn RSA_new_public_key(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
15821}
15822unsafe extern "C" {
15823    pub fn RSA_new_private_key(
15824        n: *const BIGNUM,
15825        e: *const BIGNUM,
15826        d: *const BIGNUM,
15827        p: *const BIGNUM,
15828        q: *const BIGNUM,
15829        dmp1: *const BIGNUM,
15830        dmq1: *const BIGNUM,
15831        iqmp: *const BIGNUM,
15832    ) -> *mut RSA;
15833}
15834unsafe extern "C" {
15835    pub fn RSA_new() -> *mut RSA;
15836}
15837unsafe extern "C" {
15838    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
15839}
15840unsafe extern "C" {
15841    pub fn RSA_free(rsa: *mut RSA);
15842}
15843unsafe extern "C" {
15844    pub fn RSA_up_ref(rsa: *mut RSA) -> ::core::ffi::c_int;
15845}
15846unsafe extern "C" {
15847    pub fn RSA_bits(rsa: *const RSA) -> ::core::ffi::c_uint;
15848}
15849unsafe extern "C" {
15850    pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
15851}
15852unsafe extern "C" {
15853    pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
15854}
15855unsafe extern "C" {
15856    pub fn RSA_get0_d(rsa: *const RSA) -> *const BIGNUM;
15857}
15858unsafe extern "C" {
15859    pub fn RSA_get0_p(rsa: *const RSA) -> *const BIGNUM;
15860}
15861unsafe extern "C" {
15862    pub fn RSA_get0_q(rsa: *const RSA) -> *const BIGNUM;
15863}
15864unsafe extern "C" {
15865    pub fn RSA_get0_dmp1(rsa: *const RSA) -> *const BIGNUM;
15866}
15867unsafe extern "C" {
15868    pub fn RSA_get0_dmq1(rsa: *const RSA) -> *const BIGNUM;
15869}
15870unsafe extern "C" {
15871    pub fn RSA_get0_iqmp(rsa: *const RSA) -> *const BIGNUM;
15872}
15873unsafe extern "C" {
15874    pub fn RSA_get0_key(
15875        rsa: *const RSA,
15876        out_n: *mut *const BIGNUM,
15877        out_e: *mut *const BIGNUM,
15878        out_d: *mut *const BIGNUM,
15879    );
15880}
15881unsafe extern "C" {
15882    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
15883}
15884unsafe extern "C" {
15885    pub fn RSA_get0_crt_params(
15886        rsa: *const RSA,
15887        out_dmp1: *mut *const BIGNUM,
15888        out_dmq1: *mut *const BIGNUM,
15889        out_iqmp: *mut *const BIGNUM,
15890    );
15891}
15892unsafe extern "C" {
15893    pub fn RSA_set0_key(
15894        rsa: *mut RSA,
15895        n: *mut BIGNUM,
15896        e: *mut BIGNUM,
15897        d: *mut BIGNUM,
15898    ) -> ::core::ffi::c_int;
15899}
15900unsafe extern "C" {
15901    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM) -> ::core::ffi::c_int;
15902}
15903unsafe extern "C" {
15904    pub fn RSA_set0_crt_params(
15905        rsa: *mut RSA,
15906        dmp1: *mut BIGNUM,
15907        dmq1: *mut BIGNUM,
15908        iqmp: *mut BIGNUM,
15909    ) -> ::core::ffi::c_int;
15910}
15911unsafe extern "C" {
15912    pub fn RSA_generate_key_ex(
15913        rsa: *mut RSA,
15914        bits: ::core::ffi::c_int,
15915        e: *const BIGNUM,
15916        cb: *mut BN_GENCB,
15917    ) -> ::core::ffi::c_int;
15918}
15919unsafe extern "C" {
15920    pub fn RSA_generate_key_fips(
15921        rsa: *mut RSA,
15922        bits: ::core::ffi::c_int,
15923        cb: *mut BN_GENCB,
15924    ) -> ::core::ffi::c_int;
15925}
15926unsafe extern "C" {
15927    pub fn RSA_encrypt(
15928        rsa: *mut RSA,
15929        out_len: *mut usize,
15930        out: *mut u8,
15931        max_out: usize,
15932        in_: *const u8,
15933        in_len: usize,
15934        padding: ::core::ffi::c_int,
15935    ) -> ::core::ffi::c_int;
15936}
15937unsafe extern "C" {
15938    pub fn RSA_decrypt(
15939        rsa: *mut RSA,
15940        out_len: *mut usize,
15941        out: *mut u8,
15942        max_out: usize,
15943        in_: *const u8,
15944        in_len: usize,
15945        padding: ::core::ffi::c_int,
15946    ) -> ::core::ffi::c_int;
15947}
15948unsafe extern "C" {
15949    pub fn RSA_public_encrypt(
15950        flen: usize,
15951        from: *const u8,
15952        to: *mut u8,
15953        rsa: *mut RSA,
15954        padding: ::core::ffi::c_int,
15955    ) -> ::core::ffi::c_int;
15956}
15957unsafe extern "C" {
15958    pub fn RSA_private_decrypt(
15959        flen: usize,
15960        from: *const u8,
15961        to: *mut u8,
15962        rsa: *mut RSA,
15963        padding: ::core::ffi::c_int,
15964    ) -> ::core::ffi::c_int;
15965}
15966unsafe extern "C" {
15967    pub fn RSA_sign(
15968        hash_nid: ::core::ffi::c_int,
15969        digest: *const u8,
15970        digest_len: usize,
15971        out: *mut u8,
15972        out_len: *mut ::core::ffi::c_uint,
15973        rsa: *mut RSA,
15974    ) -> ::core::ffi::c_int;
15975}
15976unsafe extern "C" {
15977    pub fn RSA_sign_pss_mgf1(
15978        rsa: *mut RSA,
15979        out_len: *mut usize,
15980        out: *mut u8,
15981        max_out: usize,
15982        digest: *const u8,
15983        digest_len: usize,
15984        md: *const EVP_MD,
15985        mgf1_md: *const EVP_MD,
15986        salt_len: ::core::ffi::c_int,
15987    ) -> ::core::ffi::c_int;
15988}
15989unsafe extern "C" {
15990    pub fn RSA_sign_raw(
15991        rsa: *mut RSA,
15992        out_len: *mut usize,
15993        out: *mut u8,
15994        max_out: usize,
15995        in_: *const u8,
15996        in_len: usize,
15997        padding: ::core::ffi::c_int,
15998    ) -> ::core::ffi::c_int;
15999}
16000unsafe extern "C" {
16001    pub fn RSA_verify(
16002        hash_nid: ::core::ffi::c_int,
16003        digest: *const u8,
16004        digest_len: usize,
16005        sig: *const u8,
16006        sig_len: usize,
16007        rsa: *mut RSA,
16008    ) -> ::core::ffi::c_int;
16009}
16010unsafe extern "C" {
16011    pub fn RSA_verify_pss_mgf1(
16012        rsa: *mut RSA,
16013        digest: *const u8,
16014        digest_len: usize,
16015        md: *const EVP_MD,
16016        mgf1_md: *const EVP_MD,
16017        salt_len: ::core::ffi::c_int,
16018        sig: *const u8,
16019        sig_len: usize,
16020    ) -> ::core::ffi::c_int;
16021}
16022unsafe extern "C" {
16023    pub fn RSA_verify_raw(
16024        rsa: *mut RSA,
16025        out_len: *mut usize,
16026        out: *mut u8,
16027        max_out: usize,
16028        in_: *const u8,
16029        in_len: usize,
16030        padding: ::core::ffi::c_int,
16031    ) -> ::core::ffi::c_int;
16032}
16033unsafe extern "C" {
16034    pub fn RSA_private_encrypt(
16035        flen: usize,
16036        from: *const u8,
16037        to: *mut u8,
16038        rsa: *mut RSA,
16039        padding: ::core::ffi::c_int,
16040    ) -> ::core::ffi::c_int;
16041}
16042unsafe extern "C" {
16043    pub fn RSA_public_decrypt(
16044        flen: usize,
16045        from: *const u8,
16046        to: *mut u8,
16047        rsa: *mut RSA,
16048        padding: ::core::ffi::c_int,
16049    ) -> ::core::ffi::c_int;
16050}
16051unsafe extern "C" {
16052    pub fn RSA_size(rsa: *const RSA) -> ::core::ffi::c_uint;
16053}
16054unsafe extern "C" {
16055    pub fn RSA_is_opaque(rsa: *const RSA) -> ::core::ffi::c_int;
16056}
16057unsafe extern "C" {
16058    pub fn RSAPublicKey_dup(rsa: *const RSA) -> *mut RSA;
16059}
16060unsafe extern "C" {
16061    pub fn RSAPrivateKey_dup(rsa: *const RSA) -> *mut RSA;
16062}
16063unsafe extern "C" {
16064    pub fn RSA_check_key(rsa: *const RSA) -> ::core::ffi::c_int;
16065}
16066unsafe extern "C" {
16067    pub fn RSA_check_fips(key: *mut RSA) -> ::core::ffi::c_int;
16068}
16069unsafe extern "C" {
16070    pub fn RSA_verify_PKCS1_PSS_mgf1(
16071        rsa: *const RSA,
16072        mHash: *const u8,
16073        Hash: *const EVP_MD,
16074        mgf1Hash: *const EVP_MD,
16075        EM: *const u8,
16076        sLen: ::core::ffi::c_int,
16077    ) -> ::core::ffi::c_int;
16078}
16079unsafe extern "C" {
16080    pub fn RSA_padding_add_PKCS1_PSS_mgf1(
16081        rsa: *const RSA,
16082        EM: *mut u8,
16083        mHash: *const u8,
16084        Hash: *const EVP_MD,
16085        mgf1Hash: *const EVP_MD,
16086        sLen: ::core::ffi::c_int,
16087    ) -> ::core::ffi::c_int;
16088}
16089unsafe extern "C" {
16090    pub fn RSA_padding_add_PKCS1_OAEP_mgf1(
16091        to: *mut u8,
16092        to_len: usize,
16093        from: *const u8,
16094        from_len: usize,
16095        param: *const u8,
16096        param_len: usize,
16097        md: *const EVP_MD,
16098        mgf1md: *const EVP_MD,
16099    ) -> ::core::ffi::c_int;
16100}
16101unsafe extern "C" {
16102    pub fn RSA_add_pkcs1_prefix(
16103        out_msg: *mut *mut u8,
16104        out_msg_len: *mut usize,
16105        is_alloced: *mut ::core::ffi::c_int,
16106        hash_nid: ::core::ffi::c_int,
16107        digest: *const u8,
16108        digest_len: usize,
16109    ) -> ::core::ffi::c_int;
16110}
16111unsafe extern "C" {
16112    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
16113}
16114unsafe extern "C" {
16115    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
16116}
16117unsafe extern "C" {
16118    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::core::ffi::c_int;
16119}
16120unsafe extern "C" {
16121    pub fn RSA_public_key_to_bytes(
16122        out_bytes: *mut *mut u8,
16123        out_len: *mut usize,
16124        rsa: *const RSA,
16125    ) -> ::core::ffi::c_int;
16126}
16127unsafe extern "C" {
16128    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
16129}
16130unsafe extern "C" {
16131    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
16132}
16133unsafe extern "C" {
16134    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::core::ffi::c_int;
16135}
16136unsafe extern "C" {
16137    pub fn RSA_private_key_to_bytes(
16138        out_bytes: *mut *mut u8,
16139        out_len: *mut usize,
16140        rsa: *const RSA,
16141    ) -> ::core::ffi::c_int;
16142}
16143unsafe extern "C" {
16144    pub fn RSA_new_private_key_no_crt(
16145        n: *const BIGNUM,
16146        e: *const BIGNUM,
16147        d: *const BIGNUM,
16148    ) -> *mut RSA;
16149}
16150unsafe extern "C" {
16151    pub fn RSA_new_private_key_no_e(n: *const BIGNUM, d: *const BIGNUM) -> *mut RSA;
16152}
16153unsafe extern "C" {
16154    pub fn RSA_new_public_key_large_e(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
16155}
16156unsafe extern "C" {
16157    pub fn RSA_new_private_key_large_e(
16158        n: *const BIGNUM,
16159        e: *const BIGNUM,
16160        d: *const BIGNUM,
16161        p: *const BIGNUM,
16162        q: *const BIGNUM,
16163        dmp1: *const BIGNUM,
16164        dmq1: *const BIGNUM,
16165        iqmp: *const BIGNUM,
16166    ) -> *mut RSA;
16167}
16168unsafe extern "C" {
16169    pub fn RSA_get_ex_new_index(
16170        argl: ::core::ffi::c_long,
16171        argp: *mut ::core::ffi::c_void,
16172        unused: *mut CRYPTO_EX_unused,
16173        dup_unused: CRYPTO_EX_dup,
16174        free_func: CRYPTO_EX_free,
16175    ) -> ::core::ffi::c_int;
16176}
16177unsafe extern "C" {
16178    pub fn RSA_set_ex_data(
16179        rsa: *mut RSA,
16180        idx: ::core::ffi::c_int,
16181        arg: *mut ::core::ffi::c_void,
16182    ) -> ::core::ffi::c_int;
16183}
16184unsafe extern "C" {
16185    pub fn RSA_get_ex_data(rsa: *const RSA, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
16186}
16187unsafe extern "C" {
16188    pub fn RSA_flags(rsa: *const RSA) -> ::core::ffi::c_int;
16189}
16190unsafe extern "C" {
16191    pub fn RSA_test_flags(rsa: *const RSA, flags: ::core::ffi::c_int) -> ::core::ffi::c_int;
16192}
16193unsafe extern "C" {
16194    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::core::ffi::c_int;
16195}
16196unsafe extern "C" {
16197    pub fn RSA_blinding_off(rsa: *mut RSA);
16198}
16199unsafe extern "C" {
16200    pub fn RSA_generate_key(
16201        bits: ::core::ffi::c_int,
16202        e: u64,
16203        callback: *mut ::core::ffi::c_void,
16204        cb_arg: *mut ::core::ffi::c_void,
16205    ) -> *mut RSA;
16206}
16207unsafe extern "C" {
16208    pub fn d2i_RSAPublicKey(
16209        out: *mut *mut RSA,
16210        inp: *mut *const u8,
16211        len: ::core::ffi::c_long,
16212    ) -> *mut RSA;
16213}
16214unsafe extern "C" {
16215    pub fn i2d_RSAPublicKey(in_: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
16216}
16217unsafe extern "C" {
16218    pub fn d2i_RSAPrivateKey(
16219        out: *mut *mut RSA,
16220        inp: *mut *const u8,
16221        len: ::core::ffi::c_long,
16222    ) -> *mut RSA;
16223}
16224unsafe extern "C" {
16225    pub fn i2d_RSAPrivateKey(in_: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
16226}
16227unsafe extern "C" {
16228    pub fn RSA_padding_add_PKCS1_PSS(
16229        rsa: *const RSA,
16230        EM: *mut u8,
16231        mHash: *const u8,
16232        Hash: *const EVP_MD,
16233        sLen: ::core::ffi::c_int,
16234    ) -> ::core::ffi::c_int;
16235}
16236unsafe extern "C" {
16237    pub fn RSA_verify_PKCS1_PSS(
16238        rsa: *const RSA,
16239        mHash: *const u8,
16240        Hash: *const EVP_MD,
16241        EM: *const u8,
16242        sLen: ::core::ffi::c_int,
16243    ) -> ::core::ffi::c_int;
16244}
16245unsafe extern "C" {
16246    pub fn RSA_padding_add_PKCS1_OAEP(
16247        to: *mut u8,
16248        to_len: usize,
16249        from: *const u8,
16250        from_len: usize,
16251        param: *const u8,
16252        param_len: usize,
16253    ) -> ::core::ffi::c_int;
16254}
16255unsafe extern "C" {
16256    pub fn RSA_print(
16257        bio: *mut BIO,
16258        rsa: *const RSA,
16259        indent: ::core::ffi::c_int,
16260    ) -> ::core::ffi::c_int;
16261}
16262unsafe extern "C" {
16263    pub fn RSA_get0_pss_params(rsa: *const RSA) -> *const RSA_PSS_PARAMS;
16264}
16265unsafe extern "C" {
16266    pub fn RSA_new_method_no_e(engine: *const ENGINE, n: *const BIGNUM) -> *mut RSA;
16267}
16268#[repr(C)]
16269#[derive(Debug, Copy, Clone)]
16270pub struct rsa_meth_st {
16271    pub common: openssl_method_common_st,
16272    pub app_data: *mut ::core::ffi::c_void,
16273    pub init: ::core::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::core::ffi::c_int>,
16274    pub finish: ::core::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::core::ffi::c_int>,
16275    pub sign: ::core::option::Option<
16276        unsafe extern "C" fn(
16277            type_: ::core::ffi::c_int,
16278            m: *const u8,
16279            m_length: ::core::ffi::c_uint,
16280            sigret: *mut u8,
16281            siglen: *mut ::core::ffi::c_uint,
16282            rsa: *const RSA,
16283        ) -> ::core::ffi::c_int,
16284    >,
16285    pub sign_raw: ::core::option::Option<
16286        unsafe extern "C" fn(
16287            rsa: *mut RSA,
16288            out_len: *mut usize,
16289            out: *mut u8,
16290            max_out: usize,
16291            in_: *const u8,
16292            in_len: usize,
16293            padding: ::core::ffi::c_int,
16294        ) -> ::core::ffi::c_int,
16295    >,
16296    pub decrypt: ::core::option::Option<
16297        unsafe extern "C" fn(
16298            rsa: *mut RSA,
16299            out_len: *mut usize,
16300            out: *mut u8,
16301            max_out: usize,
16302            in_: *const u8,
16303            in_len: usize,
16304            padding: ::core::ffi::c_int,
16305        ) -> ::core::ffi::c_int,
16306    >,
16307    pub private_transform: ::core::option::Option<
16308        unsafe extern "C" fn(
16309            rsa: *mut RSA,
16310            out: *mut u8,
16311            in_: *const u8,
16312            len: usize,
16313        ) -> ::core::ffi::c_int,
16314    >,
16315    pub flags: ::core::ffi::c_int,
16316}
16317pub type sk_X509_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509)>;
16318pub type sk_X509_copy_func =
16319    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509) -> *mut X509>;
16320pub type sk_X509_cmp_func = ::core::option::Option<
16321    unsafe extern "C" fn(arg1: *const *const X509, arg2: *const *const X509) -> ::core::ffi::c_int,
16322>;
16323pub type sk_X509_delete_if_func = ::core::option::Option<
16324    unsafe extern "C" fn(arg1: *mut X509, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
16325>;
16326unsafe extern "C" {
16327    #[link_name = "sk_X509_call_free_func__extern"]
16328    pub fn sk_X509_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
16329}
16330unsafe extern "C" {
16331    #[link_name = "sk_X509_call_copy_func__extern"]
16332    pub fn sk_X509_call_copy_func(
16333        copy_func: OPENSSL_sk_copy_func,
16334        ptr: *const ::core::ffi::c_void,
16335    ) -> *mut ::core::ffi::c_void;
16336}
16337unsafe extern "C" {
16338    #[link_name = "sk_X509_call_cmp_func__extern"]
16339    pub fn sk_X509_call_cmp_func(
16340        cmp_func: OPENSSL_sk_cmp_func,
16341        a: *const ::core::ffi::c_void,
16342        b: *const ::core::ffi::c_void,
16343    ) -> ::core::ffi::c_int;
16344}
16345unsafe extern "C" {
16346    #[link_name = "sk_X509_call_delete_if_func__extern"]
16347    pub fn sk_X509_call_delete_if_func(
16348        func: OPENSSL_sk_delete_if_func,
16349        obj: *mut ::core::ffi::c_void,
16350        data: *mut ::core::ffi::c_void,
16351    ) -> ::core::ffi::c_int;
16352}
16353unsafe extern "C" {
16354    #[link_name = "sk_X509_new__extern"]
16355    pub fn sk_X509_new(comp: sk_X509_cmp_func) -> *mut stack_st_X509;
16356}
16357unsafe extern "C" {
16358    #[link_name = "sk_X509_new_null__extern"]
16359    pub fn sk_X509_new_null() -> *mut stack_st_X509;
16360}
16361unsafe extern "C" {
16362    #[link_name = "sk_X509_num__extern"]
16363    pub fn sk_X509_num(sk: *const stack_st_X509) -> usize;
16364}
16365unsafe extern "C" {
16366    #[link_name = "sk_X509_zero__extern"]
16367    pub fn sk_X509_zero(sk: *mut stack_st_X509);
16368}
16369unsafe extern "C" {
16370    #[link_name = "sk_X509_value__extern"]
16371    pub fn sk_X509_value(sk: *const stack_st_X509, i: usize) -> *mut X509;
16372}
16373unsafe extern "C" {
16374    #[link_name = "sk_X509_set__extern"]
16375    pub fn sk_X509_set(sk: *mut stack_st_X509, i: usize, p: *mut X509) -> *mut X509;
16376}
16377unsafe extern "C" {
16378    #[link_name = "sk_X509_free__extern"]
16379    pub fn sk_X509_free(sk: *mut stack_st_X509);
16380}
16381unsafe extern "C" {
16382    #[link_name = "sk_X509_pop_free__extern"]
16383    pub fn sk_X509_pop_free(sk: *mut stack_st_X509, free_func: sk_X509_free_func);
16384}
16385unsafe extern "C" {
16386    #[link_name = "sk_X509_insert__extern"]
16387    pub fn sk_X509_insert(sk: *mut stack_st_X509, p: *mut X509, where_: usize) -> usize;
16388}
16389unsafe extern "C" {
16390    #[link_name = "sk_X509_delete__extern"]
16391    pub fn sk_X509_delete(sk: *mut stack_st_X509, where_: usize) -> *mut X509;
16392}
16393unsafe extern "C" {
16394    #[link_name = "sk_X509_delete_ptr__extern"]
16395    pub fn sk_X509_delete_ptr(sk: *mut stack_st_X509, p: *const X509) -> *mut X509;
16396}
16397unsafe extern "C" {
16398    #[link_name = "sk_X509_delete_if__extern"]
16399    pub fn sk_X509_delete_if(
16400        sk: *mut stack_st_X509,
16401        func: sk_X509_delete_if_func,
16402        data: *mut ::core::ffi::c_void,
16403    );
16404}
16405unsafe extern "C" {
16406    #[link_name = "sk_X509_find__extern"]
16407    pub fn sk_X509_find(
16408        sk: *const stack_st_X509,
16409        out_index: *mut usize,
16410        p: *const X509,
16411    ) -> ::core::ffi::c_int;
16412}
16413unsafe extern "C" {
16414    #[link_name = "sk_X509_shift__extern"]
16415    pub fn sk_X509_shift(sk: *mut stack_st_X509) -> *mut X509;
16416}
16417unsafe extern "C" {
16418    #[link_name = "sk_X509_push__extern"]
16419    pub fn sk_X509_push(sk: *mut stack_st_X509, p: *mut X509) -> usize;
16420}
16421unsafe extern "C" {
16422    #[link_name = "sk_X509_pop__extern"]
16423    pub fn sk_X509_pop(sk: *mut stack_st_X509) -> *mut X509;
16424}
16425unsafe extern "C" {
16426    #[link_name = "sk_X509_dup__extern"]
16427    pub fn sk_X509_dup(sk: *const stack_st_X509) -> *mut stack_st_X509;
16428}
16429unsafe extern "C" {
16430    #[link_name = "sk_X509_sort__extern"]
16431    pub fn sk_X509_sort(sk: *mut stack_st_X509);
16432}
16433unsafe extern "C" {
16434    #[link_name = "sk_X509_sort_and_dedup__extern"]
16435    pub fn sk_X509_sort_and_dedup(sk: *mut stack_st_X509, free_func: sk_X509_free_func);
16436}
16437unsafe extern "C" {
16438    #[link_name = "sk_X509_is_sorted__extern"]
16439    pub fn sk_X509_is_sorted(sk: *const stack_st_X509) -> ::core::ffi::c_int;
16440}
16441unsafe extern "C" {
16442    #[link_name = "sk_X509_set_cmp_func__extern"]
16443    pub fn sk_X509_set_cmp_func(sk: *mut stack_st_X509, comp: sk_X509_cmp_func)
16444        -> sk_X509_cmp_func;
16445}
16446unsafe extern "C" {
16447    #[link_name = "sk_X509_deep_copy__extern"]
16448    pub fn sk_X509_deep_copy(
16449        sk: *const stack_st_X509,
16450        copy_func: sk_X509_copy_func,
16451        free_func: sk_X509_free_func,
16452    ) -> *mut stack_st_X509;
16453}
16454unsafe extern "C" {
16455    pub static X509_it: ASN1_ITEM;
16456}
16457unsafe extern "C" {
16458    pub fn X509_up_ref(x509: *mut X509) -> ::core::ffi::c_int;
16459}
16460unsafe extern "C" {
16461    pub fn X509_dup_ref(x509: *const X509) -> *mut X509;
16462}
16463unsafe extern "C" {
16464    pub fn X509_chain_up_ref(chain: *mut stack_st_X509) -> *mut stack_st_X509;
16465}
16466unsafe extern "C" {
16467    pub fn X509_dup(x509: *const X509) -> *mut X509;
16468}
16469unsafe extern "C" {
16470    pub fn X509_free(x509: *mut X509);
16471}
16472unsafe extern "C" {
16473    pub fn d2i_X509(
16474        out: *mut *mut X509,
16475        inp: *mut *const u8,
16476        len: ::core::ffi::c_long,
16477    ) -> *mut X509;
16478}
16479unsafe extern "C" {
16480    pub fn X509_parse_with_algorithms(
16481        buf: *mut CRYPTO_BUFFER,
16482        algs: *const *const EVP_PKEY_ALG,
16483        num_algs: usize,
16484    ) -> *mut X509;
16485}
16486unsafe extern "C" {
16487    pub fn X509_parse_from_buffer(buf: *mut CRYPTO_BUFFER) -> *mut X509;
16488}
16489unsafe extern "C" {
16490    pub fn i2d_X509(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16491}
16492unsafe extern "C" {
16493    pub fn X509_get_version(x509: *const X509) -> ::core::ffi::c_long;
16494}
16495unsafe extern "C" {
16496    pub fn X509_get0_serialNumber(x509: *const X509) -> *const ASN1_INTEGER;
16497}
16498unsafe extern "C" {
16499    pub fn X509_get0_notBefore(x509: *const X509) -> *const ASN1_TIME;
16500}
16501unsafe extern "C" {
16502    pub fn X509_get0_notAfter(x509: *const X509) -> *const ASN1_TIME;
16503}
16504unsafe extern "C" {
16505    pub fn X509_get_issuer_name(x509: *const X509) -> *mut X509_NAME;
16506}
16507unsafe extern "C" {
16508    pub fn X509_get_subject_name(x509: *const X509) -> *mut X509_NAME;
16509}
16510unsafe extern "C" {
16511    pub fn X509_get_X509_PUBKEY(x509: *const X509) -> *mut X509_PUBKEY;
16512}
16513unsafe extern "C" {
16514    pub fn X509_get0_pubkey(x509: *const X509) -> *mut EVP_PKEY;
16515}
16516unsafe extern "C" {
16517    pub fn X509_get_pubkey(x509: *const X509) -> *mut EVP_PKEY;
16518}
16519unsafe extern "C" {
16520    pub fn X509_get0_pubkey_bitstr(x509: *const X509) -> *mut ASN1_BIT_STRING;
16521}
16522unsafe extern "C" {
16523    pub fn X509_check_private_key(x509: *const X509, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
16524}
16525unsafe extern "C" {
16526    pub fn X509_get0_uids(
16527        x509: *const X509,
16528        out_issuer_uid: *mut *const ASN1_BIT_STRING,
16529        out_subject_uid: *mut *const ASN1_BIT_STRING,
16530    );
16531}
16532unsafe extern "C" {
16533    pub fn X509_get_extension_flags(x509: *mut X509) -> u32;
16534}
16535unsafe extern "C" {
16536    pub fn X509_get_pathlen(x509: *mut X509) -> ::core::ffi::c_long;
16537}
16538unsafe extern "C" {
16539    pub fn X509_get_key_usage(x509: *mut X509) -> u32;
16540}
16541unsafe extern "C" {
16542    pub fn X509_get_extended_key_usage(x509: *mut X509) -> u32;
16543}
16544unsafe extern "C" {
16545    pub fn X509_get0_subject_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
16546}
16547unsafe extern "C" {
16548    pub fn X509_get0_authority_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
16549}
16550#[repr(C)]
16551#[derive(Debug)]
16552pub struct stack_st_GENERAL_NAME {
16553    _unused: [u8; 0],
16554}
16555pub type sk_GENERAL_NAME_free_func =
16556    ::core::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_NAME)>;
16557pub type sk_GENERAL_NAME_copy_func =
16558    ::core::option::Option<unsafe extern "C" fn(arg1: *const GENERAL_NAME) -> *mut GENERAL_NAME>;
16559pub type sk_GENERAL_NAME_cmp_func = ::core::option::Option<
16560    unsafe extern "C" fn(
16561        arg1: *const *const GENERAL_NAME,
16562        arg2: *const *const GENERAL_NAME,
16563    ) -> ::core::ffi::c_int,
16564>;
16565pub type sk_GENERAL_NAME_delete_if_func = ::core::option::Option<
16566    unsafe extern "C" fn(
16567        arg1: *mut GENERAL_NAME,
16568        arg2: *mut ::core::ffi::c_void,
16569    ) -> ::core::ffi::c_int,
16570>;
16571unsafe extern "C" {
16572    #[link_name = "sk_GENERAL_NAME_call_free_func__extern"]
16573    pub fn sk_GENERAL_NAME_call_free_func(
16574        free_func: OPENSSL_sk_free_func,
16575        ptr: *mut ::core::ffi::c_void,
16576    );
16577}
16578unsafe extern "C" {
16579    #[link_name = "sk_GENERAL_NAME_call_copy_func__extern"]
16580    pub fn sk_GENERAL_NAME_call_copy_func(
16581        copy_func: OPENSSL_sk_copy_func,
16582        ptr: *const ::core::ffi::c_void,
16583    ) -> *mut ::core::ffi::c_void;
16584}
16585unsafe extern "C" {
16586    #[link_name = "sk_GENERAL_NAME_call_cmp_func__extern"]
16587    pub fn sk_GENERAL_NAME_call_cmp_func(
16588        cmp_func: OPENSSL_sk_cmp_func,
16589        a: *const ::core::ffi::c_void,
16590        b: *const ::core::ffi::c_void,
16591    ) -> ::core::ffi::c_int;
16592}
16593unsafe extern "C" {
16594    #[link_name = "sk_GENERAL_NAME_call_delete_if_func__extern"]
16595    pub fn sk_GENERAL_NAME_call_delete_if_func(
16596        func: OPENSSL_sk_delete_if_func,
16597        obj: *mut ::core::ffi::c_void,
16598        data: *mut ::core::ffi::c_void,
16599    ) -> ::core::ffi::c_int;
16600}
16601unsafe extern "C" {
16602    #[link_name = "sk_GENERAL_NAME_new__extern"]
16603    pub fn sk_GENERAL_NAME_new(comp: sk_GENERAL_NAME_cmp_func) -> *mut stack_st_GENERAL_NAME;
16604}
16605unsafe extern "C" {
16606    #[link_name = "sk_GENERAL_NAME_new_null__extern"]
16607    pub fn sk_GENERAL_NAME_new_null() -> *mut stack_st_GENERAL_NAME;
16608}
16609unsafe extern "C" {
16610    #[link_name = "sk_GENERAL_NAME_num__extern"]
16611    pub fn sk_GENERAL_NAME_num(sk: *const stack_st_GENERAL_NAME) -> usize;
16612}
16613unsafe extern "C" {
16614    #[link_name = "sk_GENERAL_NAME_zero__extern"]
16615    pub fn sk_GENERAL_NAME_zero(sk: *mut stack_st_GENERAL_NAME);
16616}
16617unsafe extern "C" {
16618    #[link_name = "sk_GENERAL_NAME_value__extern"]
16619    pub fn sk_GENERAL_NAME_value(sk: *const stack_st_GENERAL_NAME, i: usize) -> *mut GENERAL_NAME;
16620}
16621unsafe extern "C" {
16622    #[link_name = "sk_GENERAL_NAME_set__extern"]
16623    pub fn sk_GENERAL_NAME_set(
16624        sk: *mut stack_st_GENERAL_NAME,
16625        i: usize,
16626        p: *mut GENERAL_NAME,
16627    ) -> *mut GENERAL_NAME;
16628}
16629unsafe extern "C" {
16630    #[link_name = "sk_GENERAL_NAME_free__extern"]
16631    pub fn sk_GENERAL_NAME_free(sk: *mut stack_st_GENERAL_NAME);
16632}
16633unsafe extern "C" {
16634    #[link_name = "sk_GENERAL_NAME_pop_free__extern"]
16635    pub fn sk_GENERAL_NAME_pop_free(
16636        sk: *mut stack_st_GENERAL_NAME,
16637        free_func: sk_GENERAL_NAME_free_func,
16638    );
16639}
16640unsafe extern "C" {
16641    #[link_name = "sk_GENERAL_NAME_insert__extern"]
16642    pub fn sk_GENERAL_NAME_insert(
16643        sk: *mut stack_st_GENERAL_NAME,
16644        p: *mut GENERAL_NAME,
16645        where_: usize,
16646    ) -> usize;
16647}
16648unsafe extern "C" {
16649    #[link_name = "sk_GENERAL_NAME_delete__extern"]
16650    pub fn sk_GENERAL_NAME_delete(
16651        sk: *mut stack_st_GENERAL_NAME,
16652        where_: usize,
16653    ) -> *mut GENERAL_NAME;
16654}
16655unsafe extern "C" {
16656    #[link_name = "sk_GENERAL_NAME_delete_ptr__extern"]
16657    pub fn sk_GENERAL_NAME_delete_ptr(
16658        sk: *mut stack_st_GENERAL_NAME,
16659        p: *const GENERAL_NAME,
16660    ) -> *mut GENERAL_NAME;
16661}
16662unsafe extern "C" {
16663    #[link_name = "sk_GENERAL_NAME_delete_if__extern"]
16664    pub fn sk_GENERAL_NAME_delete_if(
16665        sk: *mut stack_st_GENERAL_NAME,
16666        func: sk_GENERAL_NAME_delete_if_func,
16667        data: *mut ::core::ffi::c_void,
16668    );
16669}
16670unsafe extern "C" {
16671    #[link_name = "sk_GENERAL_NAME_find__extern"]
16672    pub fn sk_GENERAL_NAME_find(
16673        sk: *const stack_st_GENERAL_NAME,
16674        out_index: *mut usize,
16675        p: *const GENERAL_NAME,
16676    ) -> ::core::ffi::c_int;
16677}
16678unsafe extern "C" {
16679    #[link_name = "sk_GENERAL_NAME_shift__extern"]
16680    pub fn sk_GENERAL_NAME_shift(sk: *mut stack_st_GENERAL_NAME) -> *mut GENERAL_NAME;
16681}
16682unsafe extern "C" {
16683    #[link_name = "sk_GENERAL_NAME_push__extern"]
16684    pub fn sk_GENERAL_NAME_push(sk: *mut stack_st_GENERAL_NAME, p: *mut GENERAL_NAME) -> usize;
16685}
16686unsafe extern "C" {
16687    #[link_name = "sk_GENERAL_NAME_pop__extern"]
16688    pub fn sk_GENERAL_NAME_pop(sk: *mut stack_st_GENERAL_NAME) -> *mut GENERAL_NAME;
16689}
16690unsafe extern "C" {
16691    #[link_name = "sk_GENERAL_NAME_dup__extern"]
16692    pub fn sk_GENERAL_NAME_dup(sk: *const stack_st_GENERAL_NAME) -> *mut stack_st_GENERAL_NAME;
16693}
16694unsafe extern "C" {
16695    #[link_name = "sk_GENERAL_NAME_sort__extern"]
16696    pub fn sk_GENERAL_NAME_sort(sk: *mut stack_st_GENERAL_NAME);
16697}
16698unsafe extern "C" {
16699    #[link_name = "sk_GENERAL_NAME_sort_and_dedup__extern"]
16700    pub fn sk_GENERAL_NAME_sort_and_dedup(
16701        sk: *mut stack_st_GENERAL_NAME,
16702        free_func: sk_GENERAL_NAME_free_func,
16703    );
16704}
16705unsafe extern "C" {
16706    #[link_name = "sk_GENERAL_NAME_is_sorted__extern"]
16707    pub fn sk_GENERAL_NAME_is_sorted(sk: *const stack_st_GENERAL_NAME) -> ::core::ffi::c_int;
16708}
16709unsafe extern "C" {
16710    #[link_name = "sk_GENERAL_NAME_set_cmp_func__extern"]
16711    pub fn sk_GENERAL_NAME_set_cmp_func(
16712        sk: *mut stack_st_GENERAL_NAME,
16713        comp: sk_GENERAL_NAME_cmp_func,
16714    ) -> sk_GENERAL_NAME_cmp_func;
16715}
16716unsafe extern "C" {
16717    #[link_name = "sk_GENERAL_NAME_deep_copy__extern"]
16718    pub fn sk_GENERAL_NAME_deep_copy(
16719        sk: *const stack_st_GENERAL_NAME,
16720        copy_func: sk_GENERAL_NAME_copy_func,
16721        free_func: sk_GENERAL_NAME_free_func,
16722    ) -> *mut stack_st_GENERAL_NAME;
16723}
16724pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
16725unsafe extern "C" {
16726    pub fn X509_get0_authority_issuer(x509: *mut X509) -> *const GENERAL_NAMES;
16727}
16728unsafe extern "C" {
16729    pub fn X509_get0_authority_serial(x509: *mut X509) -> *const ASN1_INTEGER;
16730}
16731#[repr(C)]
16732#[derive(Debug)]
16733pub struct stack_st_X509_EXTENSION {
16734    _unused: [u8; 0],
16735}
16736unsafe extern "C" {
16737    pub fn X509_get0_extensions(x509: *const X509) -> *const stack_st_X509_EXTENSION;
16738}
16739unsafe extern "C" {
16740    pub fn X509_get_ext_count(x: *const X509) -> ::core::ffi::c_int;
16741}
16742unsafe extern "C" {
16743    pub fn X509_get_ext_by_NID(
16744        x: *const X509,
16745        nid: ::core::ffi::c_int,
16746        lastpos: ::core::ffi::c_int,
16747    ) -> ::core::ffi::c_int;
16748}
16749unsafe extern "C" {
16750    pub fn X509_get_ext_by_OBJ(
16751        x: *const X509,
16752        obj: *const ASN1_OBJECT,
16753        lastpos: ::core::ffi::c_int,
16754    ) -> ::core::ffi::c_int;
16755}
16756unsafe extern "C" {
16757    pub fn X509_get_ext_by_critical(
16758        x: *const X509,
16759        crit: ::core::ffi::c_int,
16760        lastpos: ::core::ffi::c_int,
16761    ) -> ::core::ffi::c_int;
16762}
16763unsafe extern "C" {
16764    pub fn X509_get_ext(x: *const X509, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
16765}
16766unsafe extern "C" {
16767    pub fn X509_get_ext_d2i(
16768        x509: *const X509,
16769        nid: ::core::ffi::c_int,
16770        out_critical: *mut ::core::ffi::c_int,
16771        out_idx: *mut ::core::ffi::c_int,
16772    ) -> *mut ::core::ffi::c_void;
16773}
16774unsafe extern "C" {
16775    pub fn X509_get0_tbs_sigalg(x509: *const X509) -> *const X509_ALGOR;
16776}
16777unsafe extern "C" {
16778    pub fn X509_get0_signature(
16779        out_sig: *mut *const ASN1_BIT_STRING,
16780        out_alg: *mut *const X509_ALGOR,
16781        x509: *const X509,
16782    );
16783}
16784unsafe extern "C" {
16785    pub fn X509_get_signature_nid(x509: *const X509) -> ::core::ffi::c_int;
16786}
16787unsafe extern "C" {
16788    pub fn i2d_X509_tbs(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16789}
16790unsafe extern "C" {
16791    pub fn X509_verify(x509: *const X509, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
16792}
16793unsafe extern "C" {
16794    pub fn X509_get1_email(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
16795}
16796unsafe extern "C" {
16797    pub fn X509_get1_ocsp(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
16798}
16799unsafe extern "C" {
16800    pub fn X509_email_free(sk: *mut stack_st_OPENSSL_STRING);
16801}
16802unsafe extern "C" {
16803    pub fn X509_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
16804}
16805unsafe extern "C" {
16806    pub fn X509_new() -> *mut X509;
16807}
16808unsafe extern "C" {
16809    pub fn X509_set_version(x509: *mut X509, version: ::core::ffi::c_long) -> ::core::ffi::c_int;
16810}
16811unsafe extern "C" {
16812    pub fn X509_set_serialNumber(
16813        x509: *mut X509,
16814        serial: *const ASN1_INTEGER,
16815    ) -> ::core::ffi::c_int;
16816}
16817unsafe extern "C" {
16818    pub fn X509_set1_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
16819}
16820unsafe extern "C" {
16821    pub fn X509_set1_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
16822}
16823unsafe extern "C" {
16824    pub fn X509_getm_notBefore(x509: *mut X509) -> *mut ASN1_TIME;
16825}
16826unsafe extern "C" {
16827    pub fn X509_getm_notAfter(x: *mut X509) -> *mut ASN1_TIME;
16828}
16829unsafe extern "C" {
16830    pub fn X509_set_issuer_name(x509: *mut X509, name: *const X509_NAME) -> ::core::ffi::c_int;
16831}
16832unsafe extern "C" {
16833    pub fn X509_set_subject_name(x509: *mut X509, name: *const X509_NAME) -> ::core::ffi::c_int;
16834}
16835unsafe extern "C" {
16836    pub fn X509_set_pubkey(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
16837}
16838unsafe extern "C" {
16839    pub fn X509_delete_ext(x: *mut X509, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
16840}
16841unsafe extern "C" {
16842    pub fn X509_add_ext(
16843        x: *mut X509,
16844        ex: *const X509_EXTENSION,
16845        loc: ::core::ffi::c_int,
16846    ) -> ::core::ffi::c_int;
16847}
16848unsafe extern "C" {
16849    pub fn X509_add1_ext_i2d(
16850        x: *mut X509,
16851        nid: ::core::ffi::c_int,
16852        value: *mut ::core::ffi::c_void,
16853        crit: ::core::ffi::c_int,
16854        flags: ::core::ffi::c_ulong,
16855    ) -> ::core::ffi::c_int;
16856}
16857unsafe extern "C" {
16858    pub fn X509_sign(x509: *mut X509, pkey: *mut EVP_PKEY, md: *const EVP_MD)
16859        -> ::core::ffi::c_int;
16860}
16861unsafe extern "C" {
16862    pub fn X509_sign_ctx(x509: *mut X509, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
16863}
16864unsafe extern "C" {
16865    pub fn i2d_re_X509_tbs(x509: *mut X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16866}
16867unsafe extern "C" {
16868    pub fn X509_set1_signature_algo(x509: *mut X509, algo: *const X509_ALGOR)
16869        -> ::core::ffi::c_int;
16870}
16871unsafe extern "C" {
16872    pub fn X509_set1_signature_value(
16873        x509: *mut X509,
16874        sig: *const u8,
16875        sig_len: usize,
16876    ) -> ::core::ffi::c_int;
16877}
16878unsafe extern "C" {
16879    pub fn i2d_X509_AUX(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16880}
16881unsafe extern "C" {
16882    pub fn d2i_X509_AUX(
16883        x509: *mut *mut X509,
16884        inp: *mut *const u8,
16885        length: ::core::ffi::c_long,
16886    ) -> *mut X509;
16887}
16888unsafe extern "C" {
16889    pub fn X509_alias_set1(
16890        x509: *mut X509,
16891        name: *const u8,
16892        len: ossl_ssize_t,
16893    ) -> ::core::ffi::c_int;
16894}
16895unsafe extern "C" {
16896    pub fn X509_keyid_set1(x509: *mut X509, id: *const u8, len: ossl_ssize_t)
16897        -> ::core::ffi::c_int;
16898}
16899unsafe extern "C" {
16900    pub fn X509_alias_get0(x509: *const X509, out_len: *mut ::core::ffi::c_int) -> *const u8;
16901}
16902unsafe extern "C" {
16903    pub fn X509_keyid_get0(x509: *const X509, out_len: *mut ::core::ffi::c_int) -> *const u8;
16904}
16905unsafe extern "C" {
16906    pub fn X509_add1_trust_object(x509: *mut X509, obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
16907}
16908unsafe extern "C" {
16909    pub fn X509_add1_reject_object(x509: *mut X509, obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
16910}
16911unsafe extern "C" {
16912    pub fn X509_trust_clear(x509: *mut X509);
16913}
16914unsafe extern "C" {
16915    pub fn X509_reject_clear(x509: *mut X509);
16916}
16917pub type sk_X509_CRL_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_CRL)>;
16918pub type sk_X509_CRL_copy_func =
16919    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_CRL) -> *mut X509_CRL>;
16920pub type sk_X509_CRL_cmp_func = ::core::option::Option<
16921    unsafe extern "C" fn(
16922        arg1: *const *const X509_CRL,
16923        arg2: *const *const X509_CRL,
16924    ) -> ::core::ffi::c_int,
16925>;
16926pub type sk_X509_CRL_delete_if_func = ::core::option::Option<
16927    unsafe extern "C" fn(arg1: *mut X509_CRL, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
16928>;
16929unsafe extern "C" {
16930    #[link_name = "sk_X509_CRL_call_free_func__extern"]
16931    pub fn sk_X509_CRL_call_free_func(
16932        free_func: OPENSSL_sk_free_func,
16933        ptr: *mut ::core::ffi::c_void,
16934    );
16935}
16936unsafe extern "C" {
16937    #[link_name = "sk_X509_CRL_call_copy_func__extern"]
16938    pub fn sk_X509_CRL_call_copy_func(
16939        copy_func: OPENSSL_sk_copy_func,
16940        ptr: *const ::core::ffi::c_void,
16941    ) -> *mut ::core::ffi::c_void;
16942}
16943unsafe extern "C" {
16944    #[link_name = "sk_X509_CRL_call_cmp_func__extern"]
16945    pub fn sk_X509_CRL_call_cmp_func(
16946        cmp_func: OPENSSL_sk_cmp_func,
16947        a: *const ::core::ffi::c_void,
16948        b: *const ::core::ffi::c_void,
16949    ) -> ::core::ffi::c_int;
16950}
16951unsafe extern "C" {
16952    #[link_name = "sk_X509_CRL_call_delete_if_func__extern"]
16953    pub fn sk_X509_CRL_call_delete_if_func(
16954        func: OPENSSL_sk_delete_if_func,
16955        obj: *mut ::core::ffi::c_void,
16956        data: *mut ::core::ffi::c_void,
16957    ) -> ::core::ffi::c_int;
16958}
16959unsafe extern "C" {
16960    #[link_name = "sk_X509_CRL_new__extern"]
16961    pub fn sk_X509_CRL_new(comp: sk_X509_CRL_cmp_func) -> *mut stack_st_X509_CRL;
16962}
16963unsafe extern "C" {
16964    #[link_name = "sk_X509_CRL_new_null__extern"]
16965    pub fn sk_X509_CRL_new_null() -> *mut stack_st_X509_CRL;
16966}
16967unsafe extern "C" {
16968    #[link_name = "sk_X509_CRL_num__extern"]
16969    pub fn sk_X509_CRL_num(sk: *const stack_st_X509_CRL) -> usize;
16970}
16971unsafe extern "C" {
16972    #[link_name = "sk_X509_CRL_zero__extern"]
16973    pub fn sk_X509_CRL_zero(sk: *mut stack_st_X509_CRL);
16974}
16975unsafe extern "C" {
16976    #[link_name = "sk_X509_CRL_value__extern"]
16977    pub fn sk_X509_CRL_value(sk: *const stack_st_X509_CRL, i: usize) -> *mut X509_CRL;
16978}
16979unsafe extern "C" {
16980    #[link_name = "sk_X509_CRL_set__extern"]
16981    pub fn sk_X509_CRL_set(sk: *mut stack_st_X509_CRL, i: usize, p: *mut X509_CRL)
16982        -> *mut X509_CRL;
16983}
16984unsafe extern "C" {
16985    #[link_name = "sk_X509_CRL_free__extern"]
16986    pub fn sk_X509_CRL_free(sk: *mut stack_st_X509_CRL);
16987}
16988unsafe extern "C" {
16989    #[link_name = "sk_X509_CRL_pop_free__extern"]
16990    pub fn sk_X509_CRL_pop_free(sk: *mut stack_st_X509_CRL, free_func: sk_X509_CRL_free_func);
16991}
16992unsafe extern "C" {
16993    #[link_name = "sk_X509_CRL_insert__extern"]
16994    pub fn sk_X509_CRL_insert(sk: *mut stack_st_X509_CRL, p: *mut X509_CRL, where_: usize)
16995        -> usize;
16996}
16997unsafe extern "C" {
16998    #[link_name = "sk_X509_CRL_delete__extern"]
16999    pub fn sk_X509_CRL_delete(sk: *mut stack_st_X509_CRL, where_: usize) -> *mut X509_CRL;
17000}
17001unsafe extern "C" {
17002    #[link_name = "sk_X509_CRL_delete_ptr__extern"]
17003    pub fn sk_X509_CRL_delete_ptr(sk: *mut stack_st_X509_CRL, p: *const X509_CRL) -> *mut X509_CRL;
17004}
17005unsafe extern "C" {
17006    #[link_name = "sk_X509_CRL_delete_if__extern"]
17007    pub fn sk_X509_CRL_delete_if(
17008        sk: *mut stack_st_X509_CRL,
17009        func: sk_X509_CRL_delete_if_func,
17010        data: *mut ::core::ffi::c_void,
17011    );
17012}
17013unsafe extern "C" {
17014    #[link_name = "sk_X509_CRL_find__extern"]
17015    pub fn sk_X509_CRL_find(
17016        sk: *const stack_st_X509_CRL,
17017        out_index: *mut usize,
17018        p: *const X509_CRL,
17019    ) -> ::core::ffi::c_int;
17020}
17021unsafe extern "C" {
17022    #[link_name = "sk_X509_CRL_shift__extern"]
17023    pub fn sk_X509_CRL_shift(sk: *mut stack_st_X509_CRL) -> *mut X509_CRL;
17024}
17025unsafe extern "C" {
17026    #[link_name = "sk_X509_CRL_push__extern"]
17027    pub fn sk_X509_CRL_push(sk: *mut stack_st_X509_CRL, p: *mut X509_CRL) -> usize;
17028}
17029unsafe extern "C" {
17030    #[link_name = "sk_X509_CRL_pop__extern"]
17031    pub fn sk_X509_CRL_pop(sk: *mut stack_st_X509_CRL) -> *mut X509_CRL;
17032}
17033unsafe extern "C" {
17034    #[link_name = "sk_X509_CRL_dup__extern"]
17035    pub fn sk_X509_CRL_dup(sk: *const stack_st_X509_CRL) -> *mut stack_st_X509_CRL;
17036}
17037unsafe extern "C" {
17038    #[link_name = "sk_X509_CRL_sort__extern"]
17039    pub fn sk_X509_CRL_sort(sk: *mut stack_st_X509_CRL);
17040}
17041unsafe extern "C" {
17042    #[link_name = "sk_X509_CRL_sort_and_dedup__extern"]
17043    pub fn sk_X509_CRL_sort_and_dedup(sk: *mut stack_st_X509_CRL, free_func: sk_X509_CRL_free_func);
17044}
17045unsafe extern "C" {
17046    #[link_name = "sk_X509_CRL_is_sorted__extern"]
17047    pub fn sk_X509_CRL_is_sorted(sk: *const stack_st_X509_CRL) -> ::core::ffi::c_int;
17048}
17049unsafe extern "C" {
17050    #[link_name = "sk_X509_CRL_set_cmp_func__extern"]
17051    pub fn sk_X509_CRL_set_cmp_func(
17052        sk: *mut stack_st_X509_CRL,
17053        comp: sk_X509_CRL_cmp_func,
17054    ) -> sk_X509_CRL_cmp_func;
17055}
17056unsafe extern "C" {
17057    #[link_name = "sk_X509_CRL_deep_copy__extern"]
17058    pub fn sk_X509_CRL_deep_copy(
17059        sk: *const stack_st_X509_CRL,
17060        copy_func: sk_X509_CRL_copy_func,
17061        free_func: sk_X509_CRL_free_func,
17062    ) -> *mut stack_st_X509_CRL;
17063}
17064#[repr(C)]
17065#[derive(Debug)]
17066pub struct stack_st_X509_REVOKED {
17067    _unused: [u8; 0],
17068}
17069pub type sk_X509_REVOKED_free_func =
17070    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_REVOKED)>;
17071pub type sk_X509_REVOKED_copy_func =
17072    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_REVOKED) -> *mut X509_REVOKED>;
17073pub type sk_X509_REVOKED_cmp_func = ::core::option::Option<
17074    unsafe extern "C" fn(
17075        arg1: *const *const X509_REVOKED,
17076        arg2: *const *const X509_REVOKED,
17077    ) -> ::core::ffi::c_int,
17078>;
17079pub type sk_X509_REVOKED_delete_if_func = ::core::option::Option<
17080    unsafe extern "C" fn(
17081        arg1: *mut X509_REVOKED,
17082        arg2: *mut ::core::ffi::c_void,
17083    ) -> ::core::ffi::c_int,
17084>;
17085unsafe extern "C" {
17086    #[link_name = "sk_X509_REVOKED_call_free_func__extern"]
17087    pub fn sk_X509_REVOKED_call_free_func(
17088        free_func: OPENSSL_sk_free_func,
17089        ptr: *mut ::core::ffi::c_void,
17090    );
17091}
17092unsafe extern "C" {
17093    #[link_name = "sk_X509_REVOKED_call_copy_func__extern"]
17094    pub fn sk_X509_REVOKED_call_copy_func(
17095        copy_func: OPENSSL_sk_copy_func,
17096        ptr: *const ::core::ffi::c_void,
17097    ) -> *mut ::core::ffi::c_void;
17098}
17099unsafe extern "C" {
17100    #[link_name = "sk_X509_REVOKED_call_cmp_func__extern"]
17101    pub fn sk_X509_REVOKED_call_cmp_func(
17102        cmp_func: OPENSSL_sk_cmp_func,
17103        a: *const ::core::ffi::c_void,
17104        b: *const ::core::ffi::c_void,
17105    ) -> ::core::ffi::c_int;
17106}
17107unsafe extern "C" {
17108    #[link_name = "sk_X509_REVOKED_call_delete_if_func__extern"]
17109    pub fn sk_X509_REVOKED_call_delete_if_func(
17110        func: OPENSSL_sk_delete_if_func,
17111        obj: *mut ::core::ffi::c_void,
17112        data: *mut ::core::ffi::c_void,
17113    ) -> ::core::ffi::c_int;
17114}
17115unsafe extern "C" {
17116    #[link_name = "sk_X509_REVOKED_new__extern"]
17117    pub fn sk_X509_REVOKED_new(comp: sk_X509_REVOKED_cmp_func) -> *mut stack_st_X509_REVOKED;
17118}
17119unsafe extern "C" {
17120    #[link_name = "sk_X509_REVOKED_new_null__extern"]
17121    pub fn sk_X509_REVOKED_new_null() -> *mut stack_st_X509_REVOKED;
17122}
17123unsafe extern "C" {
17124    #[link_name = "sk_X509_REVOKED_num__extern"]
17125    pub fn sk_X509_REVOKED_num(sk: *const stack_st_X509_REVOKED) -> usize;
17126}
17127unsafe extern "C" {
17128    #[link_name = "sk_X509_REVOKED_zero__extern"]
17129    pub fn sk_X509_REVOKED_zero(sk: *mut stack_st_X509_REVOKED);
17130}
17131unsafe extern "C" {
17132    #[link_name = "sk_X509_REVOKED_value__extern"]
17133    pub fn sk_X509_REVOKED_value(sk: *const stack_st_X509_REVOKED, i: usize) -> *mut X509_REVOKED;
17134}
17135unsafe extern "C" {
17136    #[link_name = "sk_X509_REVOKED_set__extern"]
17137    pub fn sk_X509_REVOKED_set(
17138        sk: *mut stack_st_X509_REVOKED,
17139        i: usize,
17140        p: *mut X509_REVOKED,
17141    ) -> *mut X509_REVOKED;
17142}
17143unsafe extern "C" {
17144    #[link_name = "sk_X509_REVOKED_free__extern"]
17145    pub fn sk_X509_REVOKED_free(sk: *mut stack_st_X509_REVOKED);
17146}
17147unsafe extern "C" {
17148    #[link_name = "sk_X509_REVOKED_pop_free__extern"]
17149    pub fn sk_X509_REVOKED_pop_free(
17150        sk: *mut stack_st_X509_REVOKED,
17151        free_func: sk_X509_REVOKED_free_func,
17152    );
17153}
17154unsafe extern "C" {
17155    #[link_name = "sk_X509_REVOKED_insert__extern"]
17156    pub fn sk_X509_REVOKED_insert(
17157        sk: *mut stack_st_X509_REVOKED,
17158        p: *mut X509_REVOKED,
17159        where_: usize,
17160    ) -> usize;
17161}
17162unsafe extern "C" {
17163    #[link_name = "sk_X509_REVOKED_delete__extern"]
17164    pub fn sk_X509_REVOKED_delete(
17165        sk: *mut stack_st_X509_REVOKED,
17166        where_: usize,
17167    ) -> *mut X509_REVOKED;
17168}
17169unsafe extern "C" {
17170    #[link_name = "sk_X509_REVOKED_delete_ptr__extern"]
17171    pub fn sk_X509_REVOKED_delete_ptr(
17172        sk: *mut stack_st_X509_REVOKED,
17173        p: *const X509_REVOKED,
17174    ) -> *mut X509_REVOKED;
17175}
17176unsafe extern "C" {
17177    #[link_name = "sk_X509_REVOKED_delete_if__extern"]
17178    pub fn sk_X509_REVOKED_delete_if(
17179        sk: *mut stack_st_X509_REVOKED,
17180        func: sk_X509_REVOKED_delete_if_func,
17181        data: *mut ::core::ffi::c_void,
17182    );
17183}
17184unsafe extern "C" {
17185    #[link_name = "sk_X509_REVOKED_find__extern"]
17186    pub fn sk_X509_REVOKED_find(
17187        sk: *const stack_st_X509_REVOKED,
17188        out_index: *mut usize,
17189        p: *const X509_REVOKED,
17190    ) -> ::core::ffi::c_int;
17191}
17192unsafe extern "C" {
17193    #[link_name = "sk_X509_REVOKED_shift__extern"]
17194    pub fn sk_X509_REVOKED_shift(sk: *mut stack_st_X509_REVOKED) -> *mut X509_REVOKED;
17195}
17196unsafe extern "C" {
17197    #[link_name = "sk_X509_REVOKED_push__extern"]
17198    pub fn sk_X509_REVOKED_push(sk: *mut stack_st_X509_REVOKED, p: *mut X509_REVOKED) -> usize;
17199}
17200unsafe extern "C" {
17201    #[link_name = "sk_X509_REVOKED_pop__extern"]
17202    pub fn sk_X509_REVOKED_pop(sk: *mut stack_st_X509_REVOKED) -> *mut X509_REVOKED;
17203}
17204unsafe extern "C" {
17205    #[link_name = "sk_X509_REVOKED_dup__extern"]
17206    pub fn sk_X509_REVOKED_dup(sk: *const stack_st_X509_REVOKED) -> *mut stack_st_X509_REVOKED;
17207}
17208unsafe extern "C" {
17209    #[link_name = "sk_X509_REVOKED_sort__extern"]
17210    pub fn sk_X509_REVOKED_sort(sk: *mut stack_st_X509_REVOKED);
17211}
17212unsafe extern "C" {
17213    #[link_name = "sk_X509_REVOKED_sort_and_dedup__extern"]
17214    pub fn sk_X509_REVOKED_sort_and_dedup(
17215        sk: *mut stack_st_X509_REVOKED,
17216        free_func: sk_X509_REVOKED_free_func,
17217    );
17218}
17219unsafe extern "C" {
17220    #[link_name = "sk_X509_REVOKED_is_sorted__extern"]
17221    pub fn sk_X509_REVOKED_is_sorted(sk: *const stack_st_X509_REVOKED) -> ::core::ffi::c_int;
17222}
17223unsafe extern "C" {
17224    #[link_name = "sk_X509_REVOKED_set_cmp_func__extern"]
17225    pub fn sk_X509_REVOKED_set_cmp_func(
17226        sk: *mut stack_st_X509_REVOKED,
17227        comp: sk_X509_REVOKED_cmp_func,
17228    ) -> sk_X509_REVOKED_cmp_func;
17229}
17230unsafe extern "C" {
17231    #[link_name = "sk_X509_REVOKED_deep_copy__extern"]
17232    pub fn sk_X509_REVOKED_deep_copy(
17233        sk: *const stack_st_X509_REVOKED,
17234        copy_func: sk_X509_REVOKED_copy_func,
17235        free_func: sk_X509_REVOKED_free_func,
17236    ) -> *mut stack_st_X509_REVOKED;
17237}
17238unsafe extern "C" {
17239    pub fn X509_CRL_up_ref(crl: *mut X509_CRL) -> ::core::ffi::c_int;
17240}
17241unsafe extern "C" {
17242    pub fn X509_CRL_dup(crl: *const X509_CRL) -> *mut X509_CRL;
17243}
17244unsafe extern "C" {
17245    pub fn X509_CRL_free(crl: *mut X509_CRL);
17246}
17247unsafe extern "C" {
17248    pub fn d2i_X509_CRL(
17249        out: *mut *mut X509_CRL,
17250        inp: *mut *const u8,
17251        len: ::core::ffi::c_long,
17252    ) -> *mut X509_CRL;
17253}
17254unsafe extern "C" {
17255    pub fn i2d_X509_CRL(crl: *const X509_CRL, outp: *mut *mut u8) -> ::core::ffi::c_int;
17256}
17257unsafe extern "C" {
17258    pub fn X509_CRL_match(a: *const X509_CRL, b: *const X509_CRL) -> ::core::ffi::c_int;
17259}
17260unsafe extern "C" {
17261    pub fn X509_CRL_get_version(crl: *const X509_CRL) -> ::core::ffi::c_long;
17262}
17263unsafe extern "C" {
17264    pub fn X509_CRL_get0_lastUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
17265}
17266unsafe extern "C" {
17267    pub fn X509_CRL_get0_nextUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
17268}
17269unsafe extern "C" {
17270    pub fn X509_CRL_get_issuer(crl: *const X509_CRL) -> *mut X509_NAME;
17271}
17272unsafe extern "C" {
17273    pub fn X509_CRL_get0_by_serial(
17274        crl: *mut X509_CRL,
17275        out: *mut *mut X509_REVOKED,
17276        serial: *const ASN1_INTEGER,
17277    ) -> ::core::ffi::c_int;
17278}
17279unsafe extern "C" {
17280    pub fn X509_CRL_get0_by_cert(
17281        crl: *mut X509_CRL,
17282        out: *mut *mut X509_REVOKED,
17283        x509: *const X509,
17284    ) -> ::core::ffi::c_int;
17285}
17286unsafe extern "C" {
17287    pub fn X509_CRL_get_REVOKED(crl: *mut X509_CRL) -> *mut stack_st_X509_REVOKED;
17288}
17289unsafe extern "C" {
17290    pub fn X509_CRL_get0_extensions(crl: *const X509_CRL) -> *const stack_st_X509_EXTENSION;
17291}
17292unsafe extern "C" {
17293    pub fn X509_CRL_get_ext_count(x: *const X509_CRL) -> ::core::ffi::c_int;
17294}
17295unsafe extern "C" {
17296    pub fn X509_CRL_get_ext_by_NID(
17297        x: *const X509_CRL,
17298        nid: ::core::ffi::c_int,
17299        lastpos: ::core::ffi::c_int,
17300    ) -> ::core::ffi::c_int;
17301}
17302unsafe extern "C" {
17303    pub fn X509_CRL_get_ext_by_OBJ(
17304        x: *const X509_CRL,
17305        obj: *const ASN1_OBJECT,
17306        lastpos: ::core::ffi::c_int,
17307    ) -> ::core::ffi::c_int;
17308}
17309unsafe extern "C" {
17310    pub fn X509_CRL_get_ext_by_critical(
17311        x: *const X509_CRL,
17312        crit: ::core::ffi::c_int,
17313        lastpos: ::core::ffi::c_int,
17314    ) -> ::core::ffi::c_int;
17315}
17316unsafe extern "C" {
17317    pub fn X509_CRL_get_ext(x: *const X509_CRL, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
17318}
17319unsafe extern "C" {
17320    pub fn X509_CRL_get_ext_d2i(
17321        crl: *const X509_CRL,
17322        nid: ::core::ffi::c_int,
17323        out_critical: *mut ::core::ffi::c_int,
17324        out_idx: *mut ::core::ffi::c_int,
17325    ) -> *mut ::core::ffi::c_void;
17326}
17327unsafe extern "C" {
17328    pub fn X509_CRL_get0_signature(
17329        crl: *const X509_CRL,
17330        out_sig: *mut *const ASN1_BIT_STRING,
17331        out_alg: *mut *const X509_ALGOR,
17332    );
17333}
17334unsafe extern "C" {
17335    pub fn X509_CRL_get_signature_nid(crl: *const X509_CRL) -> ::core::ffi::c_int;
17336}
17337unsafe extern "C" {
17338    pub fn i2d_X509_CRL_tbs(
17339        crl: *const X509_CRL,
17340        outp: *mut *mut ::core::ffi::c_uchar,
17341    ) -> ::core::ffi::c_int;
17342}
17343unsafe extern "C" {
17344    pub fn X509_CRL_verify(crl: *const X509_CRL, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17345}
17346unsafe extern "C" {
17347    pub fn X509_CRL_new() -> *mut X509_CRL;
17348}
17349unsafe extern "C" {
17350    pub fn X509_CRL_set_version(
17351        crl: *mut X509_CRL,
17352        version: ::core::ffi::c_long,
17353    ) -> ::core::ffi::c_int;
17354}
17355unsafe extern "C" {
17356    pub fn X509_CRL_set_issuer_name(
17357        crl: *mut X509_CRL,
17358        name: *const X509_NAME,
17359    ) -> ::core::ffi::c_int;
17360}
17361unsafe extern "C" {
17362    pub fn X509_CRL_set1_lastUpdate(crl: *mut X509_CRL, tm: *const ASN1_TIME)
17363        -> ::core::ffi::c_int;
17364}
17365unsafe extern "C" {
17366    pub fn X509_CRL_set1_nextUpdate(crl: *mut X509_CRL, tm: *const ASN1_TIME)
17367        -> ::core::ffi::c_int;
17368}
17369unsafe extern "C" {
17370    pub fn X509_CRL_add0_revoked(crl: *mut X509_CRL, rev: *mut X509_REVOKED) -> ::core::ffi::c_int;
17371}
17372unsafe extern "C" {
17373    pub fn X509_CRL_sort(crl: *mut X509_CRL) -> ::core::ffi::c_int;
17374}
17375unsafe extern "C" {
17376    pub fn X509_CRL_delete_ext(x: *mut X509_CRL, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
17377}
17378unsafe extern "C" {
17379    pub fn X509_CRL_add_ext(
17380        x: *mut X509_CRL,
17381        ex: *const X509_EXTENSION,
17382        loc: ::core::ffi::c_int,
17383    ) -> ::core::ffi::c_int;
17384}
17385unsafe extern "C" {
17386    pub fn X509_CRL_add1_ext_i2d(
17387        x: *mut X509_CRL,
17388        nid: ::core::ffi::c_int,
17389        value: *mut ::core::ffi::c_void,
17390        crit: ::core::ffi::c_int,
17391        flags: ::core::ffi::c_ulong,
17392    ) -> ::core::ffi::c_int;
17393}
17394unsafe extern "C" {
17395    pub fn X509_CRL_sign(
17396        crl: *mut X509_CRL,
17397        pkey: *mut EVP_PKEY,
17398        md: *const EVP_MD,
17399    ) -> ::core::ffi::c_int;
17400}
17401unsafe extern "C" {
17402    pub fn X509_CRL_sign_ctx(crl: *mut X509_CRL, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
17403}
17404unsafe extern "C" {
17405    pub fn i2d_re_X509_CRL_tbs(
17406        crl: *mut X509_CRL,
17407        outp: *mut *mut ::core::ffi::c_uchar,
17408    ) -> ::core::ffi::c_int;
17409}
17410unsafe extern "C" {
17411    pub fn X509_CRL_set1_signature_algo(
17412        crl: *mut X509_CRL,
17413        algo: *const X509_ALGOR,
17414    ) -> ::core::ffi::c_int;
17415}
17416unsafe extern "C" {
17417    pub fn X509_CRL_set1_signature_value(
17418        crl: *mut X509_CRL,
17419        sig: *const u8,
17420        sig_len: usize,
17421    ) -> ::core::ffi::c_int;
17422}
17423unsafe extern "C" {
17424    pub fn X509_REVOKED_new() -> *mut X509_REVOKED;
17425}
17426unsafe extern "C" {
17427    pub fn X509_REVOKED_free(rev: *mut X509_REVOKED);
17428}
17429unsafe extern "C" {
17430    pub fn d2i_X509_REVOKED(
17431        out: *mut *mut X509_REVOKED,
17432        inp: *mut *const u8,
17433        len: ::core::ffi::c_long,
17434    ) -> *mut X509_REVOKED;
17435}
17436unsafe extern "C" {
17437    pub fn i2d_X509_REVOKED(alg: *const X509_REVOKED, outp: *mut *mut u8) -> ::core::ffi::c_int;
17438}
17439unsafe extern "C" {
17440    pub fn X509_REVOKED_dup(rev: *const X509_REVOKED) -> *mut X509_REVOKED;
17441}
17442unsafe extern "C" {
17443    pub fn X509_REVOKED_get0_serialNumber(revoked: *const X509_REVOKED) -> *const ASN1_INTEGER;
17444}
17445unsafe extern "C" {
17446    pub fn X509_REVOKED_set_serialNumber(
17447        revoked: *mut X509_REVOKED,
17448        serial: *const ASN1_INTEGER,
17449    ) -> ::core::ffi::c_int;
17450}
17451unsafe extern "C" {
17452    pub fn X509_REVOKED_get0_revocationDate(revoked: *const X509_REVOKED) -> *const ASN1_TIME;
17453}
17454unsafe extern "C" {
17455    pub fn X509_REVOKED_set_revocationDate(
17456        revoked: *mut X509_REVOKED,
17457        tm: *const ASN1_TIME,
17458    ) -> ::core::ffi::c_int;
17459}
17460unsafe extern "C" {
17461    pub fn X509_REVOKED_get0_extensions(r: *const X509_REVOKED) -> *const stack_st_X509_EXTENSION;
17462}
17463unsafe extern "C" {
17464    pub fn X509_REVOKED_get_ext_count(x: *const X509_REVOKED) -> ::core::ffi::c_int;
17465}
17466unsafe extern "C" {
17467    pub fn X509_REVOKED_get_ext_by_NID(
17468        x: *const X509_REVOKED,
17469        nid: ::core::ffi::c_int,
17470        lastpos: ::core::ffi::c_int,
17471    ) -> ::core::ffi::c_int;
17472}
17473unsafe extern "C" {
17474    pub fn X509_REVOKED_get_ext_by_OBJ(
17475        x: *const X509_REVOKED,
17476        obj: *const ASN1_OBJECT,
17477        lastpos: ::core::ffi::c_int,
17478    ) -> ::core::ffi::c_int;
17479}
17480unsafe extern "C" {
17481    pub fn X509_REVOKED_get_ext_by_critical(
17482        x: *const X509_REVOKED,
17483        crit: ::core::ffi::c_int,
17484        lastpos: ::core::ffi::c_int,
17485    ) -> ::core::ffi::c_int;
17486}
17487unsafe extern "C" {
17488    pub fn X509_REVOKED_get_ext(
17489        x: *const X509_REVOKED,
17490        loc: ::core::ffi::c_int,
17491    ) -> *mut X509_EXTENSION;
17492}
17493unsafe extern "C" {
17494    pub fn X509_REVOKED_delete_ext(
17495        x: *mut X509_REVOKED,
17496        loc: ::core::ffi::c_int,
17497    ) -> *mut X509_EXTENSION;
17498}
17499unsafe extern "C" {
17500    pub fn X509_REVOKED_add_ext(
17501        x: *mut X509_REVOKED,
17502        ex: *const X509_EXTENSION,
17503        loc: ::core::ffi::c_int,
17504    ) -> ::core::ffi::c_int;
17505}
17506unsafe extern "C" {
17507    pub fn X509_REVOKED_get_ext_d2i(
17508        revoked: *const X509_REVOKED,
17509        nid: ::core::ffi::c_int,
17510        out_critical: *mut ::core::ffi::c_int,
17511        out_idx: *mut ::core::ffi::c_int,
17512    ) -> *mut ::core::ffi::c_void;
17513}
17514unsafe extern "C" {
17515    pub fn X509_REVOKED_add1_ext_i2d(
17516        x: *mut X509_REVOKED,
17517        nid: ::core::ffi::c_int,
17518        value: *mut ::core::ffi::c_void,
17519        crit: ::core::ffi::c_int,
17520        flags: ::core::ffi::c_ulong,
17521    ) -> ::core::ffi::c_int;
17522}
17523unsafe extern "C" {
17524    pub fn X509_REQ_dup(req: *const X509_REQ) -> *mut X509_REQ;
17525}
17526unsafe extern "C" {
17527    pub fn X509_REQ_free(req: *mut X509_REQ);
17528}
17529unsafe extern "C" {
17530    pub fn d2i_X509_REQ(
17531        out: *mut *mut X509_REQ,
17532        inp: *mut *const u8,
17533        len: ::core::ffi::c_long,
17534    ) -> *mut X509_REQ;
17535}
17536unsafe extern "C" {
17537    pub fn i2d_X509_REQ(req: *const X509_REQ, outp: *mut *mut u8) -> ::core::ffi::c_int;
17538}
17539unsafe extern "C" {
17540    pub fn X509_REQ_get_version(req: *const X509_REQ) -> ::core::ffi::c_long;
17541}
17542unsafe extern "C" {
17543    pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
17544}
17545unsafe extern "C" {
17546    pub fn X509_REQ_get0_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
17547}
17548unsafe extern "C" {
17549    pub fn X509_REQ_get_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
17550}
17551unsafe extern "C" {
17552    pub fn X509_REQ_check_private_key(
17553        req: *const X509_REQ,
17554        pkey: *const EVP_PKEY,
17555    ) -> ::core::ffi::c_int;
17556}
17557unsafe extern "C" {
17558    pub fn X509_REQ_get_attr_count(req: *const X509_REQ) -> ::core::ffi::c_int;
17559}
17560unsafe extern "C" {
17561    pub fn X509_REQ_get_attr(req: *const X509_REQ, loc: ::core::ffi::c_int) -> *mut X509_ATTRIBUTE;
17562}
17563unsafe extern "C" {
17564    pub fn X509_REQ_get_attr_by_NID(
17565        req: *const X509_REQ,
17566        nid: ::core::ffi::c_int,
17567        lastpos: ::core::ffi::c_int,
17568    ) -> ::core::ffi::c_int;
17569}
17570unsafe extern "C" {
17571    pub fn X509_REQ_get_attr_by_OBJ(
17572        req: *const X509_REQ,
17573        obj: *const ASN1_OBJECT,
17574        lastpos: ::core::ffi::c_int,
17575    ) -> ::core::ffi::c_int;
17576}
17577unsafe extern "C" {
17578    pub fn X509_REQ_extension_nid(nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
17579}
17580unsafe extern "C" {
17581    pub fn X509_REQ_get_extensions(req: *const X509_REQ) -> *mut stack_st_X509_EXTENSION;
17582}
17583unsafe extern "C" {
17584    pub fn X509_REQ_get0_signature(
17585        req: *const X509_REQ,
17586        out_sig: *mut *const ASN1_BIT_STRING,
17587        out_alg: *mut *const X509_ALGOR,
17588    );
17589}
17590unsafe extern "C" {
17591    pub fn X509_REQ_get_signature_nid(req: *const X509_REQ) -> ::core::ffi::c_int;
17592}
17593unsafe extern "C" {
17594    pub fn X509_REQ_verify(req: *const X509_REQ, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17595}
17596unsafe extern "C" {
17597    pub fn X509_REQ_get1_email(req: *const X509_REQ) -> *mut stack_st_OPENSSL_STRING;
17598}
17599unsafe extern "C" {
17600    pub fn X509_REQ_new() -> *mut X509_REQ;
17601}
17602unsafe extern "C" {
17603    pub fn X509_REQ_set_version(
17604        req: *mut X509_REQ,
17605        version: ::core::ffi::c_long,
17606    ) -> ::core::ffi::c_int;
17607}
17608unsafe extern "C" {
17609    pub fn X509_REQ_set_subject_name(
17610        req: *mut X509_REQ,
17611        name: *mut X509_NAME,
17612    ) -> ::core::ffi::c_int;
17613}
17614unsafe extern "C" {
17615    pub fn X509_REQ_set_pubkey(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17616}
17617unsafe extern "C" {
17618    pub fn X509_REQ_delete_attr(req: *mut X509_REQ, loc: ::core::ffi::c_int)
17619        -> *mut X509_ATTRIBUTE;
17620}
17621unsafe extern "C" {
17622    pub fn X509_REQ_add1_attr(
17623        req: *mut X509_REQ,
17624        attr: *const X509_ATTRIBUTE,
17625    ) -> ::core::ffi::c_int;
17626}
17627unsafe extern "C" {
17628    pub fn X509_REQ_add1_attr_by_OBJ(
17629        req: *mut X509_REQ,
17630        obj: *const ASN1_OBJECT,
17631        attrtype: ::core::ffi::c_int,
17632        data: *const ::core::ffi::c_uchar,
17633        len: ::core::ffi::c_int,
17634    ) -> ::core::ffi::c_int;
17635}
17636unsafe extern "C" {
17637    pub fn X509_REQ_add1_attr_by_NID(
17638        req: *mut X509_REQ,
17639        nid: ::core::ffi::c_int,
17640        attrtype: ::core::ffi::c_int,
17641        data: *const ::core::ffi::c_uchar,
17642        len: ::core::ffi::c_int,
17643    ) -> ::core::ffi::c_int;
17644}
17645unsafe extern "C" {
17646    pub fn X509_REQ_add1_attr_by_txt(
17647        req: *mut X509_REQ,
17648        attrname: *const ::core::ffi::c_char,
17649        attrtype: ::core::ffi::c_int,
17650        data: *const ::core::ffi::c_uchar,
17651        len: ::core::ffi::c_int,
17652    ) -> ::core::ffi::c_int;
17653}
17654unsafe extern "C" {
17655    pub fn X509_REQ_add_extensions_nid(
17656        req: *mut X509_REQ,
17657        exts: *const stack_st_X509_EXTENSION,
17658        nid: ::core::ffi::c_int,
17659    ) -> ::core::ffi::c_int;
17660}
17661unsafe extern "C" {
17662    pub fn X509_REQ_add_extensions(
17663        req: *mut X509_REQ,
17664        exts: *const stack_st_X509_EXTENSION,
17665    ) -> ::core::ffi::c_int;
17666}
17667unsafe extern "C" {
17668    pub fn X509_REQ_sign(
17669        req: *mut X509_REQ,
17670        pkey: *mut EVP_PKEY,
17671        md: *const EVP_MD,
17672    ) -> ::core::ffi::c_int;
17673}
17674unsafe extern "C" {
17675    pub fn X509_REQ_sign_ctx(req: *mut X509_REQ, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
17676}
17677unsafe extern "C" {
17678    pub fn i2d_re_X509_REQ_tbs(req: *mut X509_REQ, outp: *mut *mut u8) -> ::core::ffi::c_int;
17679}
17680unsafe extern "C" {
17681    pub fn X509_REQ_set1_signature_algo(
17682        req: *mut X509_REQ,
17683        algo: *const X509_ALGOR,
17684    ) -> ::core::ffi::c_int;
17685}
17686unsafe extern "C" {
17687    pub fn X509_REQ_set1_signature_value(
17688        req: *mut X509_REQ,
17689        sig: *const u8,
17690        sig_len: usize,
17691    ) -> ::core::ffi::c_int;
17692}
17693#[repr(C)]
17694#[derive(Debug)]
17695pub struct stack_st_X509_NAME_ENTRY {
17696    _unused: [u8; 0],
17697}
17698pub type sk_X509_NAME_ENTRY_free_func =
17699    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME_ENTRY)>;
17700pub type sk_X509_NAME_ENTRY_copy_func = ::core::option::Option<
17701    unsafe extern "C" fn(arg1: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY,
17702>;
17703pub type sk_X509_NAME_ENTRY_cmp_func = ::core::option::Option<
17704    unsafe extern "C" fn(
17705        arg1: *const *const X509_NAME_ENTRY,
17706        arg2: *const *const X509_NAME_ENTRY,
17707    ) -> ::core::ffi::c_int,
17708>;
17709pub type sk_X509_NAME_ENTRY_delete_if_func = ::core::option::Option<
17710    unsafe extern "C" fn(
17711        arg1: *mut X509_NAME_ENTRY,
17712        arg2: *mut ::core::ffi::c_void,
17713    ) -> ::core::ffi::c_int,
17714>;
17715unsafe extern "C" {
17716    #[link_name = "sk_X509_NAME_ENTRY_call_free_func__extern"]
17717    pub fn sk_X509_NAME_ENTRY_call_free_func(
17718        free_func: OPENSSL_sk_free_func,
17719        ptr: *mut ::core::ffi::c_void,
17720    );
17721}
17722unsafe extern "C" {
17723    #[link_name = "sk_X509_NAME_ENTRY_call_copy_func__extern"]
17724    pub fn sk_X509_NAME_ENTRY_call_copy_func(
17725        copy_func: OPENSSL_sk_copy_func,
17726        ptr: *const ::core::ffi::c_void,
17727    ) -> *mut ::core::ffi::c_void;
17728}
17729unsafe extern "C" {
17730    #[link_name = "sk_X509_NAME_ENTRY_call_cmp_func__extern"]
17731    pub fn sk_X509_NAME_ENTRY_call_cmp_func(
17732        cmp_func: OPENSSL_sk_cmp_func,
17733        a: *const ::core::ffi::c_void,
17734        b: *const ::core::ffi::c_void,
17735    ) -> ::core::ffi::c_int;
17736}
17737unsafe extern "C" {
17738    #[link_name = "sk_X509_NAME_ENTRY_call_delete_if_func__extern"]
17739    pub fn sk_X509_NAME_ENTRY_call_delete_if_func(
17740        func: OPENSSL_sk_delete_if_func,
17741        obj: *mut ::core::ffi::c_void,
17742        data: *mut ::core::ffi::c_void,
17743    ) -> ::core::ffi::c_int;
17744}
17745unsafe extern "C" {
17746    #[link_name = "sk_X509_NAME_ENTRY_new__extern"]
17747    pub fn sk_X509_NAME_ENTRY_new(
17748        comp: sk_X509_NAME_ENTRY_cmp_func,
17749    ) -> *mut stack_st_X509_NAME_ENTRY;
17750}
17751unsafe extern "C" {
17752    #[link_name = "sk_X509_NAME_ENTRY_new_null__extern"]
17753    pub fn sk_X509_NAME_ENTRY_new_null() -> *mut stack_st_X509_NAME_ENTRY;
17754}
17755unsafe extern "C" {
17756    #[link_name = "sk_X509_NAME_ENTRY_num__extern"]
17757    pub fn sk_X509_NAME_ENTRY_num(sk: *const stack_st_X509_NAME_ENTRY) -> usize;
17758}
17759unsafe extern "C" {
17760    #[link_name = "sk_X509_NAME_ENTRY_zero__extern"]
17761    pub fn sk_X509_NAME_ENTRY_zero(sk: *mut stack_st_X509_NAME_ENTRY);
17762}
17763unsafe extern "C" {
17764    #[link_name = "sk_X509_NAME_ENTRY_value__extern"]
17765    pub fn sk_X509_NAME_ENTRY_value(
17766        sk: *const stack_st_X509_NAME_ENTRY,
17767        i: usize,
17768    ) -> *mut X509_NAME_ENTRY;
17769}
17770unsafe extern "C" {
17771    #[link_name = "sk_X509_NAME_ENTRY_set__extern"]
17772    pub fn sk_X509_NAME_ENTRY_set(
17773        sk: *mut stack_st_X509_NAME_ENTRY,
17774        i: usize,
17775        p: *mut X509_NAME_ENTRY,
17776    ) -> *mut X509_NAME_ENTRY;
17777}
17778unsafe extern "C" {
17779    #[link_name = "sk_X509_NAME_ENTRY_free__extern"]
17780    pub fn sk_X509_NAME_ENTRY_free(sk: *mut stack_st_X509_NAME_ENTRY);
17781}
17782unsafe extern "C" {
17783    #[link_name = "sk_X509_NAME_ENTRY_pop_free__extern"]
17784    pub fn sk_X509_NAME_ENTRY_pop_free(
17785        sk: *mut stack_st_X509_NAME_ENTRY,
17786        free_func: sk_X509_NAME_ENTRY_free_func,
17787    );
17788}
17789unsafe extern "C" {
17790    #[link_name = "sk_X509_NAME_ENTRY_insert__extern"]
17791    pub fn sk_X509_NAME_ENTRY_insert(
17792        sk: *mut stack_st_X509_NAME_ENTRY,
17793        p: *mut X509_NAME_ENTRY,
17794        where_: usize,
17795    ) -> usize;
17796}
17797unsafe extern "C" {
17798    #[link_name = "sk_X509_NAME_ENTRY_delete__extern"]
17799    pub fn sk_X509_NAME_ENTRY_delete(
17800        sk: *mut stack_st_X509_NAME_ENTRY,
17801        where_: usize,
17802    ) -> *mut X509_NAME_ENTRY;
17803}
17804unsafe extern "C" {
17805    #[link_name = "sk_X509_NAME_ENTRY_delete_ptr__extern"]
17806    pub fn sk_X509_NAME_ENTRY_delete_ptr(
17807        sk: *mut stack_st_X509_NAME_ENTRY,
17808        p: *const X509_NAME_ENTRY,
17809    ) -> *mut X509_NAME_ENTRY;
17810}
17811unsafe extern "C" {
17812    #[link_name = "sk_X509_NAME_ENTRY_delete_if__extern"]
17813    pub fn sk_X509_NAME_ENTRY_delete_if(
17814        sk: *mut stack_st_X509_NAME_ENTRY,
17815        func: sk_X509_NAME_ENTRY_delete_if_func,
17816        data: *mut ::core::ffi::c_void,
17817    );
17818}
17819unsafe extern "C" {
17820    #[link_name = "sk_X509_NAME_ENTRY_find__extern"]
17821    pub fn sk_X509_NAME_ENTRY_find(
17822        sk: *const stack_st_X509_NAME_ENTRY,
17823        out_index: *mut usize,
17824        p: *const X509_NAME_ENTRY,
17825    ) -> ::core::ffi::c_int;
17826}
17827unsafe extern "C" {
17828    #[link_name = "sk_X509_NAME_ENTRY_shift__extern"]
17829    pub fn sk_X509_NAME_ENTRY_shift(sk: *mut stack_st_X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
17830}
17831unsafe extern "C" {
17832    #[link_name = "sk_X509_NAME_ENTRY_push__extern"]
17833    pub fn sk_X509_NAME_ENTRY_push(
17834        sk: *mut stack_st_X509_NAME_ENTRY,
17835        p: *mut X509_NAME_ENTRY,
17836    ) -> usize;
17837}
17838unsafe extern "C" {
17839    #[link_name = "sk_X509_NAME_ENTRY_pop__extern"]
17840    pub fn sk_X509_NAME_ENTRY_pop(sk: *mut stack_st_X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
17841}
17842unsafe extern "C" {
17843    #[link_name = "sk_X509_NAME_ENTRY_dup__extern"]
17844    pub fn sk_X509_NAME_ENTRY_dup(
17845        sk: *const stack_st_X509_NAME_ENTRY,
17846    ) -> *mut stack_st_X509_NAME_ENTRY;
17847}
17848unsafe extern "C" {
17849    #[link_name = "sk_X509_NAME_ENTRY_sort__extern"]
17850    pub fn sk_X509_NAME_ENTRY_sort(sk: *mut stack_st_X509_NAME_ENTRY);
17851}
17852unsafe extern "C" {
17853    #[link_name = "sk_X509_NAME_ENTRY_sort_and_dedup__extern"]
17854    pub fn sk_X509_NAME_ENTRY_sort_and_dedup(
17855        sk: *mut stack_st_X509_NAME_ENTRY,
17856        free_func: sk_X509_NAME_ENTRY_free_func,
17857    );
17858}
17859unsafe extern "C" {
17860    #[link_name = "sk_X509_NAME_ENTRY_is_sorted__extern"]
17861    pub fn sk_X509_NAME_ENTRY_is_sorted(sk: *const stack_st_X509_NAME_ENTRY) -> ::core::ffi::c_int;
17862}
17863unsafe extern "C" {
17864    #[link_name = "sk_X509_NAME_ENTRY_set_cmp_func__extern"]
17865    pub fn sk_X509_NAME_ENTRY_set_cmp_func(
17866        sk: *mut stack_st_X509_NAME_ENTRY,
17867        comp: sk_X509_NAME_ENTRY_cmp_func,
17868    ) -> sk_X509_NAME_ENTRY_cmp_func;
17869}
17870unsafe extern "C" {
17871    #[link_name = "sk_X509_NAME_ENTRY_deep_copy__extern"]
17872    pub fn sk_X509_NAME_ENTRY_deep_copy(
17873        sk: *const stack_st_X509_NAME_ENTRY,
17874        copy_func: sk_X509_NAME_ENTRY_copy_func,
17875        free_func: sk_X509_NAME_ENTRY_free_func,
17876    ) -> *mut stack_st_X509_NAME_ENTRY;
17877}
17878#[repr(C)]
17879#[derive(Debug)]
17880pub struct stack_st_X509_NAME {
17881    _unused: [u8; 0],
17882}
17883pub type sk_X509_NAME_free_func =
17884    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME)>;
17885pub type sk_X509_NAME_copy_func =
17886    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_NAME) -> *mut X509_NAME>;
17887pub type sk_X509_NAME_cmp_func = ::core::option::Option<
17888    unsafe extern "C" fn(
17889        arg1: *const *const X509_NAME,
17890        arg2: *const *const X509_NAME,
17891    ) -> ::core::ffi::c_int,
17892>;
17893pub type sk_X509_NAME_delete_if_func = ::core::option::Option<
17894    unsafe extern "C" fn(
17895        arg1: *mut X509_NAME,
17896        arg2: *mut ::core::ffi::c_void,
17897    ) -> ::core::ffi::c_int,
17898>;
17899unsafe extern "C" {
17900    #[link_name = "sk_X509_NAME_call_free_func__extern"]
17901    pub fn sk_X509_NAME_call_free_func(
17902        free_func: OPENSSL_sk_free_func,
17903        ptr: *mut ::core::ffi::c_void,
17904    );
17905}
17906unsafe extern "C" {
17907    #[link_name = "sk_X509_NAME_call_copy_func__extern"]
17908    pub fn sk_X509_NAME_call_copy_func(
17909        copy_func: OPENSSL_sk_copy_func,
17910        ptr: *const ::core::ffi::c_void,
17911    ) -> *mut ::core::ffi::c_void;
17912}
17913unsafe extern "C" {
17914    #[link_name = "sk_X509_NAME_call_cmp_func__extern"]
17915    pub fn sk_X509_NAME_call_cmp_func(
17916        cmp_func: OPENSSL_sk_cmp_func,
17917        a: *const ::core::ffi::c_void,
17918        b: *const ::core::ffi::c_void,
17919    ) -> ::core::ffi::c_int;
17920}
17921unsafe extern "C" {
17922    #[link_name = "sk_X509_NAME_call_delete_if_func__extern"]
17923    pub fn sk_X509_NAME_call_delete_if_func(
17924        func: OPENSSL_sk_delete_if_func,
17925        obj: *mut ::core::ffi::c_void,
17926        data: *mut ::core::ffi::c_void,
17927    ) -> ::core::ffi::c_int;
17928}
17929unsafe extern "C" {
17930    #[link_name = "sk_X509_NAME_new__extern"]
17931    pub fn sk_X509_NAME_new(comp: sk_X509_NAME_cmp_func) -> *mut stack_st_X509_NAME;
17932}
17933unsafe extern "C" {
17934    #[link_name = "sk_X509_NAME_new_null__extern"]
17935    pub fn sk_X509_NAME_new_null() -> *mut stack_st_X509_NAME;
17936}
17937unsafe extern "C" {
17938    #[link_name = "sk_X509_NAME_num__extern"]
17939    pub fn sk_X509_NAME_num(sk: *const stack_st_X509_NAME) -> usize;
17940}
17941unsafe extern "C" {
17942    #[link_name = "sk_X509_NAME_zero__extern"]
17943    pub fn sk_X509_NAME_zero(sk: *mut stack_st_X509_NAME);
17944}
17945unsafe extern "C" {
17946    #[link_name = "sk_X509_NAME_value__extern"]
17947    pub fn sk_X509_NAME_value(sk: *const stack_st_X509_NAME, i: usize) -> *mut X509_NAME;
17948}
17949unsafe extern "C" {
17950    #[link_name = "sk_X509_NAME_set__extern"]
17951    pub fn sk_X509_NAME_set(
17952        sk: *mut stack_st_X509_NAME,
17953        i: usize,
17954        p: *mut X509_NAME,
17955    ) -> *mut X509_NAME;
17956}
17957unsafe extern "C" {
17958    #[link_name = "sk_X509_NAME_free__extern"]
17959    pub fn sk_X509_NAME_free(sk: *mut stack_st_X509_NAME);
17960}
17961unsafe extern "C" {
17962    #[link_name = "sk_X509_NAME_pop_free__extern"]
17963    pub fn sk_X509_NAME_pop_free(sk: *mut stack_st_X509_NAME, free_func: sk_X509_NAME_free_func);
17964}
17965unsafe extern "C" {
17966    #[link_name = "sk_X509_NAME_insert__extern"]
17967    pub fn sk_X509_NAME_insert(
17968        sk: *mut stack_st_X509_NAME,
17969        p: *mut X509_NAME,
17970        where_: usize,
17971    ) -> usize;
17972}
17973unsafe extern "C" {
17974    #[link_name = "sk_X509_NAME_delete__extern"]
17975    pub fn sk_X509_NAME_delete(sk: *mut stack_st_X509_NAME, where_: usize) -> *mut X509_NAME;
17976}
17977unsafe extern "C" {
17978    #[link_name = "sk_X509_NAME_delete_ptr__extern"]
17979    pub fn sk_X509_NAME_delete_ptr(
17980        sk: *mut stack_st_X509_NAME,
17981        p: *const X509_NAME,
17982    ) -> *mut X509_NAME;
17983}
17984unsafe extern "C" {
17985    #[link_name = "sk_X509_NAME_delete_if__extern"]
17986    pub fn sk_X509_NAME_delete_if(
17987        sk: *mut stack_st_X509_NAME,
17988        func: sk_X509_NAME_delete_if_func,
17989        data: *mut ::core::ffi::c_void,
17990    );
17991}
17992unsafe extern "C" {
17993    #[link_name = "sk_X509_NAME_find__extern"]
17994    pub fn sk_X509_NAME_find(
17995        sk: *const stack_st_X509_NAME,
17996        out_index: *mut usize,
17997        p: *const X509_NAME,
17998    ) -> ::core::ffi::c_int;
17999}
18000unsafe extern "C" {
18001    #[link_name = "sk_X509_NAME_shift__extern"]
18002    pub fn sk_X509_NAME_shift(sk: *mut stack_st_X509_NAME) -> *mut X509_NAME;
18003}
18004unsafe extern "C" {
18005    #[link_name = "sk_X509_NAME_push__extern"]
18006    pub fn sk_X509_NAME_push(sk: *mut stack_st_X509_NAME, p: *mut X509_NAME) -> usize;
18007}
18008unsafe extern "C" {
18009    #[link_name = "sk_X509_NAME_pop__extern"]
18010    pub fn sk_X509_NAME_pop(sk: *mut stack_st_X509_NAME) -> *mut X509_NAME;
18011}
18012unsafe extern "C" {
18013    #[link_name = "sk_X509_NAME_dup__extern"]
18014    pub fn sk_X509_NAME_dup(sk: *const stack_st_X509_NAME) -> *mut stack_st_X509_NAME;
18015}
18016unsafe extern "C" {
18017    #[link_name = "sk_X509_NAME_sort__extern"]
18018    pub fn sk_X509_NAME_sort(sk: *mut stack_st_X509_NAME);
18019}
18020unsafe extern "C" {
18021    #[link_name = "sk_X509_NAME_sort_and_dedup__extern"]
18022    pub fn sk_X509_NAME_sort_and_dedup(
18023        sk: *mut stack_st_X509_NAME,
18024        free_func: sk_X509_NAME_free_func,
18025    );
18026}
18027unsafe extern "C" {
18028    #[link_name = "sk_X509_NAME_is_sorted__extern"]
18029    pub fn sk_X509_NAME_is_sorted(sk: *const stack_st_X509_NAME) -> ::core::ffi::c_int;
18030}
18031unsafe extern "C" {
18032    #[link_name = "sk_X509_NAME_set_cmp_func__extern"]
18033    pub fn sk_X509_NAME_set_cmp_func(
18034        sk: *mut stack_st_X509_NAME,
18035        comp: sk_X509_NAME_cmp_func,
18036    ) -> sk_X509_NAME_cmp_func;
18037}
18038unsafe extern "C" {
18039    #[link_name = "sk_X509_NAME_deep_copy__extern"]
18040    pub fn sk_X509_NAME_deep_copy(
18041        sk: *const stack_st_X509_NAME,
18042        copy_func: sk_X509_NAME_copy_func,
18043        free_func: sk_X509_NAME_free_func,
18044    ) -> *mut stack_st_X509_NAME;
18045}
18046unsafe extern "C" {
18047    pub static X509_NAME_it: ASN1_ITEM;
18048}
18049unsafe extern "C" {
18050    pub fn X509_NAME_new() -> *mut X509_NAME;
18051}
18052unsafe extern "C" {
18053    pub fn X509_NAME_free(name: *mut X509_NAME);
18054}
18055unsafe extern "C" {
18056    pub fn d2i_X509_NAME(
18057        out: *mut *mut X509_NAME,
18058        inp: *mut *const u8,
18059        len: ::core::ffi::c_long,
18060    ) -> *mut X509_NAME;
18061}
18062unsafe extern "C" {
18063    pub fn i2d_X509_NAME(in_: *const X509_NAME, outp: *mut *mut u8) -> ::core::ffi::c_int;
18064}
18065unsafe extern "C" {
18066    pub fn X509_NAME_dup(name: *const X509_NAME) -> *mut X509_NAME;
18067}
18068unsafe extern "C" {
18069    pub fn X509_NAME_cmp(a: *const X509_NAME, b: *const X509_NAME) -> ::core::ffi::c_int;
18070}
18071unsafe extern "C" {
18072    pub fn X509_NAME_get0_der(
18073        name: *const X509_NAME,
18074        out_der: *mut *const u8,
18075        out_der_len: *mut usize,
18076    ) -> ::core::ffi::c_int;
18077}
18078unsafe extern "C" {
18079    pub fn X509_NAME_set(xn: *mut *mut X509_NAME, name: *const X509_NAME) -> ::core::ffi::c_int;
18080}
18081unsafe extern "C" {
18082    pub fn X509_NAME_entry_count(name: *const X509_NAME) -> ::core::ffi::c_int;
18083}
18084unsafe extern "C" {
18085    pub fn X509_NAME_get_index_by_NID(
18086        name: *const X509_NAME,
18087        nid: ::core::ffi::c_int,
18088        lastpos: ::core::ffi::c_int,
18089    ) -> ::core::ffi::c_int;
18090}
18091unsafe extern "C" {
18092    pub fn X509_NAME_get_index_by_OBJ(
18093        name: *const X509_NAME,
18094        obj: *const ASN1_OBJECT,
18095        lastpos: ::core::ffi::c_int,
18096    ) -> ::core::ffi::c_int;
18097}
18098unsafe extern "C" {
18099    pub fn X509_NAME_get_entry(
18100        name: *const X509_NAME,
18101        loc: ::core::ffi::c_int,
18102    ) -> *mut X509_NAME_ENTRY;
18103}
18104unsafe extern "C" {
18105    pub fn X509_NAME_delete_entry(
18106        name: *mut X509_NAME,
18107        loc: ::core::ffi::c_int,
18108    ) -> *mut X509_NAME_ENTRY;
18109}
18110unsafe extern "C" {
18111    pub fn X509_NAME_add_entry(
18112        name: *mut X509_NAME,
18113        entry: *const X509_NAME_ENTRY,
18114        loc: ::core::ffi::c_int,
18115        set: ::core::ffi::c_int,
18116    ) -> ::core::ffi::c_int;
18117}
18118unsafe extern "C" {
18119    pub fn X509_NAME_add_entry_by_OBJ(
18120        name: *mut X509_NAME,
18121        obj: *const ASN1_OBJECT,
18122        type_: ::core::ffi::c_int,
18123        bytes: *const u8,
18124        len: ossl_ssize_t,
18125        loc: ::core::ffi::c_int,
18126        set: ::core::ffi::c_int,
18127    ) -> ::core::ffi::c_int;
18128}
18129unsafe extern "C" {
18130    pub fn X509_NAME_add_entry_by_NID(
18131        name: *mut X509_NAME,
18132        nid: ::core::ffi::c_int,
18133        type_: ::core::ffi::c_int,
18134        bytes: *const u8,
18135        len: ossl_ssize_t,
18136        loc: ::core::ffi::c_int,
18137        set: ::core::ffi::c_int,
18138    ) -> ::core::ffi::c_int;
18139}
18140unsafe extern "C" {
18141    pub fn X509_NAME_add_entry_by_txt(
18142        name: *mut X509_NAME,
18143        field: *const ::core::ffi::c_char,
18144        type_: ::core::ffi::c_int,
18145        bytes: *const u8,
18146        len: ossl_ssize_t,
18147        loc: ::core::ffi::c_int,
18148        set: ::core::ffi::c_int,
18149    ) -> ::core::ffi::c_int;
18150}
18151unsafe extern "C" {
18152    pub fn X509_NAME_ENTRY_new() -> *mut X509_NAME_ENTRY;
18153}
18154unsafe extern "C" {
18155    pub fn X509_NAME_ENTRY_free(entry: *mut X509_NAME_ENTRY);
18156}
18157unsafe extern "C" {
18158    pub fn X509_NAME_ENTRY_dup(entry: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
18159}
18160unsafe extern "C" {
18161    pub fn X509_NAME_ENTRY_get_object(entry: *const X509_NAME_ENTRY) -> *mut ASN1_OBJECT;
18162}
18163unsafe extern "C" {
18164    pub fn X509_NAME_ENTRY_set_object(
18165        entry: *mut X509_NAME_ENTRY,
18166        obj: *const ASN1_OBJECT,
18167    ) -> ::core::ffi::c_int;
18168}
18169unsafe extern "C" {
18170    pub fn X509_NAME_ENTRY_get_data(entry: *const X509_NAME_ENTRY) -> *mut ASN1_STRING;
18171}
18172unsafe extern "C" {
18173    pub fn X509_NAME_ENTRY_set_data(
18174        entry: *mut X509_NAME_ENTRY,
18175        type_: ::core::ffi::c_int,
18176        bytes: *const u8,
18177        len: ossl_ssize_t,
18178    ) -> ::core::ffi::c_int;
18179}
18180unsafe extern "C" {
18181    pub fn X509_NAME_ENTRY_set(entry: *const X509_NAME_ENTRY) -> ::core::ffi::c_int;
18182}
18183unsafe extern "C" {
18184    pub fn X509_NAME_ENTRY_create_by_OBJ(
18185        out: *mut *mut X509_NAME_ENTRY,
18186        obj: *const ASN1_OBJECT,
18187        type_: ::core::ffi::c_int,
18188        bytes: *const u8,
18189        len: ossl_ssize_t,
18190    ) -> *mut X509_NAME_ENTRY;
18191}
18192unsafe extern "C" {
18193    pub fn X509_NAME_ENTRY_create_by_NID(
18194        out: *mut *mut X509_NAME_ENTRY,
18195        nid: ::core::ffi::c_int,
18196        type_: ::core::ffi::c_int,
18197        bytes: *const u8,
18198        len: ossl_ssize_t,
18199    ) -> *mut X509_NAME_ENTRY;
18200}
18201unsafe extern "C" {
18202    pub fn X509_NAME_ENTRY_create_by_txt(
18203        out: *mut *mut X509_NAME_ENTRY,
18204        field: *const ::core::ffi::c_char,
18205        type_: ::core::ffi::c_int,
18206        bytes: *const u8,
18207        len: ossl_ssize_t,
18208    ) -> *mut X509_NAME_ENTRY;
18209}
18210unsafe extern "C" {
18211    pub fn X509_PUBKEY_new() -> *mut X509_PUBKEY;
18212}
18213unsafe extern "C" {
18214    pub fn X509_PUBKEY_free(key: *mut X509_PUBKEY);
18215}
18216unsafe extern "C" {
18217    pub fn d2i_X509_PUBKEY(
18218        out: *mut *mut X509_PUBKEY,
18219        inp: *mut *const u8,
18220        len: ::core::ffi::c_long,
18221    ) -> *mut X509_PUBKEY;
18222}
18223unsafe extern "C" {
18224    pub fn i2d_X509_PUBKEY(key: *const X509_PUBKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
18225}
18226unsafe extern "C" {
18227    pub fn X509_PUBKEY_set(x: *mut *mut X509_PUBKEY, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
18228}
18229unsafe extern "C" {
18230    pub fn X509_PUBKEY_get0(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
18231}
18232unsafe extern "C" {
18233    pub fn X509_PUBKEY_get(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
18234}
18235unsafe extern "C" {
18236    pub fn X509_PUBKEY_set0_param(
18237        pub_: *mut X509_PUBKEY,
18238        obj: *mut ASN1_OBJECT,
18239        param_type: ::core::ffi::c_int,
18240        param_value: *mut ::core::ffi::c_void,
18241        key: *mut u8,
18242        key_len: ::core::ffi::c_int,
18243    ) -> ::core::ffi::c_int;
18244}
18245unsafe extern "C" {
18246    pub fn X509_PUBKEY_get0_param(
18247        out_obj: *mut *mut ASN1_OBJECT,
18248        out_key: *mut *const u8,
18249        out_key_len: *mut ::core::ffi::c_int,
18250        out_alg: *mut *mut X509_ALGOR,
18251        pub_: *mut X509_PUBKEY,
18252    ) -> ::core::ffi::c_int;
18253}
18254unsafe extern "C" {
18255    pub fn X509_PUBKEY_get0_public_key(pub_: *const X509_PUBKEY) -> *const ASN1_BIT_STRING;
18256}
18257unsafe extern "C" {
18258    pub static X509_EXTENSION_it: ASN1_ITEM;
18259}
18260unsafe extern "C" {
18261    pub fn X509_EXTENSION_new() -> *mut X509_EXTENSION;
18262}
18263unsafe extern "C" {
18264    pub fn X509_EXTENSION_free(ex: *mut X509_EXTENSION);
18265}
18266unsafe extern "C" {
18267    pub fn d2i_X509_EXTENSION(
18268        out: *mut *mut X509_EXTENSION,
18269        inp: *mut *const u8,
18270        len: ::core::ffi::c_long,
18271    ) -> *mut X509_EXTENSION;
18272}
18273unsafe extern "C" {
18274    pub fn i2d_X509_EXTENSION(ex: *const X509_EXTENSION, outp: *mut *mut u8) -> ::core::ffi::c_int;
18275}
18276unsafe extern "C" {
18277    pub fn X509_EXTENSION_dup(ex: *const X509_EXTENSION) -> *mut X509_EXTENSION;
18278}
18279unsafe extern "C" {
18280    pub fn X509_EXTENSION_create_by_NID(
18281        ex: *mut *mut X509_EXTENSION,
18282        nid: ::core::ffi::c_int,
18283        crit: ::core::ffi::c_int,
18284        data: *const ASN1_OCTET_STRING,
18285    ) -> *mut X509_EXTENSION;
18286}
18287unsafe extern "C" {
18288    pub fn X509_EXTENSION_create_by_OBJ(
18289        ex: *mut *mut X509_EXTENSION,
18290        obj: *const ASN1_OBJECT,
18291        crit: ::core::ffi::c_int,
18292        data: *const ASN1_OCTET_STRING,
18293    ) -> *mut X509_EXTENSION;
18294}
18295unsafe extern "C" {
18296    pub fn X509_EXTENSION_get_object(ex: *const X509_EXTENSION) -> *mut ASN1_OBJECT;
18297}
18298unsafe extern "C" {
18299    pub fn X509_EXTENSION_get_data(ne: *const X509_EXTENSION) -> *mut ASN1_OCTET_STRING;
18300}
18301unsafe extern "C" {
18302    pub fn X509_EXTENSION_get_critical(ex: *const X509_EXTENSION) -> ::core::ffi::c_int;
18303}
18304unsafe extern "C" {
18305    pub fn X509_EXTENSION_set_object(
18306        ex: *mut X509_EXTENSION,
18307        obj: *const ASN1_OBJECT,
18308    ) -> ::core::ffi::c_int;
18309}
18310unsafe extern "C" {
18311    pub fn X509_EXTENSION_set_critical(
18312        ex: *mut X509_EXTENSION,
18313        crit: ::core::ffi::c_int,
18314    ) -> ::core::ffi::c_int;
18315}
18316unsafe extern "C" {
18317    pub fn X509_EXTENSION_set_data(
18318        ex: *mut X509_EXTENSION,
18319        data: *const ASN1_OCTET_STRING,
18320    ) -> ::core::ffi::c_int;
18321}
18322pub type sk_X509_EXTENSION_free_func =
18323    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_EXTENSION)>;
18324pub type sk_X509_EXTENSION_copy_func = ::core::option::Option<
18325    unsafe extern "C" fn(arg1: *const X509_EXTENSION) -> *mut X509_EXTENSION,
18326>;
18327pub type sk_X509_EXTENSION_cmp_func = ::core::option::Option<
18328    unsafe extern "C" fn(
18329        arg1: *const *const X509_EXTENSION,
18330        arg2: *const *const X509_EXTENSION,
18331    ) -> ::core::ffi::c_int,
18332>;
18333pub type sk_X509_EXTENSION_delete_if_func = ::core::option::Option<
18334    unsafe extern "C" fn(
18335        arg1: *mut X509_EXTENSION,
18336        arg2: *mut ::core::ffi::c_void,
18337    ) -> ::core::ffi::c_int,
18338>;
18339unsafe extern "C" {
18340    #[link_name = "sk_X509_EXTENSION_call_free_func__extern"]
18341    pub fn sk_X509_EXTENSION_call_free_func(
18342        free_func: OPENSSL_sk_free_func,
18343        ptr: *mut ::core::ffi::c_void,
18344    );
18345}
18346unsafe extern "C" {
18347    #[link_name = "sk_X509_EXTENSION_call_copy_func__extern"]
18348    pub fn sk_X509_EXTENSION_call_copy_func(
18349        copy_func: OPENSSL_sk_copy_func,
18350        ptr: *const ::core::ffi::c_void,
18351    ) -> *mut ::core::ffi::c_void;
18352}
18353unsafe extern "C" {
18354    #[link_name = "sk_X509_EXTENSION_call_cmp_func__extern"]
18355    pub fn sk_X509_EXTENSION_call_cmp_func(
18356        cmp_func: OPENSSL_sk_cmp_func,
18357        a: *const ::core::ffi::c_void,
18358        b: *const ::core::ffi::c_void,
18359    ) -> ::core::ffi::c_int;
18360}
18361unsafe extern "C" {
18362    #[link_name = "sk_X509_EXTENSION_call_delete_if_func__extern"]
18363    pub fn sk_X509_EXTENSION_call_delete_if_func(
18364        func: OPENSSL_sk_delete_if_func,
18365        obj: *mut ::core::ffi::c_void,
18366        data: *mut ::core::ffi::c_void,
18367    ) -> ::core::ffi::c_int;
18368}
18369unsafe extern "C" {
18370    #[link_name = "sk_X509_EXTENSION_new__extern"]
18371    pub fn sk_X509_EXTENSION_new(comp: sk_X509_EXTENSION_cmp_func) -> *mut stack_st_X509_EXTENSION;
18372}
18373unsafe extern "C" {
18374    #[link_name = "sk_X509_EXTENSION_new_null__extern"]
18375    pub fn sk_X509_EXTENSION_new_null() -> *mut stack_st_X509_EXTENSION;
18376}
18377unsafe extern "C" {
18378    #[link_name = "sk_X509_EXTENSION_num__extern"]
18379    pub fn sk_X509_EXTENSION_num(sk: *const stack_st_X509_EXTENSION) -> usize;
18380}
18381unsafe extern "C" {
18382    #[link_name = "sk_X509_EXTENSION_zero__extern"]
18383    pub fn sk_X509_EXTENSION_zero(sk: *mut stack_st_X509_EXTENSION);
18384}
18385unsafe extern "C" {
18386    #[link_name = "sk_X509_EXTENSION_value__extern"]
18387    pub fn sk_X509_EXTENSION_value(
18388        sk: *const stack_st_X509_EXTENSION,
18389        i: usize,
18390    ) -> *mut X509_EXTENSION;
18391}
18392unsafe extern "C" {
18393    #[link_name = "sk_X509_EXTENSION_set__extern"]
18394    pub fn sk_X509_EXTENSION_set(
18395        sk: *mut stack_st_X509_EXTENSION,
18396        i: usize,
18397        p: *mut X509_EXTENSION,
18398    ) -> *mut X509_EXTENSION;
18399}
18400unsafe extern "C" {
18401    #[link_name = "sk_X509_EXTENSION_free__extern"]
18402    pub fn sk_X509_EXTENSION_free(sk: *mut stack_st_X509_EXTENSION);
18403}
18404unsafe extern "C" {
18405    #[link_name = "sk_X509_EXTENSION_pop_free__extern"]
18406    pub fn sk_X509_EXTENSION_pop_free(
18407        sk: *mut stack_st_X509_EXTENSION,
18408        free_func: sk_X509_EXTENSION_free_func,
18409    );
18410}
18411unsafe extern "C" {
18412    #[link_name = "sk_X509_EXTENSION_insert__extern"]
18413    pub fn sk_X509_EXTENSION_insert(
18414        sk: *mut stack_st_X509_EXTENSION,
18415        p: *mut X509_EXTENSION,
18416        where_: usize,
18417    ) -> usize;
18418}
18419unsafe extern "C" {
18420    #[link_name = "sk_X509_EXTENSION_delete__extern"]
18421    pub fn sk_X509_EXTENSION_delete(
18422        sk: *mut stack_st_X509_EXTENSION,
18423        where_: usize,
18424    ) -> *mut X509_EXTENSION;
18425}
18426unsafe extern "C" {
18427    #[link_name = "sk_X509_EXTENSION_delete_ptr__extern"]
18428    pub fn sk_X509_EXTENSION_delete_ptr(
18429        sk: *mut stack_st_X509_EXTENSION,
18430        p: *const X509_EXTENSION,
18431    ) -> *mut X509_EXTENSION;
18432}
18433unsafe extern "C" {
18434    #[link_name = "sk_X509_EXTENSION_delete_if__extern"]
18435    pub fn sk_X509_EXTENSION_delete_if(
18436        sk: *mut stack_st_X509_EXTENSION,
18437        func: sk_X509_EXTENSION_delete_if_func,
18438        data: *mut ::core::ffi::c_void,
18439    );
18440}
18441unsafe extern "C" {
18442    #[link_name = "sk_X509_EXTENSION_find__extern"]
18443    pub fn sk_X509_EXTENSION_find(
18444        sk: *const stack_st_X509_EXTENSION,
18445        out_index: *mut usize,
18446        p: *const X509_EXTENSION,
18447    ) -> ::core::ffi::c_int;
18448}
18449unsafe extern "C" {
18450    #[link_name = "sk_X509_EXTENSION_shift__extern"]
18451    pub fn sk_X509_EXTENSION_shift(sk: *mut stack_st_X509_EXTENSION) -> *mut X509_EXTENSION;
18452}
18453unsafe extern "C" {
18454    #[link_name = "sk_X509_EXTENSION_push__extern"]
18455    pub fn sk_X509_EXTENSION_push(
18456        sk: *mut stack_st_X509_EXTENSION,
18457        p: *mut X509_EXTENSION,
18458    ) -> usize;
18459}
18460unsafe extern "C" {
18461    #[link_name = "sk_X509_EXTENSION_pop__extern"]
18462    pub fn sk_X509_EXTENSION_pop(sk: *mut stack_st_X509_EXTENSION) -> *mut X509_EXTENSION;
18463}
18464unsafe extern "C" {
18465    #[link_name = "sk_X509_EXTENSION_dup__extern"]
18466    pub fn sk_X509_EXTENSION_dup(
18467        sk: *const stack_st_X509_EXTENSION,
18468    ) -> *mut stack_st_X509_EXTENSION;
18469}
18470unsafe extern "C" {
18471    #[link_name = "sk_X509_EXTENSION_sort__extern"]
18472    pub fn sk_X509_EXTENSION_sort(sk: *mut stack_st_X509_EXTENSION);
18473}
18474unsafe extern "C" {
18475    #[link_name = "sk_X509_EXTENSION_sort_and_dedup__extern"]
18476    pub fn sk_X509_EXTENSION_sort_and_dedup(
18477        sk: *mut stack_st_X509_EXTENSION,
18478        free_func: sk_X509_EXTENSION_free_func,
18479    );
18480}
18481unsafe extern "C" {
18482    #[link_name = "sk_X509_EXTENSION_is_sorted__extern"]
18483    pub fn sk_X509_EXTENSION_is_sorted(sk: *const stack_st_X509_EXTENSION) -> ::core::ffi::c_int;
18484}
18485unsafe extern "C" {
18486    #[link_name = "sk_X509_EXTENSION_set_cmp_func__extern"]
18487    pub fn sk_X509_EXTENSION_set_cmp_func(
18488        sk: *mut stack_st_X509_EXTENSION,
18489        comp: sk_X509_EXTENSION_cmp_func,
18490    ) -> sk_X509_EXTENSION_cmp_func;
18491}
18492unsafe extern "C" {
18493    #[link_name = "sk_X509_EXTENSION_deep_copy__extern"]
18494    pub fn sk_X509_EXTENSION_deep_copy(
18495        sk: *const stack_st_X509_EXTENSION,
18496        copy_func: sk_X509_EXTENSION_copy_func,
18497        free_func: sk_X509_EXTENSION_free_func,
18498    ) -> *mut stack_st_X509_EXTENSION;
18499}
18500pub type X509_EXTENSIONS = stack_st_X509_EXTENSION;
18501unsafe extern "C" {
18502    pub fn d2i_X509_EXTENSIONS(
18503        out: *mut *mut X509_EXTENSIONS,
18504        inp: *mut *const u8,
18505        len: ::core::ffi::c_long,
18506    ) -> *mut X509_EXTENSIONS;
18507}
18508unsafe extern "C" {
18509    pub fn i2d_X509_EXTENSIONS(
18510        alg: *const X509_EXTENSIONS,
18511        outp: *mut *mut u8,
18512    ) -> ::core::ffi::c_int;
18513}
18514unsafe extern "C" {
18515    pub fn X509v3_get_ext_count(x: *const stack_st_X509_EXTENSION) -> ::core::ffi::c_int;
18516}
18517unsafe extern "C" {
18518    pub fn X509v3_get_ext_by_NID(
18519        x: *const stack_st_X509_EXTENSION,
18520        nid: ::core::ffi::c_int,
18521        lastpos: ::core::ffi::c_int,
18522    ) -> ::core::ffi::c_int;
18523}
18524unsafe extern "C" {
18525    pub fn X509v3_get_ext_by_OBJ(
18526        x: *const stack_st_X509_EXTENSION,
18527        obj: *const ASN1_OBJECT,
18528        lastpos: ::core::ffi::c_int,
18529    ) -> ::core::ffi::c_int;
18530}
18531unsafe extern "C" {
18532    pub fn X509v3_get_ext_by_critical(
18533        x: *const stack_st_X509_EXTENSION,
18534        crit: ::core::ffi::c_int,
18535        lastpos: ::core::ffi::c_int,
18536    ) -> ::core::ffi::c_int;
18537}
18538unsafe extern "C" {
18539    pub fn X509v3_get_ext(
18540        x: *const stack_st_X509_EXTENSION,
18541        loc: ::core::ffi::c_int,
18542    ) -> *mut X509_EXTENSION;
18543}
18544unsafe extern "C" {
18545    pub fn X509v3_delete_ext(
18546        x: *mut stack_st_X509_EXTENSION,
18547        loc: ::core::ffi::c_int,
18548    ) -> *mut X509_EXTENSION;
18549}
18550unsafe extern "C" {
18551    pub fn X509v3_add_ext(
18552        x: *mut *mut stack_st_X509_EXTENSION,
18553        ex: *const X509_EXTENSION,
18554        loc: ::core::ffi::c_int,
18555    ) -> *mut stack_st_X509_EXTENSION;
18556}
18557unsafe extern "C" {
18558    pub fn X509V3_EXT_d2i(ext: *const X509_EXTENSION) -> *mut ::core::ffi::c_void;
18559}
18560unsafe extern "C" {
18561    pub fn X509V3_get_d2i(
18562        extensions: *const stack_st_X509_EXTENSION,
18563        nid: ::core::ffi::c_int,
18564        out_critical: *mut ::core::ffi::c_int,
18565        out_idx: *mut ::core::ffi::c_int,
18566    ) -> *mut ::core::ffi::c_void;
18567}
18568unsafe extern "C" {
18569    pub fn X509V3_EXT_free(
18570        nid: ::core::ffi::c_int,
18571        ext_data: *mut ::core::ffi::c_void,
18572    ) -> ::core::ffi::c_int;
18573}
18574unsafe extern "C" {
18575    pub fn X509V3_EXT_i2d(
18576        ext_nid: ::core::ffi::c_int,
18577        crit: ::core::ffi::c_int,
18578        ext_struc: *mut ::core::ffi::c_void,
18579    ) -> *mut X509_EXTENSION;
18580}
18581unsafe extern "C" {
18582    pub fn X509V3_add1_i2d(
18583        x: *mut *mut stack_st_X509_EXTENSION,
18584        nid: ::core::ffi::c_int,
18585        value: *mut ::core::ffi::c_void,
18586        crit: ::core::ffi::c_int,
18587        flags: ::core::ffi::c_ulong,
18588    ) -> ::core::ffi::c_int;
18589}
18590#[repr(C)]
18591#[derive(Debug, Copy, Clone)]
18592pub struct BASIC_CONSTRAINTS_st {
18593    pub ca: ASN1_BOOLEAN,
18594    pub pathlen: *mut ASN1_INTEGER,
18595}
18596unsafe extern "C" {
18597    pub static BASIC_CONSTRAINTS_it: ASN1_ITEM;
18598}
18599unsafe extern "C" {
18600    pub fn BASIC_CONSTRAINTS_new() -> *mut BASIC_CONSTRAINTS;
18601}
18602unsafe extern "C" {
18603    pub fn BASIC_CONSTRAINTS_free(bcons: *mut BASIC_CONSTRAINTS);
18604}
18605unsafe extern "C" {
18606    pub fn d2i_BASIC_CONSTRAINTS(
18607        out: *mut *mut BASIC_CONSTRAINTS,
18608        inp: *mut *const u8,
18609        len: ::core::ffi::c_long,
18610    ) -> *mut BASIC_CONSTRAINTS;
18611}
18612unsafe extern "C" {
18613    pub fn i2d_BASIC_CONSTRAINTS(
18614        bcons: *const BASIC_CONSTRAINTS,
18615        outp: *mut *mut u8,
18616    ) -> ::core::ffi::c_int;
18617}
18618pub type EXTENDED_KEY_USAGE = stack_st_ASN1_OBJECT;
18619unsafe extern "C" {
18620    pub static EXTENDED_KEY_USAGE_it: ASN1_ITEM;
18621}
18622unsafe extern "C" {
18623    pub fn EXTENDED_KEY_USAGE_new() -> *mut EXTENDED_KEY_USAGE;
18624}
18625unsafe extern "C" {
18626    pub fn EXTENDED_KEY_USAGE_free(eku: *mut EXTENDED_KEY_USAGE);
18627}
18628unsafe extern "C" {
18629    pub fn d2i_EXTENDED_KEY_USAGE(
18630        out: *mut *mut EXTENDED_KEY_USAGE,
18631        inp: *mut *const u8,
18632        len: ::core::ffi::c_long,
18633    ) -> *mut EXTENDED_KEY_USAGE;
18634}
18635unsafe extern "C" {
18636    pub fn i2d_EXTENDED_KEY_USAGE(
18637        eku: *const EXTENDED_KEY_USAGE,
18638        outp: *mut *mut u8,
18639    ) -> ::core::ffi::c_int;
18640}
18641#[repr(C)]
18642#[derive(Debug, Copy, Clone)]
18643pub struct otherName_st {
18644    pub type_id: *mut ASN1_OBJECT,
18645    pub value: *mut ASN1_TYPE,
18646}
18647pub type OTHERNAME = otherName_st;
18648#[repr(C)]
18649#[derive(Debug, Copy, Clone)]
18650pub struct EDIPartyName_st {
18651    pub nameAssigner: *mut ASN1_STRING,
18652    pub partyName: *mut ASN1_STRING,
18653}
18654pub type EDIPARTYNAME = EDIPartyName_st;
18655#[repr(C)]
18656#[derive(Copy, Clone)]
18657pub struct GENERAL_NAME_st {
18658    pub type_: ::core::ffi::c_int,
18659    pub d: GENERAL_NAME_st__bindgen_ty_1,
18660}
18661#[repr(C)]
18662#[derive(Copy, Clone)]
18663pub union GENERAL_NAME_st__bindgen_ty_1 {
18664    pub ptr: *mut ::core::ffi::c_char,
18665    pub otherName: *mut OTHERNAME,
18666    pub rfc822Name: *mut ASN1_IA5STRING,
18667    pub dNSName: *mut ASN1_IA5STRING,
18668    pub x400Address: *mut ASN1_STRING,
18669    pub directoryName: *mut X509_NAME,
18670    pub ediPartyName: *mut EDIPARTYNAME,
18671    pub uniformResourceIdentifier: *mut ASN1_IA5STRING,
18672    pub iPAddress: *mut ASN1_OCTET_STRING,
18673    pub registeredID: *mut ASN1_OBJECT,
18674    pub ip: *mut ASN1_OCTET_STRING,
18675    pub dirn: *mut X509_NAME,
18676    pub ia5: *mut ASN1_IA5STRING,
18677    pub rid: *mut ASN1_OBJECT,
18678}
18679unsafe extern "C" {
18680    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
18681}
18682unsafe extern "C" {
18683    pub fn GENERAL_NAME_free(gen_: *mut GENERAL_NAME);
18684}
18685unsafe extern "C" {
18686    pub fn d2i_GENERAL_NAME(
18687        out: *mut *mut GENERAL_NAME,
18688        inp: *mut *const u8,
18689        len: ::core::ffi::c_long,
18690    ) -> *mut GENERAL_NAME;
18691}
18692unsafe extern "C" {
18693    pub fn i2d_GENERAL_NAME(in_: *const GENERAL_NAME, outp: *mut *mut u8) -> ::core::ffi::c_int;
18694}
18695unsafe extern "C" {
18696    pub fn GENERAL_NAME_dup(gen_: *const GENERAL_NAME) -> *mut GENERAL_NAME;
18697}
18698unsafe extern "C" {
18699    pub fn GENERAL_NAMES_new() -> *mut GENERAL_NAMES;
18700}
18701unsafe extern "C" {
18702    pub fn GENERAL_NAMES_free(gens: *mut GENERAL_NAMES);
18703}
18704unsafe extern "C" {
18705    pub fn d2i_GENERAL_NAMES(
18706        out: *mut *mut GENERAL_NAMES,
18707        inp: *mut *const u8,
18708        len: ::core::ffi::c_long,
18709    ) -> *mut GENERAL_NAMES;
18710}
18711unsafe extern "C" {
18712    pub fn i2d_GENERAL_NAMES(in_: *const GENERAL_NAMES, outp: *mut *mut u8) -> ::core::ffi::c_int;
18713}
18714unsafe extern "C" {
18715    pub fn OTHERNAME_new() -> *mut OTHERNAME;
18716}
18717unsafe extern "C" {
18718    pub fn OTHERNAME_free(name: *mut OTHERNAME);
18719}
18720unsafe extern "C" {
18721    pub fn EDIPARTYNAME_new() -> *mut EDIPARTYNAME;
18722}
18723unsafe extern "C" {
18724    pub fn EDIPARTYNAME_free(name: *mut EDIPARTYNAME);
18725}
18726unsafe extern "C" {
18727    pub fn GENERAL_NAME_set0_value(
18728        gen_: *mut GENERAL_NAME,
18729        type_: ::core::ffi::c_int,
18730        value: *mut ::core::ffi::c_void,
18731    );
18732}
18733unsafe extern "C" {
18734    pub fn GENERAL_NAME_get0_value(
18735        gen_: *const GENERAL_NAME,
18736        out_type: *mut ::core::ffi::c_int,
18737    ) -> *mut ::core::ffi::c_void;
18738}
18739unsafe extern "C" {
18740    pub fn GENERAL_NAME_set0_othername(
18741        gen_: *mut GENERAL_NAME,
18742        oid: *mut ASN1_OBJECT,
18743        value: *mut ASN1_TYPE,
18744    ) -> ::core::ffi::c_int;
18745}
18746unsafe extern "C" {
18747    pub fn GENERAL_NAME_get0_otherName(
18748        gen_: *const GENERAL_NAME,
18749        out_oid: *mut *mut ASN1_OBJECT,
18750        out_value: *mut *mut ASN1_TYPE,
18751    ) -> ::core::ffi::c_int;
18752}
18753#[repr(C)]
18754#[derive(Debug, Copy, Clone)]
18755pub struct AUTHORITY_KEYID_st {
18756    pub keyid: *mut ASN1_OCTET_STRING,
18757    pub issuer: *mut GENERAL_NAMES,
18758    pub serial: *mut ASN1_INTEGER,
18759}
18760unsafe extern "C" {
18761    pub static AUTHORITY_KEYID_it: ASN1_ITEM;
18762}
18763unsafe extern "C" {
18764    pub fn AUTHORITY_KEYID_new() -> *mut AUTHORITY_KEYID;
18765}
18766unsafe extern "C" {
18767    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
18768}
18769unsafe extern "C" {
18770    pub fn d2i_AUTHORITY_KEYID(
18771        out: *mut *mut AUTHORITY_KEYID,
18772        inp: *mut *const u8,
18773        len: ::core::ffi::c_long,
18774    ) -> *mut AUTHORITY_KEYID;
18775}
18776unsafe extern "C" {
18777    pub fn i2d_AUTHORITY_KEYID(
18778        akid: *const AUTHORITY_KEYID,
18779        outp: *mut *mut u8,
18780    ) -> ::core::ffi::c_int;
18781}
18782#[repr(C)]
18783#[derive(Debug, Copy, Clone)]
18784pub struct GENERAL_SUBTREE_st {
18785    pub base: *mut GENERAL_NAME,
18786    pub minimum: *mut ASN1_INTEGER,
18787    pub maximum: *mut ASN1_INTEGER,
18788}
18789pub type GENERAL_SUBTREE = GENERAL_SUBTREE_st;
18790#[repr(C)]
18791#[derive(Debug)]
18792pub struct stack_st_GENERAL_SUBTREE {
18793    _unused: [u8; 0],
18794}
18795pub type sk_GENERAL_SUBTREE_free_func =
18796    ::core::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_SUBTREE)>;
18797pub type sk_GENERAL_SUBTREE_copy_func = ::core::option::Option<
18798    unsafe extern "C" fn(arg1: *const GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE,
18799>;
18800pub type sk_GENERAL_SUBTREE_cmp_func = ::core::option::Option<
18801    unsafe extern "C" fn(
18802        arg1: *const *const GENERAL_SUBTREE,
18803        arg2: *const *const GENERAL_SUBTREE,
18804    ) -> ::core::ffi::c_int,
18805>;
18806pub type sk_GENERAL_SUBTREE_delete_if_func = ::core::option::Option<
18807    unsafe extern "C" fn(
18808        arg1: *mut GENERAL_SUBTREE,
18809        arg2: *mut ::core::ffi::c_void,
18810    ) -> ::core::ffi::c_int,
18811>;
18812unsafe extern "C" {
18813    #[link_name = "sk_GENERAL_SUBTREE_call_free_func__extern"]
18814    pub fn sk_GENERAL_SUBTREE_call_free_func(
18815        free_func: OPENSSL_sk_free_func,
18816        ptr: *mut ::core::ffi::c_void,
18817    );
18818}
18819unsafe extern "C" {
18820    #[link_name = "sk_GENERAL_SUBTREE_call_copy_func__extern"]
18821    pub fn sk_GENERAL_SUBTREE_call_copy_func(
18822        copy_func: OPENSSL_sk_copy_func,
18823        ptr: *const ::core::ffi::c_void,
18824    ) -> *mut ::core::ffi::c_void;
18825}
18826unsafe extern "C" {
18827    #[link_name = "sk_GENERAL_SUBTREE_call_cmp_func__extern"]
18828    pub fn sk_GENERAL_SUBTREE_call_cmp_func(
18829        cmp_func: OPENSSL_sk_cmp_func,
18830        a: *const ::core::ffi::c_void,
18831        b: *const ::core::ffi::c_void,
18832    ) -> ::core::ffi::c_int;
18833}
18834unsafe extern "C" {
18835    #[link_name = "sk_GENERAL_SUBTREE_call_delete_if_func__extern"]
18836    pub fn sk_GENERAL_SUBTREE_call_delete_if_func(
18837        func: OPENSSL_sk_delete_if_func,
18838        obj: *mut ::core::ffi::c_void,
18839        data: *mut ::core::ffi::c_void,
18840    ) -> ::core::ffi::c_int;
18841}
18842unsafe extern "C" {
18843    #[link_name = "sk_GENERAL_SUBTREE_new__extern"]
18844    pub fn sk_GENERAL_SUBTREE_new(
18845        comp: sk_GENERAL_SUBTREE_cmp_func,
18846    ) -> *mut stack_st_GENERAL_SUBTREE;
18847}
18848unsafe extern "C" {
18849    #[link_name = "sk_GENERAL_SUBTREE_new_null__extern"]
18850    pub fn sk_GENERAL_SUBTREE_new_null() -> *mut stack_st_GENERAL_SUBTREE;
18851}
18852unsafe extern "C" {
18853    #[link_name = "sk_GENERAL_SUBTREE_num__extern"]
18854    pub fn sk_GENERAL_SUBTREE_num(sk: *const stack_st_GENERAL_SUBTREE) -> usize;
18855}
18856unsafe extern "C" {
18857    #[link_name = "sk_GENERAL_SUBTREE_zero__extern"]
18858    pub fn sk_GENERAL_SUBTREE_zero(sk: *mut stack_st_GENERAL_SUBTREE);
18859}
18860unsafe extern "C" {
18861    #[link_name = "sk_GENERAL_SUBTREE_value__extern"]
18862    pub fn sk_GENERAL_SUBTREE_value(
18863        sk: *const stack_st_GENERAL_SUBTREE,
18864        i: usize,
18865    ) -> *mut GENERAL_SUBTREE;
18866}
18867unsafe extern "C" {
18868    #[link_name = "sk_GENERAL_SUBTREE_set__extern"]
18869    pub fn sk_GENERAL_SUBTREE_set(
18870        sk: *mut stack_st_GENERAL_SUBTREE,
18871        i: usize,
18872        p: *mut GENERAL_SUBTREE,
18873    ) -> *mut GENERAL_SUBTREE;
18874}
18875unsafe extern "C" {
18876    #[link_name = "sk_GENERAL_SUBTREE_free__extern"]
18877    pub fn sk_GENERAL_SUBTREE_free(sk: *mut stack_st_GENERAL_SUBTREE);
18878}
18879unsafe extern "C" {
18880    #[link_name = "sk_GENERAL_SUBTREE_pop_free__extern"]
18881    pub fn sk_GENERAL_SUBTREE_pop_free(
18882        sk: *mut stack_st_GENERAL_SUBTREE,
18883        free_func: sk_GENERAL_SUBTREE_free_func,
18884    );
18885}
18886unsafe extern "C" {
18887    #[link_name = "sk_GENERAL_SUBTREE_insert__extern"]
18888    pub fn sk_GENERAL_SUBTREE_insert(
18889        sk: *mut stack_st_GENERAL_SUBTREE,
18890        p: *mut GENERAL_SUBTREE,
18891        where_: usize,
18892    ) -> usize;
18893}
18894unsafe extern "C" {
18895    #[link_name = "sk_GENERAL_SUBTREE_delete__extern"]
18896    pub fn sk_GENERAL_SUBTREE_delete(
18897        sk: *mut stack_st_GENERAL_SUBTREE,
18898        where_: usize,
18899    ) -> *mut GENERAL_SUBTREE;
18900}
18901unsafe extern "C" {
18902    #[link_name = "sk_GENERAL_SUBTREE_delete_ptr__extern"]
18903    pub fn sk_GENERAL_SUBTREE_delete_ptr(
18904        sk: *mut stack_st_GENERAL_SUBTREE,
18905        p: *const GENERAL_SUBTREE,
18906    ) -> *mut GENERAL_SUBTREE;
18907}
18908unsafe extern "C" {
18909    #[link_name = "sk_GENERAL_SUBTREE_delete_if__extern"]
18910    pub fn sk_GENERAL_SUBTREE_delete_if(
18911        sk: *mut stack_st_GENERAL_SUBTREE,
18912        func: sk_GENERAL_SUBTREE_delete_if_func,
18913        data: *mut ::core::ffi::c_void,
18914    );
18915}
18916unsafe extern "C" {
18917    #[link_name = "sk_GENERAL_SUBTREE_find__extern"]
18918    pub fn sk_GENERAL_SUBTREE_find(
18919        sk: *const stack_st_GENERAL_SUBTREE,
18920        out_index: *mut usize,
18921        p: *const GENERAL_SUBTREE,
18922    ) -> ::core::ffi::c_int;
18923}
18924unsafe extern "C" {
18925    #[link_name = "sk_GENERAL_SUBTREE_shift__extern"]
18926    pub fn sk_GENERAL_SUBTREE_shift(sk: *mut stack_st_GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE;
18927}
18928unsafe extern "C" {
18929    #[link_name = "sk_GENERAL_SUBTREE_push__extern"]
18930    pub fn sk_GENERAL_SUBTREE_push(
18931        sk: *mut stack_st_GENERAL_SUBTREE,
18932        p: *mut GENERAL_SUBTREE,
18933    ) -> usize;
18934}
18935unsafe extern "C" {
18936    #[link_name = "sk_GENERAL_SUBTREE_pop__extern"]
18937    pub fn sk_GENERAL_SUBTREE_pop(sk: *mut stack_st_GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE;
18938}
18939unsafe extern "C" {
18940    #[link_name = "sk_GENERAL_SUBTREE_dup__extern"]
18941    pub fn sk_GENERAL_SUBTREE_dup(
18942        sk: *const stack_st_GENERAL_SUBTREE,
18943    ) -> *mut stack_st_GENERAL_SUBTREE;
18944}
18945unsafe extern "C" {
18946    #[link_name = "sk_GENERAL_SUBTREE_sort__extern"]
18947    pub fn sk_GENERAL_SUBTREE_sort(sk: *mut stack_st_GENERAL_SUBTREE);
18948}
18949unsafe extern "C" {
18950    #[link_name = "sk_GENERAL_SUBTREE_sort_and_dedup__extern"]
18951    pub fn sk_GENERAL_SUBTREE_sort_and_dedup(
18952        sk: *mut stack_st_GENERAL_SUBTREE,
18953        free_func: sk_GENERAL_SUBTREE_free_func,
18954    );
18955}
18956unsafe extern "C" {
18957    #[link_name = "sk_GENERAL_SUBTREE_is_sorted__extern"]
18958    pub fn sk_GENERAL_SUBTREE_is_sorted(sk: *const stack_st_GENERAL_SUBTREE) -> ::core::ffi::c_int;
18959}
18960unsafe extern "C" {
18961    #[link_name = "sk_GENERAL_SUBTREE_set_cmp_func__extern"]
18962    pub fn sk_GENERAL_SUBTREE_set_cmp_func(
18963        sk: *mut stack_st_GENERAL_SUBTREE,
18964        comp: sk_GENERAL_SUBTREE_cmp_func,
18965    ) -> sk_GENERAL_SUBTREE_cmp_func;
18966}
18967unsafe extern "C" {
18968    #[link_name = "sk_GENERAL_SUBTREE_deep_copy__extern"]
18969    pub fn sk_GENERAL_SUBTREE_deep_copy(
18970        sk: *const stack_st_GENERAL_SUBTREE,
18971        copy_func: sk_GENERAL_SUBTREE_copy_func,
18972        free_func: sk_GENERAL_SUBTREE_free_func,
18973    ) -> *mut stack_st_GENERAL_SUBTREE;
18974}
18975unsafe extern "C" {
18976    pub fn GENERAL_SUBTREE_new() -> *mut GENERAL_SUBTREE;
18977}
18978unsafe extern "C" {
18979    pub fn GENERAL_SUBTREE_free(subtree: *mut GENERAL_SUBTREE);
18980}
18981#[repr(C)]
18982#[derive(Debug, Copy, Clone)]
18983pub struct NAME_CONSTRAINTS_st {
18984    pub permittedSubtrees: *mut stack_st_GENERAL_SUBTREE,
18985    pub excludedSubtrees: *mut stack_st_GENERAL_SUBTREE,
18986}
18987unsafe extern "C" {
18988    pub static NAME_CONSTRAINTS_it: ASN1_ITEM;
18989}
18990unsafe extern "C" {
18991    pub fn NAME_CONSTRAINTS_new() -> *mut NAME_CONSTRAINTS;
18992}
18993unsafe extern "C" {
18994    pub fn NAME_CONSTRAINTS_free(ncons: *mut NAME_CONSTRAINTS);
18995}
18996#[repr(C)]
18997#[derive(Debug, Copy, Clone)]
18998pub struct ACCESS_DESCRIPTION_st {
18999    pub method: *mut ASN1_OBJECT,
19000    pub location: *mut GENERAL_NAME,
19001}
19002pub type ACCESS_DESCRIPTION = ACCESS_DESCRIPTION_st;
19003#[repr(C)]
19004#[derive(Debug)]
19005pub struct stack_st_ACCESS_DESCRIPTION {
19006    _unused: [u8; 0],
19007}
19008pub type sk_ACCESS_DESCRIPTION_free_func =
19009    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ACCESS_DESCRIPTION)>;
19010pub type sk_ACCESS_DESCRIPTION_copy_func = ::core::option::Option<
19011    unsafe extern "C" fn(arg1: *const ACCESS_DESCRIPTION) -> *mut ACCESS_DESCRIPTION,
19012>;
19013pub type sk_ACCESS_DESCRIPTION_cmp_func = ::core::option::Option<
19014    unsafe extern "C" fn(
19015        arg1: *const *const ACCESS_DESCRIPTION,
19016        arg2: *const *const ACCESS_DESCRIPTION,
19017    ) -> ::core::ffi::c_int,
19018>;
19019pub type sk_ACCESS_DESCRIPTION_delete_if_func = ::core::option::Option<
19020    unsafe extern "C" fn(
19021        arg1: *mut ACCESS_DESCRIPTION,
19022        arg2: *mut ::core::ffi::c_void,
19023    ) -> ::core::ffi::c_int,
19024>;
19025unsafe extern "C" {
19026    #[link_name = "sk_ACCESS_DESCRIPTION_call_free_func__extern"]
19027    pub fn sk_ACCESS_DESCRIPTION_call_free_func(
19028        free_func: OPENSSL_sk_free_func,
19029        ptr: *mut ::core::ffi::c_void,
19030    );
19031}
19032unsafe extern "C" {
19033    #[link_name = "sk_ACCESS_DESCRIPTION_call_copy_func__extern"]
19034    pub fn sk_ACCESS_DESCRIPTION_call_copy_func(
19035        copy_func: OPENSSL_sk_copy_func,
19036        ptr: *const ::core::ffi::c_void,
19037    ) -> *mut ::core::ffi::c_void;
19038}
19039unsafe extern "C" {
19040    #[link_name = "sk_ACCESS_DESCRIPTION_call_cmp_func__extern"]
19041    pub fn sk_ACCESS_DESCRIPTION_call_cmp_func(
19042        cmp_func: OPENSSL_sk_cmp_func,
19043        a: *const ::core::ffi::c_void,
19044        b: *const ::core::ffi::c_void,
19045    ) -> ::core::ffi::c_int;
19046}
19047unsafe extern "C" {
19048    #[link_name = "sk_ACCESS_DESCRIPTION_call_delete_if_func__extern"]
19049    pub fn sk_ACCESS_DESCRIPTION_call_delete_if_func(
19050        func: OPENSSL_sk_delete_if_func,
19051        obj: *mut ::core::ffi::c_void,
19052        data: *mut ::core::ffi::c_void,
19053    ) -> ::core::ffi::c_int;
19054}
19055unsafe extern "C" {
19056    #[link_name = "sk_ACCESS_DESCRIPTION_new__extern"]
19057    pub fn sk_ACCESS_DESCRIPTION_new(
19058        comp: sk_ACCESS_DESCRIPTION_cmp_func,
19059    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19060}
19061unsafe extern "C" {
19062    #[link_name = "sk_ACCESS_DESCRIPTION_new_null__extern"]
19063    pub fn sk_ACCESS_DESCRIPTION_new_null() -> *mut stack_st_ACCESS_DESCRIPTION;
19064}
19065unsafe extern "C" {
19066    #[link_name = "sk_ACCESS_DESCRIPTION_num__extern"]
19067    pub fn sk_ACCESS_DESCRIPTION_num(sk: *const stack_st_ACCESS_DESCRIPTION) -> usize;
19068}
19069unsafe extern "C" {
19070    #[link_name = "sk_ACCESS_DESCRIPTION_zero__extern"]
19071    pub fn sk_ACCESS_DESCRIPTION_zero(sk: *mut stack_st_ACCESS_DESCRIPTION);
19072}
19073unsafe extern "C" {
19074    #[link_name = "sk_ACCESS_DESCRIPTION_value__extern"]
19075    pub fn sk_ACCESS_DESCRIPTION_value(
19076        sk: *const stack_st_ACCESS_DESCRIPTION,
19077        i: usize,
19078    ) -> *mut ACCESS_DESCRIPTION;
19079}
19080unsafe extern "C" {
19081    #[link_name = "sk_ACCESS_DESCRIPTION_set__extern"]
19082    pub fn sk_ACCESS_DESCRIPTION_set(
19083        sk: *mut stack_st_ACCESS_DESCRIPTION,
19084        i: usize,
19085        p: *mut ACCESS_DESCRIPTION,
19086    ) -> *mut ACCESS_DESCRIPTION;
19087}
19088unsafe extern "C" {
19089    #[link_name = "sk_ACCESS_DESCRIPTION_free__extern"]
19090    pub fn sk_ACCESS_DESCRIPTION_free(sk: *mut stack_st_ACCESS_DESCRIPTION);
19091}
19092unsafe extern "C" {
19093    #[link_name = "sk_ACCESS_DESCRIPTION_pop_free__extern"]
19094    pub fn sk_ACCESS_DESCRIPTION_pop_free(
19095        sk: *mut stack_st_ACCESS_DESCRIPTION,
19096        free_func: sk_ACCESS_DESCRIPTION_free_func,
19097    );
19098}
19099unsafe extern "C" {
19100    #[link_name = "sk_ACCESS_DESCRIPTION_insert__extern"]
19101    pub fn sk_ACCESS_DESCRIPTION_insert(
19102        sk: *mut stack_st_ACCESS_DESCRIPTION,
19103        p: *mut ACCESS_DESCRIPTION,
19104        where_: usize,
19105    ) -> usize;
19106}
19107unsafe extern "C" {
19108    #[link_name = "sk_ACCESS_DESCRIPTION_delete__extern"]
19109    pub fn sk_ACCESS_DESCRIPTION_delete(
19110        sk: *mut stack_st_ACCESS_DESCRIPTION,
19111        where_: usize,
19112    ) -> *mut ACCESS_DESCRIPTION;
19113}
19114unsafe extern "C" {
19115    #[link_name = "sk_ACCESS_DESCRIPTION_delete_ptr__extern"]
19116    pub fn sk_ACCESS_DESCRIPTION_delete_ptr(
19117        sk: *mut stack_st_ACCESS_DESCRIPTION,
19118        p: *const ACCESS_DESCRIPTION,
19119    ) -> *mut ACCESS_DESCRIPTION;
19120}
19121unsafe extern "C" {
19122    #[link_name = "sk_ACCESS_DESCRIPTION_delete_if__extern"]
19123    pub fn sk_ACCESS_DESCRIPTION_delete_if(
19124        sk: *mut stack_st_ACCESS_DESCRIPTION,
19125        func: sk_ACCESS_DESCRIPTION_delete_if_func,
19126        data: *mut ::core::ffi::c_void,
19127    );
19128}
19129unsafe extern "C" {
19130    #[link_name = "sk_ACCESS_DESCRIPTION_find__extern"]
19131    pub fn sk_ACCESS_DESCRIPTION_find(
19132        sk: *const stack_st_ACCESS_DESCRIPTION,
19133        out_index: *mut usize,
19134        p: *const ACCESS_DESCRIPTION,
19135    ) -> ::core::ffi::c_int;
19136}
19137unsafe extern "C" {
19138    #[link_name = "sk_ACCESS_DESCRIPTION_shift__extern"]
19139    pub fn sk_ACCESS_DESCRIPTION_shift(
19140        sk: *mut stack_st_ACCESS_DESCRIPTION,
19141    ) -> *mut ACCESS_DESCRIPTION;
19142}
19143unsafe extern "C" {
19144    #[link_name = "sk_ACCESS_DESCRIPTION_push__extern"]
19145    pub fn sk_ACCESS_DESCRIPTION_push(
19146        sk: *mut stack_st_ACCESS_DESCRIPTION,
19147        p: *mut ACCESS_DESCRIPTION,
19148    ) -> usize;
19149}
19150unsafe extern "C" {
19151    #[link_name = "sk_ACCESS_DESCRIPTION_pop__extern"]
19152    pub fn sk_ACCESS_DESCRIPTION_pop(
19153        sk: *mut stack_st_ACCESS_DESCRIPTION,
19154    ) -> *mut ACCESS_DESCRIPTION;
19155}
19156unsafe extern "C" {
19157    #[link_name = "sk_ACCESS_DESCRIPTION_dup__extern"]
19158    pub fn sk_ACCESS_DESCRIPTION_dup(
19159        sk: *const stack_st_ACCESS_DESCRIPTION,
19160    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19161}
19162unsafe extern "C" {
19163    #[link_name = "sk_ACCESS_DESCRIPTION_sort__extern"]
19164    pub fn sk_ACCESS_DESCRIPTION_sort(sk: *mut stack_st_ACCESS_DESCRIPTION);
19165}
19166unsafe extern "C" {
19167    #[link_name = "sk_ACCESS_DESCRIPTION_sort_and_dedup__extern"]
19168    pub fn sk_ACCESS_DESCRIPTION_sort_and_dedup(
19169        sk: *mut stack_st_ACCESS_DESCRIPTION,
19170        free_func: sk_ACCESS_DESCRIPTION_free_func,
19171    );
19172}
19173unsafe extern "C" {
19174    #[link_name = "sk_ACCESS_DESCRIPTION_is_sorted__extern"]
19175    pub fn sk_ACCESS_DESCRIPTION_is_sorted(
19176        sk: *const stack_st_ACCESS_DESCRIPTION,
19177    ) -> ::core::ffi::c_int;
19178}
19179unsafe extern "C" {
19180    #[link_name = "sk_ACCESS_DESCRIPTION_set_cmp_func__extern"]
19181    pub fn sk_ACCESS_DESCRIPTION_set_cmp_func(
19182        sk: *mut stack_st_ACCESS_DESCRIPTION,
19183        comp: sk_ACCESS_DESCRIPTION_cmp_func,
19184    ) -> sk_ACCESS_DESCRIPTION_cmp_func;
19185}
19186unsafe extern "C" {
19187    #[link_name = "sk_ACCESS_DESCRIPTION_deep_copy__extern"]
19188    pub fn sk_ACCESS_DESCRIPTION_deep_copy(
19189        sk: *const stack_st_ACCESS_DESCRIPTION,
19190        copy_func: sk_ACCESS_DESCRIPTION_copy_func,
19191        free_func: sk_ACCESS_DESCRIPTION_free_func,
19192    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19193}
19194unsafe extern "C" {
19195    pub fn ACCESS_DESCRIPTION_new() -> *mut ACCESS_DESCRIPTION;
19196}
19197unsafe extern "C" {
19198    pub fn ACCESS_DESCRIPTION_free(desc: *mut ACCESS_DESCRIPTION);
19199}
19200pub type AUTHORITY_INFO_ACCESS = stack_st_ACCESS_DESCRIPTION;
19201unsafe extern "C" {
19202    pub static AUTHORITY_INFO_ACCESS_it: ASN1_ITEM;
19203}
19204unsafe extern "C" {
19205    pub fn AUTHORITY_INFO_ACCESS_new() -> *mut AUTHORITY_INFO_ACCESS;
19206}
19207unsafe extern "C" {
19208    pub fn AUTHORITY_INFO_ACCESS_free(aia: *mut AUTHORITY_INFO_ACCESS);
19209}
19210unsafe extern "C" {
19211    pub fn d2i_AUTHORITY_INFO_ACCESS(
19212        out: *mut *mut AUTHORITY_INFO_ACCESS,
19213        inp: *mut *const u8,
19214        len: ::core::ffi::c_long,
19215    ) -> *mut AUTHORITY_INFO_ACCESS;
19216}
19217unsafe extern "C" {
19218    pub fn i2d_AUTHORITY_INFO_ACCESS(
19219        aia: *const AUTHORITY_INFO_ACCESS,
19220        outp: *mut *mut u8,
19221    ) -> ::core::ffi::c_int;
19222}
19223#[repr(C)]
19224#[derive(Copy, Clone)]
19225pub struct DIST_POINT_NAME_st {
19226    pub type_: ::core::ffi::c_int,
19227    pub name: DIST_POINT_NAME_st__bindgen_ty_1,
19228    pub dpname: *mut X509_NAME,
19229}
19230#[repr(C)]
19231#[derive(Copy, Clone)]
19232pub union DIST_POINT_NAME_st__bindgen_ty_1 {
19233    pub fullname: *mut GENERAL_NAMES,
19234    pub relativename: *mut stack_st_X509_NAME_ENTRY,
19235}
19236pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
19237unsafe extern "C" {
19238    pub fn DIST_POINT_NAME_new() -> *mut DIST_POINT_NAME;
19239}
19240unsafe extern "C" {
19241    pub fn DIST_POINT_NAME_free(name: *mut DIST_POINT_NAME);
19242}
19243#[repr(C)]
19244#[derive(Debug, Copy, Clone)]
19245pub struct DIST_POINT_st {
19246    pub distpoint: *mut DIST_POINT_NAME,
19247    pub reasons: *mut ASN1_BIT_STRING,
19248    pub CRLissuer: *mut GENERAL_NAMES,
19249}
19250#[repr(C)]
19251#[derive(Debug)]
19252pub struct stack_st_DIST_POINT {
19253    _unused: [u8; 0],
19254}
19255pub type sk_DIST_POINT_free_func =
19256    ::core::option::Option<unsafe extern "C" fn(arg1: *mut DIST_POINT)>;
19257pub type sk_DIST_POINT_copy_func =
19258    ::core::option::Option<unsafe extern "C" fn(arg1: *const DIST_POINT) -> *mut DIST_POINT>;
19259pub type sk_DIST_POINT_cmp_func = ::core::option::Option<
19260    unsafe extern "C" fn(
19261        arg1: *const *const DIST_POINT,
19262        arg2: *const *const DIST_POINT,
19263    ) -> ::core::ffi::c_int,
19264>;
19265pub type sk_DIST_POINT_delete_if_func = ::core::option::Option<
19266    unsafe extern "C" fn(
19267        arg1: *mut DIST_POINT,
19268        arg2: *mut ::core::ffi::c_void,
19269    ) -> ::core::ffi::c_int,
19270>;
19271unsafe extern "C" {
19272    #[link_name = "sk_DIST_POINT_call_free_func__extern"]
19273    pub fn sk_DIST_POINT_call_free_func(
19274        free_func: OPENSSL_sk_free_func,
19275        ptr: *mut ::core::ffi::c_void,
19276    );
19277}
19278unsafe extern "C" {
19279    #[link_name = "sk_DIST_POINT_call_copy_func__extern"]
19280    pub fn sk_DIST_POINT_call_copy_func(
19281        copy_func: OPENSSL_sk_copy_func,
19282        ptr: *const ::core::ffi::c_void,
19283    ) -> *mut ::core::ffi::c_void;
19284}
19285unsafe extern "C" {
19286    #[link_name = "sk_DIST_POINT_call_cmp_func__extern"]
19287    pub fn sk_DIST_POINT_call_cmp_func(
19288        cmp_func: OPENSSL_sk_cmp_func,
19289        a: *const ::core::ffi::c_void,
19290        b: *const ::core::ffi::c_void,
19291    ) -> ::core::ffi::c_int;
19292}
19293unsafe extern "C" {
19294    #[link_name = "sk_DIST_POINT_call_delete_if_func__extern"]
19295    pub fn sk_DIST_POINT_call_delete_if_func(
19296        func: OPENSSL_sk_delete_if_func,
19297        obj: *mut ::core::ffi::c_void,
19298        data: *mut ::core::ffi::c_void,
19299    ) -> ::core::ffi::c_int;
19300}
19301unsafe extern "C" {
19302    #[link_name = "sk_DIST_POINT_new__extern"]
19303    pub fn sk_DIST_POINT_new(comp: sk_DIST_POINT_cmp_func) -> *mut stack_st_DIST_POINT;
19304}
19305unsafe extern "C" {
19306    #[link_name = "sk_DIST_POINT_new_null__extern"]
19307    pub fn sk_DIST_POINT_new_null() -> *mut stack_st_DIST_POINT;
19308}
19309unsafe extern "C" {
19310    #[link_name = "sk_DIST_POINT_num__extern"]
19311    pub fn sk_DIST_POINT_num(sk: *const stack_st_DIST_POINT) -> usize;
19312}
19313unsafe extern "C" {
19314    #[link_name = "sk_DIST_POINT_zero__extern"]
19315    pub fn sk_DIST_POINT_zero(sk: *mut stack_st_DIST_POINT);
19316}
19317unsafe extern "C" {
19318    #[link_name = "sk_DIST_POINT_value__extern"]
19319    pub fn sk_DIST_POINT_value(sk: *const stack_st_DIST_POINT, i: usize) -> *mut DIST_POINT;
19320}
19321unsafe extern "C" {
19322    #[link_name = "sk_DIST_POINT_set__extern"]
19323    pub fn sk_DIST_POINT_set(
19324        sk: *mut stack_st_DIST_POINT,
19325        i: usize,
19326        p: *mut DIST_POINT,
19327    ) -> *mut DIST_POINT;
19328}
19329unsafe extern "C" {
19330    #[link_name = "sk_DIST_POINT_free__extern"]
19331    pub fn sk_DIST_POINT_free(sk: *mut stack_st_DIST_POINT);
19332}
19333unsafe extern "C" {
19334    #[link_name = "sk_DIST_POINT_pop_free__extern"]
19335    pub fn sk_DIST_POINT_pop_free(sk: *mut stack_st_DIST_POINT, free_func: sk_DIST_POINT_free_func);
19336}
19337unsafe extern "C" {
19338    #[link_name = "sk_DIST_POINT_insert__extern"]
19339    pub fn sk_DIST_POINT_insert(
19340        sk: *mut stack_st_DIST_POINT,
19341        p: *mut DIST_POINT,
19342        where_: usize,
19343    ) -> usize;
19344}
19345unsafe extern "C" {
19346    #[link_name = "sk_DIST_POINT_delete__extern"]
19347    pub fn sk_DIST_POINT_delete(sk: *mut stack_st_DIST_POINT, where_: usize) -> *mut DIST_POINT;
19348}
19349unsafe extern "C" {
19350    #[link_name = "sk_DIST_POINT_delete_ptr__extern"]
19351    pub fn sk_DIST_POINT_delete_ptr(
19352        sk: *mut stack_st_DIST_POINT,
19353        p: *const DIST_POINT,
19354    ) -> *mut DIST_POINT;
19355}
19356unsafe extern "C" {
19357    #[link_name = "sk_DIST_POINT_delete_if__extern"]
19358    pub fn sk_DIST_POINT_delete_if(
19359        sk: *mut stack_st_DIST_POINT,
19360        func: sk_DIST_POINT_delete_if_func,
19361        data: *mut ::core::ffi::c_void,
19362    );
19363}
19364unsafe extern "C" {
19365    #[link_name = "sk_DIST_POINT_find__extern"]
19366    pub fn sk_DIST_POINT_find(
19367        sk: *const stack_st_DIST_POINT,
19368        out_index: *mut usize,
19369        p: *const DIST_POINT,
19370    ) -> ::core::ffi::c_int;
19371}
19372unsafe extern "C" {
19373    #[link_name = "sk_DIST_POINT_shift__extern"]
19374    pub fn sk_DIST_POINT_shift(sk: *mut stack_st_DIST_POINT) -> *mut DIST_POINT;
19375}
19376unsafe extern "C" {
19377    #[link_name = "sk_DIST_POINT_push__extern"]
19378    pub fn sk_DIST_POINT_push(sk: *mut stack_st_DIST_POINT, p: *mut DIST_POINT) -> usize;
19379}
19380unsafe extern "C" {
19381    #[link_name = "sk_DIST_POINT_pop__extern"]
19382    pub fn sk_DIST_POINT_pop(sk: *mut stack_st_DIST_POINT) -> *mut DIST_POINT;
19383}
19384unsafe extern "C" {
19385    #[link_name = "sk_DIST_POINT_dup__extern"]
19386    pub fn sk_DIST_POINT_dup(sk: *const stack_st_DIST_POINT) -> *mut stack_st_DIST_POINT;
19387}
19388unsafe extern "C" {
19389    #[link_name = "sk_DIST_POINT_sort__extern"]
19390    pub fn sk_DIST_POINT_sort(sk: *mut stack_st_DIST_POINT);
19391}
19392unsafe extern "C" {
19393    #[link_name = "sk_DIST_POINT_sort_and_dedup__extern"]
19394    pub fn sk_DIST_POINT_sort_and_dedup(
19395        sk: *mut stack_st_DIST_POINT,
19396        free_func: sk_DIST_POINT_free_func,
19397    );
19398}
19399unsafe extern "C" {
19400    #[link_name = "sk_DIST_POINT_is_sorted__extern"]
19401    pub fn sk_DIST_POINT_is_sorted(sk: *const stack_st_DIST_POINT) -> ::core::ffi::c_int;
19402}
19403unsafe extern "C" {
19404    #[link_name = "sk_DIST_POINT_set_cmp_func__extern"]
19405    pub fn sk_DIST_POINT_set_cmp_func(
19406        sk: *mut stack_st_DIST_POINT,
19407        comp: sk_DIST_POINT_cmp_func,
19408    ) -> sk_DIST_POINT_cmp_func;
19409}
19410unsafe extern "C" {
19411    #[link_name = "sk_DIST_POINT_deep_copy__extern"]
19412    pub fn sk_DIST_POINT_deep_copy(
19413        sk: *const stack_st_DIST_POINT,
19414        copy_func: sk_DIST_POINT_copy_func,
19415        free_func: sk_DIST_POINT_free_func,
19416    ) -> *mut stack_st_DIST_POINT;
19417}
19418unsafe extern "C" {
19419    pub fn DIST_POINT_new() -> *mut DIST_POINT;
19420}
19421unsafe extern "C" {
19422    pub fn DIST_POINT_free(dp: *mut DIST_POINT);
19423}
19424pub type CRL_DIST_POINTS = stack_st_DIST_POINT;
19425unsafe extern "C" {
19426    pub static CRL_DIST_POINTS_it: ASN1_ITEM;
19427}
19428unsafe extern "C" {
19429    pub fn CRL_DIST_POINTS_new() -> *mut CRL_DIST_POINTS;
19430}
19431unsafe extern "C" {
19432    pub fn CRL_DIST_POINTS_free(crldp: *mut CRL_DIST_POINTS);
19433}
19434unsafe extern "C" {
19435    pub fn d2i_CRL_DIST_POINTS(
19436        out: *mut *mut CRL_DIST_POINTS,
19437        inp: *mut *const u8,
19438        len: ::core::ffi::c_long,
19439    ) -> *mut CRL_DIST_POINTS;
19440}
19441unsafe extern "C" {
19442    pub fn i2d_CRL_DIST_POINTS(
19443        crldp: *const CRL_DIST_POINTS,
19444        outp: *mut *mut u8,
19445    ) -> ::core::ffi::c_int;
19446}
19447#[repr(C)]
19448#[derive(Debug, Copy, Clone)]
19449pub struct ISSUING_DIST_POINT_st {
19450    pub distpoint: *mut DIST_POINT_NAME,
19451    pub onlyuser: ASN1_BOOLEAN,
19452    pub onlyCA: ASN1_BOOLEAN,
19453    pub onlysomereasons: *mut ASN1_BIT_STRING,
19454    pub indirectCRL: ASN1_BOOLEAN,
19455    pub onlyattr: ASN1_BOOLEAN,
19456}
19457unsafe extern "C" {
19458    pub static ISSUING_DIST_POINT_it: ASN1_ITEM;
19459}
19460unsafe extern "C" {
19461    pub fn ISSUING_DIST_POINT_new() -> *mut ISSUING_DIST_POINT;
19462}
19463unsafe extern "C" {
19464    pub fn ISSUING_DIST_POINT_free(idp: *mut ISSUING_DIST_POINT);
19465}
19466unsafe extern "C" {
19467    pub fn d2i_ISSUING_DIST_POINT(
19468        out: *mut *mut ISSUING_DIST_POINT,
19469        inp: *mut *const u8,
19470        len: ::core::ffi::c_long,
19471    ) -> *mut ISSUING_DIST_POINT;
19472}
19473unsafe extern "C" {
19474    pub fn i2d_ISSUING_DIST_POINT(
19475        idp: *const ISSUING_DIST_POINT,
19476        outp: *mut *mut u8,
19477    ) -> ::core::ffi::c_int;
19478}
19479#[repr(C)]
19480#[derive(Debug, Copy, Clone)]
19481pub struct NOTICEREF_st {
19482    pub organization: *mut ASN1_STRING,
19483    pub noticenos: *mut stack_st_ASN1_INTEGER,
19484}
19485pub type NOTICEREF = NOTICEREF_st;
19486unsafe extern "C" {
19487    pub fn NOTICEREF_new() -> *mut NOTICEREF;
19488}
19489unsafe extern "C" {
19490    pub fn NOTICEREF_free(ref_: *mut NOTICEREF);
19491}
19492#[repr(C)]
19493#[derive(Debug, Copy, Clone)]
19494pub struct USERNOTICE_st {
19495    pub noticeref: *mut NOTICEREF,
19496    pub exptext: *mut ASN1_STRING,
19497}
19498pub type USERNOTICE = USERNOTICE_st;
19499unsafe extern "C" {
19500    pub fn USERNOTICE_new() -> *mut USERNOTICE;
19501}
19502unsafe extern "C" {
19503    pub fn USERNOTICE_free(notice: *mut USERNOTICE);
19504}
19505#[repr(C)]
19506#[derive(Copy, Clone)]
19507pub struct POLICYQUALINFO_st {
19508    pub pqualid: *mut ASN1_OBJECT,
19509    pub d: POLICYQUALINFO_st__bindgen_ty_1,
19510}
19511#[repr(C)]
19512#[derive(Copy, Clone)]
19513pub union POLICYQUALINFO_st__bindgen_ty_1 {
19514    pub cpsuri: *mut ASN1_IA5STRING,
19515    pub usernotice: *mut USERNOTICE,
19516    pub other: *mut ASN1_TYPE,
19517}
19518pub type POLICYQUALINFO = POLICYQUALINFO_st;
19519#[repr(C)]
19520#[derive(Debug)]
19521pub struct stack_st_POLICYQUALINFO {
19522    _unused: [u8; 0],
19523}
19524pub type sk_POLICYQUALINFO_free_func =
19525    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICYQUALINFO)>;
19526pub type sk_POLICYQUALINFO_copy_func = ::core::option::Option<
19527    unsafe extern "C" fn(arg1: *const POLICYQUALINFO) -> *mut POLICYQUALINFO,
19528>;
19529pub type sk_POLICYQUALINFO_cmp_func = ::core::option::Option<
19530    unsafe extern "C" fn(
19531        arg1: *const *const POLICYQUALINFO,
19532        arg2: *const *const POLICYQUALINFO,
19533    ) -> ::core::ffi::c_int,
19534>;
19535pub type sk_POLICYQUALINFO_delete_if_func = ::core::option::Option<
19536    unsafe extern "C" fn(
19537        arg1: *mut POLICYQUALINFO,
19538        arg2: *mut ::core::ffi::c_void,
19539    ) -> ::core::ffi::c_int,
19540>;
19541unsafe extern "C" {
19542    #[link_name = "sk_POLICYQUALINFO_call_free_func__extern"]
19543    pub fn sk_POLICYQUALINFO_call_free_func(
19544        free_func: OPENSSL_sk_free_func,
19545        ptr: *mut ::core::ffi::c_void,
19546    );
19547}
19548unsafe extern "C" {
19549    #[link_name = "sk_POLICYQUALINFO_call_copy_func__extern"]
19550    pub fn sk_POLICYQUALINFO_call_copy_func(
19551        copy_func: OPENSSL_sk_copy_func,
19552        ptr: *const ::core::ffi::c_void,
19553    ) -> *mut ::core::ffi::c_void;
19554}
19555unsafe extern "C" {
19556    #[link_name = "sk_POLICYQUALINFO_call_cmp_func__extern"]
19557    pub fn sk_POLICYQUALINFO_call_cmp_func(
19558        cmp_func: OPENSSL_sk_cmp_func,
19559        a: *const ::core::ffi::c_void,
19560        b: *const ::core::ffi::c_void,
19561    ) -> ::core::ffi::c_int;
19562}
19563unsafe extern "C" {
19564    #[link_name = "sk_POLICYQUALINFO_call_delete_if_func__extern"]
19565    pub fn sk_POLICYQUALINFO_call_delete_if_func(
19566        func: OPENSSL_sk_delete_if_func,
19567        obj: *mut ::core::ffi::c_void,
19568        data: *mut ::core::ffi::c_void,
19569    ) -> ::core::ffi::c_int;
19570}
19571unsafe extern "C" {
19572    #[link_name = "sk_POLICYQUALINFO_new__extern"]
19573    pub fn sk_POLICYQUALINFO_new(comp: sk_POLICYQUALINFO_cmp_func) -> *mut stack_st_POLICYQUALINFO;
19574}
19575unsafe extern "C" {
19576    #[link_name = "sk_POLICYQUALINFO_new_null__extern"]
19577    pub fn sk_POLICYQUALINFO_new_null() -> *mut stack_st_POLICYQUALINFO;
19578}
19579unsafe extern "C" {
19580    #[link_name = "sk_POLICYQUALINFO_num__extern"]
19581    pub fn sk_POLICYQUALINFO_num(sk: *const stack_st_POLICYQUALINFO) -> usize;
19582}
19583unsafe extern "C" {
19584    #[link_name = "sk_POLICYQUALINFO_zero__extern"]
19585    pub fn sk_POLICYQUALINFO_zero(sk: *mut stack_st_POLICYQUALINFO);
19586}
19587unsafe extern "C" {
19588    #[link_name = "sk_POLICYQUALINFO_value__extern"]
19589    pub fn sk_POLICYQUALINFO_value(
19590        sk: *const stack_st_POLICYQUALINFO,
19591        i: usize,
19592    ) -> *mut POLICYQUALINFO;
19593}
19594unsafe extern "C" {
19595    #[link_name = "sk_POLICYQUALINFO_set__extern"]
19596    pub fn sk_POLICYQUALINFO_set(
19597        sk: *mut stack_st_POLICYQUALINFO,
19598        i: usize,
19599        p: *mut POLICYQUALINFO,
19600    ) -> *mut POLICYQUALINFO;
19601}
19602unsafe extern "C" {
19603    #[link_name = "sk_POLICYQUALINFO_free__extern"]
19604    pub fn sk_POLICYQUALINFO_free(sk: *mut stack_st_POLICYQUALINFO);
19605}
19606unsafe extern "C" {
19607    #[link_name = "sk_POLICYQUALINFO_pop_free__extern"]
19608    pub fn sk_POLICYQUALINFO_pop_free(
19609        sk: *mut stack_st_POLICYQUALINFO,
19610        free_func: sk_POLICYQUALINFO_free_func,
19611    );
19612}
19613unsafe extern "C" {
19614    #[link_name = "sk_POLICYQUALINFO_insert__extern"]
19615    pub fn sk_POLICYQUALINFO_insert(
19616        sk: *mut stack_st_POLICYQUALINFO,
19617        p: *mut POLICYQUALINFO,
19618        where_: usize,
19619    ) -> usize;
19620}
19621unsafe extern "C" {
19622    #[link_name = "sk_POLICYQUALINFO_delete__extern"]
19623    pub fn sk_POLICYQUALINFO_delete(
19624        sk: *mut stack_st_POLICYQUALINFO,
19625        where_: usize,
19626    ) -> *mut POLICYQUALINFO;
19627}
19628unsafe extern "C" {
19629    #[link_name = "sk_POLICYQUALINFO_delete_ptr__extern"]
19630    pub fn sk_POLICYQUALINFO_delete_ptr(
19631        sk: *mut stack_st_POLICYQUALINFO,
19632        p: *const POLICYQUALINFO,
19633    ) -> *mut POLICYQUALINFO;
19634}
19635unsafe extern "C" {
19636    #[link_name = "sk_POLICYQUALINFO_delete_if__extern"]
19637    pub fn sk_POLICYQUALINFO_delete_if(
19638        sk: *mut stack_st_POLICYQUALINFO,
19639        func: sk_POLICYQUALINFO_delete_if_func,
19640        data: *mut ::core::ffi::c_void,
19641    );
19642}
19643unsafe extern "C" {
19644    #[link_name = "sk_POLICYQUALINFO_find__extern"]
19645    pub fn sk_POLICYQUALINFO_find(
19646        sk: *const stack_st_POLICYQUALINFO,
19647        out_index: *mut usize,
19648        p: *const POLICYQUALINFO,
19649    ) -> ::core::ffi::c_int;
19650}
19651unsafe extern "C" {
19652    #[link_name = "sk_POLICYQUALINFO_shift__extern"]
19653    pub fn sk_POLICYQUALINFO_shift(sk: *mut stack_st_POLICYQUALINFO) -> *mut POLICYQUALINFO;
19654}
19655unsafe extern "C" {
19656    #[link_name = "sk_POLICYQUALINFO_push__extern"]
19657    pub fn sk_POLICYQUALINFO_push(
19658        sk: *mut stack_st_POLICYQUALINFO,
19659        p: *mut POLICYQUALINFO,
19660    ) -> usize;
19661}
19662unsafe extern "C" {
19663    #[link_name = "sk_POLICYQUALINFO_pop__extern"]
19664    pub fn sk_POLICYQUALINFO_pop(sk: *mut stack_st_POLICYQUALINFO) -> *mut POLICYQUALINFO;
19665}
19666unsafe extern "C" {
19667    #[link_name = "sk_POLICYQUALINFO_dup__extern"]
19668    pub fn sk_POLICYQUALINFO_dup(
19669        sk: *const stack_st_POLICYQUALINFO,
19670    ) -> *mut stack_st_POLICYQUALINFO;
19671}
19672unsafe extern "C" {
19673    #[link_name = "sk_POLICYQUALINFO_sort__extern"]
19674    pub fn sk_POLICYQUALINFO_sort(sk: *mut stack_st_POLICYQUALINFO);
19675}
19676unsafe extern "C" {
19677    #[link_name = "sk_POLICYQUALINFO_sort_and_dedup__extern"]
19678    pub fn sk_POLICYQUALINFO_sort_and_dedup(
19679        sk: *mut stack_st_POLICYQUALINFO,
19680        free_func: sk_POLICYQUALINFO_free_func,
19681    );
19682}
19683unsafe extern "C" {
19684    #[link_name = "sk_POLICYQUALINFO_is_sorted__extern"]
19685    pub fn sk_POLICYQUALINFO_is_sorted(sk: *const stack_st_POLICYQUALINFO) -> ::core::ffi::c_int;
19686}
19687unsafe extern "C" {
19688    #[link_name = "sk_POLICYQUALINFO_set_cmp_func__extern"]
19689    pub fn sk_POLICYQUALINFO_set_cmp_func(
19690        sk: *mut stack_st_POLICYQUALINFO,
19691        comp: sk_POLICYQUALINFO_cmp_func,
19692    ) -> sk_POLICYQUALINFO_cmp_func;
19693}
19694unsafe extern "C" {
19695    #[link_name = "sk_POLICYQUALINFO_deep_copy__extern"]
19696    pub fn sk_POLICYQUALINFO_deep_copy(
19697        sk: *const stack_st_POLICYQUALINFO,
19698        copy_func: sk_POLICYQUALINFO_copy_func,
19699        free_func: sk_POLICYQUALINFO_free_func,
19700    ) -> *mut stack_st_POLICYQUALINFO;
19701}
19702unsafe extern "C" {
19703    pub fn POLICYQUALINFO_new() -> *mut POLICYQUALINFO;
19704}
19705unsafe extern "C" {
19706    pub fn POLICYQUALINFO_free(info: *mut POLICYQUALINFO);
19707}
19708#[repr(C)]
19709#[derive(Debug, Copy, Clone)]
19710pub struct POLICYINFO_st {
19711    pub policyid: *mut ASN1_OBJECT,
19712    pub qualifiers: *mut stack_st_POLICYQUALINFO,
19713}
19714pub type POLICYINFO = POLICYINFO_st;
19715#[repr(C)]
19716#[derive(Debug)]
19717pub struct stack_st_POLICYINFO {
19718    _unused: [u8; 0],
19719}
19720pub type sk_POLICYINFO_free_func =
19721    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICYINFO)>;
19722pub type sk_POLICYINFO_copy_func =
19723    ::core::option::Option<unsafe extern "C" fn(arg1: *const POLICYINFO) -> *mut POLICYINFO>;
19724pub type sk_POLICYINFO_cmp_func = ::core::option::Option<
19725    unsafe extern "C" fn(
19726        arg1: *const *const POLICYINFO,
19727        arg2: *const *const POLICYINFO,
19728    ) -> ::core::ffi::c_int,
19729>;
19730pub type sk_POLICYINFO_delete_if_func = ::core::option::Option<
19731    unsafe extern "C" fn(
19732        arg1: *mut POLICYINFO,
19733        arg2: *mut ::core::ffi::c_void,
19734    ) -> ::core::ffi::c_int,
19735>;
19736unsafe extern "C" {
19737    #[link_name = "sk_POLICYINFO_call_free_func__extern"]
19738    pub fn sk_POLICYINFO_call_free_func(
19739        free_func: OPENSSL_sk_free_func,
19740        ptr: *mut ::core::ffi::c_void,
19741    );
19742}
19743unsafe extern "C" {
19744    #[link_name = "sk_POLICYINFO_call_copy_func__extern"]
19745    pub fn sk_POLICYINFO_call_copy_func(
19746        copy_func: OPENSSL_sk_copy_func,
19747        ptr: *const ::core::ffi::c_void,
19748    ) -> *mut ::core::ffi::c_void;
19749}
19750unsafe extern "C" {
19751    #[link_name = "sk_POLICYINFO_call_cmp_func__extern"]
19752    pub fn sk_POLICYINFO_call_cmp_func(
19753        cmp_func: OPENSSL_sk_cmp_func,
19754        a: *const ::core::ffi::c_void,
19755        b: *const ::core::ffi::c_void,
19756    ) -> ::core::ffi::c_int;
19757}
19758unsafe extern "C" {
19759    #[link_name = "sk_POLICYINFO_call_delete_if_func__extern"]
19760    pub fn sk_POLICYINFO_call_delete_if_func(
19761        func: OPENSSL_sk_delete_if_func,
19762        obj: *mut ::core::ffi::c_void,
19763        data: *mut ::core::ffi::c_void,
19764    ) -> ::core::ffi::c_int;
19765}
19766unsafe extern "C" {
19767    #[link_name = "sk_POLICYINFO_new__extern"]
19768    pub fn sk_POLICYINFO_new(comp: sk_POLICYINFO_cmp_func) -> *mut stack_st_POLICYINFO;
19769}
19770unsafe extern "C" {
19771    #[link_name = "sk_POLICYINFO_new_null__extern"]
19772    pub fn sk_POLICYINFO_new_null() -> *mut stack_st_POLICYINFO;
19773}
19774unsafe extern "C" {
19775    #[link_name = "sk_POLICYINFO_num__extern"]
19776    pub fn sk_POLICYINFO_num(sk: *const stack_st_POLICYINFO) -> usize;
19777}
19778unsafe extern "C" {
19779    #[link_name = "sk_POLICYINFO_zero__extern"]
19780    pub fn sk_POLICYINFO_zero(sk: *mut stack_st_POLICYINFO);
19781}
19782unsafe extern "C" {
19783    #[link_name = "sk_POLICYINFO_value__extern"]
19784    pub fn sk_POLICYINFO_value(sk: *const stack_st_POLICYINFO, i: usize) -> *mut POLICYINFO;
19785}
19786unsafe extern "C" {
19787    #[link_name = "sk_POLICYINFO_set__extern"]
19788    pub fn sk_POLICYINFO_set(
19789        sk: *mut stack_st_POLICYINFO,
19790        i: usize,
19791        p: *mut POLICYINFO,
19792    ) -> *mut POLICYINFO;
19793}
19794unsafe extern "C" {
19795    #[link_name = "sk_POLICYINFO_free__extern"]
19796    pub fn sk_POLICYINFO_free(sk: *mut stack_st_POLICYINFO);
19797}
19798unsafe extern "C" {
19799    #[link_name = "sk_POLICYINFO_pop_free__extern"]
19800    pub fn sk_POLICYINFO_pop_free(sk: *mut stack_st_POLICYINFO, free_func: sk_POLICYINFO_free_func);
19801}
19802unsafe extern "C" {
19803    #[link_name = "sk_POLICYINFO_insert__extern"]
19804    pub fn sk_POLICYINFO_insert(
19805        sk: *mut stack_st_POLICYINFO,
19806        p: *mut POLICYINFO,
19807        where_: usize,
19808    ) -> usize;
19809}
19810unsafe extern "C" {
19811    #[link_name = "sk_POLICYINFO_delete__extern"]
19812    pub fn sk_POLICYINFO_delete(sk: *mut stack_st_POLICYINFO, where_: usize) -> *mut POLICYINFO;
19813}
19814unsafe extern "C" {
19815    #[link_name = "sk_POLICYINFO_delete_ptr__extern"]
19816    pub fn sk_POLICYINFO_delete_ptr(
19817        sk: *mut stack_st_POLICYINFO,
19818        p: *const POLICYINFO,
19819    ) -> *mut POLICYINFO;
19820}
19821unsafe extern "C" {
19822    #[link_name = "sk_POLICYINFO_delete_if__extern"]
19823    pub fn sk_POLICYINFO_delete_if(
19824        sk: *mut stack_st_POLICYINFO,
19825        func: sk_POLICYINFO_delete_if_func,
19826        data: *mut ::core::ffi::c_void,
19827    );
19828}
19829unsafe extern "C" {
19830    #[link_name = "sk_POLICYINFO_find__extern"]
19831    pub fn sk_POLICYINFO_find(
19832        sk: *const stack_st_POLICYINFO,
19833        out_index: *mut usize,
19834        p: *const POLICYINFO,
19835    ) -> ::core::ffi::c_int;
19836}
19837unsafe extern "C" {
19838    #[link_name = "sk_POLICYINFO_shift__extern"]
19839    pub fn sk_POLICYINFO_shift(sk: *mut stack_st_POLICYINFO) -> *mut POLICYINFO;
19840}
19841unsafe extern "C" {
19842    #[link_name = "sk_POLICYINFO_push__extern"]
19843    pub fn sk_POLICYINFO_push(sk: *mut stack_st_POLICYINFO, p: *mut POLICYINFO) -> usize;
19844}
19845unsafe extern "C" {
19846    #[link_name = "sk_POLICYINFO_pop__extern"]
19847    pub fn sk_POLICYINFO_pop(sk: *mut stack_st_POLICYINFO) -> *mut POLICYINFO;
19848}
19849unsafe extern "C" {
19850    #[link_name = "sk_POLICYINFO_dup__extern"]
19851    pub fn sk_POLICYINFO_dup(sk: *const stack_st_POLICYINFO) -> *mut stack_st_POLICYINFO;
19852}
19853unsafe extern "C" {
19854    #[link_name = "sk_POLICYINFO_sort__extern"]
19855    pub fn sk_POLICYINFO_sort(sk: *mut stack_st_POLICYINFO);
19856}
19857unsafe extern "C" {
19858    #[link_name = "sk_POLICYINFO_sort_and_dedup__extern"]
19859    pub fn sk_POLICYINFO_sort_and_dedup(
19860        sk: *mut stack_st_POLICYINFO,
19861        free_func: sk_POLICYINFO_free_func,
19862    );
19863}
19864unsafe extern "C" {
19865    #[link_name = "sk_POLICYINFO_is_sorted__extern"]
19866    pub fn sk_POLICYINFO_is_sorted(sk: *const stack_st_POLICYINFO) -> ::core::ffi::c_int;
19867}
19868unsafe extern "C" {
19869    #[link_name = "sk_POLICYINFO_set_cmp_func__extern"]
19870    pub fn sk_POLICYINFO_set_cmp_func(
19871        sk: *mut stack_st_POLICYINFO,
19872        comp: sk_POLICYINFO_cmp_func,
19873    ) -> sk_POLICYINFO_cmp_func;
19874}
19875unsafe extern "C" {
19876    #[link_name = "sk_POLICYINFO_deep_copy__extern"]
19877    pub fn sk_POLICYINFO_deep_copy(
19878        sk: *const stack_st_POLICYINFO,
19879        copy_func: sk_POLICYINFO_copy_func,
19880        free_func: sk_POLICYINFO_free_func,
19881    ) -> *mut stack_st_POLICYINFO;
19882}
19883unsafe extern "C" {
19884    pub fn POLICYINFO_new() -> *mut POLICYINFO;
19885}
19886unsafe extern "C" {
19887    pub fn POLICYINFO_free(info: *mut POLICYINFO);
19888}
19889pub type CERTIFICATEPOLICIES = stack_st_POLICYINFO;
19890unsafe extern "C" {
19891    pub static CERTIFICATEPOLICIES_it: ASN1_ITEM;
19892}
19893unsafe extern "C" {
19894    pub fn CERTIFICATEPOLICIES_new() -> *mut CERTIFICATEPOLICIES;
19895}
19896unsafe extern "C" {
19897    pub fn CERTIFICATEPOLICIES_free(policies: *mut CERTIFICATEPOLICIES);
19898}
19899unsafe extern "C" {
19900    pub fn d2i_CERTIFICATEPOLICIES(
19901        out: *mut *mut CERTIFICATEPOLICIES,
19902        inp: *mut *const u8,
19903        len: ::core::ffi::c_long,
19904    ) -> *mut CERTIFICATEPOLICIES;
19905}
19906unsafe extern "C" {
19907    pub fn i2d_CERTIFICATEPOLICIES(
19908        policies: *const CERTIFICATEPOLICIES,
19909        outp: *mut *mut u8,
19910    ) -> ::core::ffi::c_int;
19911}
19912#[repr(C)]
19913#[derive(Debug, Copy, Clone)]
19914pub struct POLICY_MAPPING_st {
19915    pub issuerDomainPolicy: *mut ASN1_OBJECT,
19916    pub subjectDomainPolicy: *mut ASN1_OBJECT,
19917}
19918pub type POLICY_MAPPING = POLICY_MAPPING_st;
19919#[repr(C)]
19920#[derive(Debug)]
19921pub struct stack_st_POLICY_MAPPING {
19922    _unused: [u8; 0],
19923}
19924pub type sk_POLICY_MAPPING_free_func =
19925    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICY_MAPPING)>;
19926pub type sk_POLICY_MAPPING_copy_func = ::core::option::Option<
19927    unsafe extern "C" fn(arg1: *const POLICY_MAPPING) -> *mut POLICY_MAPPING,
19928>;
19929pub type sk_POLICY_MAPPING_cmp_func = ::core::option::Option<
19930    unsafe extern "C" fn(
19931        arg1: *const *const POLICY_MAPPING,
19932        arg2: *const *const POLICY_MAPPING,
19933    ) -> ::core::ffi::c_int,
19934>;
19935pub type sk_POLICY_MAPPING_delete_if_func = ::core::option::Option<
19936    unsafe extern "C" fn(
19937        arg1: *mut POLICY_MAPPING,
19938        arg2: *mut ::core::ffi::c_void,
19939    ) -> ::core::ffi::c_int,
19940>;
19941unsafe extern "C" {
19942    #[link_name = "sk_POLICY_MAPPING_call_free_func__extern"]
19943    pub fn sk_POLICY_MAPPING_call_free_func(
19944        free_func: OPENSSL_sk_free_func,
19945        ptr: *mut ::core::ffi::c_void,
19946    );
19947}
19948unsafe extern "C" {
19949    #[link_name = "sk_POLICY_MAPPING_call_copy_func__extern"]
19950    pub fn sk_POLICY_MAPPING_call_copy_func(
19951        copy_func: OPENSSL_sk_copy_func,
19952        ptr: *const ::core::ffi::c_void,
19953    ) -> *mut ::core::ffi::c_void;
19954}
19955unsafe extern "C" {
19956    #[link_name = "sk_POLICY_MAPPING_call_cmp_func__extern"]
19957    pub fn sk_POLICY_MAPPING_call_cmp_func(
19958        cmp_func: OPENSSL_sk_cmp_func,
19959        a: *const ::core::ffi::c_void,
19960        b: *const ::core::ffi::c_void,
19961    ) -> ::core::ffi::c_int;
19962}
19963unsafe extern "C" {
19964    #[link_name = "sk_POLICY_MAPPING_call_delete_if_func__extern"]
19965    pub fn sk_POLICY_MAPPING_call_delete_if_func(
19966        func: OPENSSL_sk_delete_if_func,
19967        obj: *mut ::core::ffi::c_void,
19968        data: *mut ::core::ffi::c_void,
19969    ) -> ::core::ffi::c_int;
19970}
19971unsafe extern "C" {
19972    #[link_name = "sk_POLICY_MAPPING_new__extern"]
19973    pub fn sk_POLICY_MAPPING_new(comp: sk_POLICY_MAPPING_cmp_func) -> *mut stack_st_POLICY_MAPPING;
19974}
19975unsafe extern "C" {
19976    #[link_name = "sk_POLICY_MAPPING_new_null__extern"]
19977    pub fn sk_POLICY_MAPPING_new_null() -> *mut stack_st_POLICY_MAPPING;
19978}
19979unsafe extern "C" {
19980    #[link_name = "sk_POLICY_MAPPING_num__extern"]
19981    pub fn sk_POLICY_MAPPING_num(sk: *const stack_st_POLICY_MAPPING) -> usize;
19982}
19983unsafe extern "C" {
19984    #[link_name = "sk_POLICY_MAPPING_zero__extern"]
19985    pub fn sk_POLICY_MAPPING_zero(sk: *mut stack_st_POLICY_MAPPING);
19986}
19987unsafe extern "C" {
19988    #[link_name = "sk_POLICY_MAPPING_value__extern"]
19989    pub fn sk_POLICY_MAPPING_value(
19990        sk: *const stack_st_POLICY_MAPPING,
19991        i: usize,
19992    ) -> *mut POLICY_MAPPING;
19993}
19994unsafe extern "C" {
19995    #[link_name = "sk_POLICY_MAPPING_set__extern"]
19996    pub fn sk_POLICY_MAPPING_set(
19997        sk: *mut stack_st_POLICY_MAPPING,
19998        i: usize,
19999        p: *mut POLICY_MAPPING,
20000    ) -> *mut POLICY_MAPPING;
20001}
20002unsafe extern "C" {
20003    #[link_name = "sk_POLICY_MAPPING_free__extern"]
20004    pub fn sk_POLICY_MAPPING_free(sk: *mut stack_st_POLICY_MAPPING);
20005}
20006unsafe extern "C" {
20007    #[link_name = "sk_POLICY_MAPPING_pop_free__extern"]
20008    pub fn sk_POLICY_MAPPING_pop_free(
20009        sk: *mut stack_st_POLICY_MAPPING,
20010        free_func: sk_POLICY_MAPPING_free_func,
20011    );
20012}
20013unsafe extern "C" {
20014    #[link_name = "sk_POLICY_MAPPING_insert__extern"]
20015    pub fn sk_POLICY_MAPPING_insert(
20016        sk: *mut stack_st_POLICY_MAPPING,
20017        p: *mut POLICY_MAPPING,
20018        where_: usize,
20019    ) -> usize;
20020}
20021unsafe extern "C" {
20022    #[link_name = "sk_POLICY_MAPPING_delete__extern"]
20023    pub fn sk_POLICY_MAPPING_delete(
20024        sk: *mut stack_st_POLICY_MAPPING,
20025        where_: usize,
20026    ) -> *mut POLICY_MAPPING;
20027}
20028unsafe extern "C" {
20029    #[link_name = "sk_POLICY_MAPPING_delete_ptr__extern"]
20030    pub fn sk_POLICY_MAPPING_delete_ptr(
20031        sk: *mut stack_st_POLICY_MAPPING,
20032        p: *const POLICY_MAPPING,
20033    ) -> *mut POLICY_MAPPING;
20034}
20035unsafe extern "C" {
20036    #[link_name = "sk_POLICY_MAPPING_delete_if__extern"]
20037    pub fn sk_POLICY_MAPPING_delete_if(
20038        sk: *mut stack_st_POLICY_MAPPING,
20039        func: sk_POLICY_MAPPING_delete_if_func,
20040        data: *mut ::core::ffi::c_void,
20041    );
20042}
20043unsafe extern "C" {
20044    #[link_name = "sk_POLICY_MAPPING_find__extern"]
20045    pub fn sk_POLICY_MAPPING_find(
20046        sk: *const stack_st_POLICY_MAPPING,
20047        out_index: *mut usize,
20048        p: *const POLICY_MAPPING,
20049    ) -> ::core::ffi::c_int;
20050}
20051unsafe extern "C" {
20052    #[link_name = "sk_POLICY_MAPPING_shift__extern"]
20053    pub fn sk_POLICY_MAPPING_shift(sk: *mut stack_st_POLICY_MAPPING) -> *mut POLICY_MAPPING;
20054}
20055unsafe extern "C" {
20056    #[link_name = "sk_POLICY_MAPPING_push__extern"]
20057    pub fn sk_POLICY_MAPPING_push(
20058        sk: *mut stack_st_POLICY_MAPPING,
20059        p: *mut POLICY_MAPPING,
20060    ) -> usize;
20061}
20062unsafe extern "C" {
20063    #[link_name = "sk_POLICY_MAPPING_pop__extern"]
20064    pub fn sk_POLICY_MAPPING_pop(sk: *mut stack_st_POLICY_MAPPING) -> *mut POLICY_MAPPING;
20065}
20066unsafe extern "C" {
20067    #[link_name = "sk_POLICY_MAPPING_dup__extern"]
20068    pub fn sk_POLICY_MAPPING_dup(
20069        sk: *const stack_st_POLICY_MAPPING,
20070    ) -> *mut stack_st_POLICY_MAPPING;
20071}
20072unsafe extern "C" {
20073    #[link_name = "sk_POLICY_MAPPING_sort__extern"]
20074    pub fn sk_POLICY_MAPPING_sort(sk: *mut stack_st_POLICY_MAPPING);
20075}
20076unsafe extern "C" {
20077    #[link_name = "sk_POLICY_MAPPING_sort_and_dedup__extern"]
20078    pub fn sk_POLICY_MAPPING_sort_and_dedup(
20079        sk: *mut stack_st_POLICY_MAPPING,
20080        free_func: sk_POLICY_MAPPING_free_func,
20081    );
20082}
20083unsafe extern "C" {
20084    #[link_name = "sk_POLICY_MAPPING_is_sorted__extern"]
20085    pub fn sk_POLICY_MAPPING_is_sorted(sk: *const stack_st_POLICY_MAPPING) -> ::core::ffi::c_int;
20086}
20087unsafe extern "C" {
20088    #[link_name = "sk_POLICY_MAPPING_set_cmp_func__extern"]
20089    pub fn sk_POLICY_MAPPING_set_cmp_func(
20090        sk: *mut stack_st_POLICY_MAPPING,
20091        comp: sk_POLICY_MAPPING_cmp_func,
20092    ) -> sk_POLICY_MAPPING_cmp_func;
20093}
20094unsafe extern "C" {
20095    #[link_name = "sk_POLICY_MAPPING_deep_copy__extern"]
20096    pub fn sk_POLICY_MAPPING_deep_copy(
20097        sk: *const stack_st_POLICY_MAPPING,
20098        copy_func: sk_POLICY_MAPPING_copy_func,
20099        free_func: sk_POLICY_MAPPING_free_func,
20100    ) -> *mut stack_st_POLICY_MAPPING;
20101}
20102unsafe extern "C" {
20103    pub fn POLICY_MAPPING_new() -> *mut POLICY_MAPPING;
20104}
20105unsafe extern "C" {
20106    pub fn POLICY_MAPPING_free(mapping: *mut POLICY_MAPPING);
20107}
20108pub type POLICY_MAPPINGS = stack_st_POLICY_MAPPING;
20109unsafe extern "C" {
20110    pub static POLICY_MAPPINGS_it: ASN1_ITEM;
20111}
20112#[repr(C)]
20113#[derive(Debug, Copy, Clone)]
20114pub struct POLICY_CONSTRAINTS_st {
20115    pub requireExplicitPolicy: *mut ASN1_INTEGER,
20116    pub inhibitPolicyMapping: *mut ASN1_INTEGER,
20117}
20118pub type POLICY_CONSTRAINTS = POLICY_CONSTRAINTS_st;
20119unsafe extern "C" {
20120    pub static POLICY_CONSTRAINTS_it: ASN1_ITEM;
20121}
20122unsafe extern "C" {
20123    pub fn POLICY_CONSTRAINTS_new() -> *mut POLICY_CONSTRAINTS;
20124}
20125unsafe extern "C" {
20126    pub fn POLICY_CONSTRAINTS_free(pcons: *mut POLICY_CONSTRAINTS);
20127}
20128#[repr(C)]
20129#[derive(Debug)]
20130pub struct stack_st_X509_ALGOR {
20131    _unused: [u8; 0],
20132}
20133pub type sk_X509_ALGOR_free_func =
20134    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_ALGOR)>;
20135pub type sk_X509_ALGOR_copy_func =
20136    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_ALGOR) -> *mut X509_ALGOR>;
20137pub type sk_X509_ALGOR_cmp_func = ::core::option::Option<
20138    unsafe extern "C" fn(
20139        arg1: *const *const X509_ALGOR,
20140        arg2: *const *const X509_ALGOR,
20141    ) -> ::core::ffi::c_int,
20142>;
20143pub type sk_X509_ALGOR_delete_if_func = ::core::option::Option<
20144    unsafe extern "C" fn(
20145        arg1: *mut X509_ALGOR,
20146        arg2: *mut ::core::ffi::c_void,
20147    ) -> ::core::ffi::c_int,
20148>;
20149unsafe extern "C" {
20150    #[link_name = "sk_X509_ALGOR_call_free_func__extern"]
20151    pub fn sk_X509_ALGOR_call_free_func(
20152        free_func: OPENSSL_sk_free_func,
20153        ptr: *mut ::core::ffi::c_void,
20154    );
20155}
20156unsafe extern "C" {
20157    #[link_name = "sk_X509_ALGOR_call_copy_func__extern"]
20158    pub fn sk_X509_ALGOR_call_copy_func(
20159        copy_func: OPENSSL_sk_copy_func,
20160        ptr: *const ::core::ffi::c_void,
20161    ) -> *mut ::core::ffi::c_void;
20162}
20163unsafe extern "C" {
20164    #[link_name = "sk_X509_ALGOR_call_cmp_func__extern"]
20165    pub fn sk_X509_ALGOR_call_cmp_func(
20166        cmp_func: OPENSSL_sk_cmp_func,
20167        a: *const ::core::ffi::c_void,
20168        b: *const ::core::ffi::c_void,
20169    ) -> ::core::ffi::c_int;
20170}
20171unsafe extern "C" {
20172    #[link_name = "sk_X509_ALGOR_call_delete_if_func__extern"]
20173    pub fn sk_X509_ALGOR_call_delete_if_func(
20174        func: OPENSSL_sk_delete_if_func,
20175        obj: *mut ::core::ffi::c_void,
20176        data: *mut ::core::ffi::c_void,
20177    ) -> ::core::ffi::c_int;
20178}
20179unsafe extern "C" {
20180    #[link_name = "sk_X509_ALGOR_new__extern"]
20181    pub fn sk_X509_ALGOR_new(comp: sk_X509_ALGOR_cmp_func) -> *mut stack_st_X509_ALGOR;
20182}
20183unsafe extern "C" {
20184    #[link_name = "sk_X509_ALGOR_new_null__extern"]
20185    pub fn sk_X509_ALGOR_new_null() -> *mut stack_st_X509_ALGOR;
20186}
20187unsafe extern "C" {
20188    #[link_name = "sk_X509_ALGOR_num__extern"]
20189    pub fn sk_X509_ALGOR_num(sk: *const stack_st_X509_ALGOR) -> usize;
20190}
20191unsafe extern "C" {
20192    #[link_name = "sk_X509_ALGOR_zero__extern"]
20193    pub fn sk_X509_ALGOR_zero(sk: *mut stack_st_X509_ALGOR);
20194}
20195unsafe extern "C" {
20196    #[link_name = "sk_X509_ALGOR_value__extern"]
20197    pub fn sk_X509_ALGOR_value(sk: *const stack_st_X509_ALGOR, i: usize) -> *mut X509_ALGOR;
20198}
20199unsafe extern "C" {
20200    #[link_name = "sk_X509_ALGOR_set__extern"]
20201    pub fn sk_X509_ALGOR_set(
20202        sk: *mut stack_st_X509_ALGOR,
20203        i: usize,
20204        p: *mut X509_ALGOR,
20205    ) -> *mut X509_ALGOR;
20206}
20207unsafe extern "C" {
20208    #[link_name = "sk_X509_ALGOR_free__extern"]
20209    pub fn sk_X509_ALGOR_free(sk: *mut stack_st_X509_ALGOR);
20210}
20211unsafe extern "C" {
20212    #[link_name = "sk_X509_ALGOR_pop_free__extern"]
20213    pub fn sk_X509_ALGOR_pop_free(sk: *mut stack_st_X509_ALGOR, free_func: sk_X509_ALGOR_free_func);
20214}
20215unsafe extern "C" {
20216    #[link_name = "sk_X509_ALGOR_insert__extern"]
20217    pub fn sk_X509_ALGOR_insert(
20218        sk: *mut stack_st_X509_ALGOR,
20219        p: *mut X509_ALGOR,
20220        where_: usize,
20221    ) -> usize;
20222}
20223unsafe extern "C" {
20224    #[link_name = "sk_X509_ALGOR_delete__extern"]
20225    pub fn sk_X509_ALGOR_delete(sk: *mut stack_st_X509_ALGOR, where_: usize) -> *mut X509_ALGOR;
20226}
20227unsafe extern "C" {
20228    #[link_name = "sk_X509_ALGOR_delete_ptr__extern"]
20229    pub fn sk_X509_ALGOR_delete_ptr(
20230        sk: *mut stack_st_X509_ALGOR,
20231        p: *const X509_ALGOR,
20232    ) -> *mut X509_ALGOR;
20233}
20234unsafe extern "C" {
20235    #[link_name = "sk_X509_ALGOR_delete_if__extern"]
20236    pub fn sk_X509_ALGOR_delete_if(
20237        sk: *mut stack_st_X509_ALGOR,
20238        func: sk_X509_ALGOR_delete_if_func,
20239        data: *mut ::core::ffi::c_void,
20240    );
20241}
20242unsafe extern "C" {
20243    #[link_name = "sk_X509_ALGOR_find__extern"]
20244    pub fn sk_X509_ALGOR_find(
20245        sk: *const stack_st_X509_ALGOR,
20246        out_index: *mut usize,
20247        p: *const X509_ALGOR,
20248    ) -> ::core::ffi::c_int;
20249}
20250unsafe extern "C" {
20251    #[link_name = "sk_X509_ALGOR_shift__extern"]
20252    pub fn sk_X509_ALGOR_shift(sk: *mut stack_st_X509_ALGOR) -> *mut X509_ALGOR;
20253}
20254unsafe extern "C" {
20255    #[link_name = "sk_X509_ALGOR_push__extern"]
20256    pub fn sk_X509_ALGOR_push(sk: *mut stack_st_X509_ALGOR, p: *mut X509_ALGOR) -> usize;
20257}
20258unsafe extern "C" {
20259    #[link_name = "sk_X509_ALGOR_pop__extern"]
20260    pub fn sk_X509_ALGOR_pop(sk: *mut stack_st_X509_ALGOR) -> *mut X509_ALGOR;
20261}
20262unsafe extern "C" {
20263    #[link_name = "sk_X509_ALGOR_dup__extern"]
20264    pub fn sk_X509_ALGOR_dup(sk: *const stack_st_X509_ALGOR) -> *mut stack_st_X509_ALGOR;
20265}
20266unsafe extern "C" {
20267    #[link_name = "sk_X509_ALGOR_sort__extern"]
20268    pub fn sk_X509_ALGOR_sort(sk: *mut stack_st_X509_ALGOR);
20269}
20270unsafe extern "C" {
20271    #[link_name = "sk_X509_ALGOR_sort_and_dedup__extern"]
20272    pub fn sk_X509_ALGOR_sort_and_dedup(
20273        sk: *mut stack_st_X509_ALGOR,
20274        free_func: sk_X509_ALGOR_free_func,
20275    );
20276}
20277unsafe extern "C" {
20278    #[link_name = "sk_X509_ALGOR_is_sorted__extern"]
20279    pub fn sk_X509_ALGOR_is_sorted(sk: *const stack_st_X509_ALGOR) -> ::core::ffi::c_int;
20280}
20281unsafe extern "C" {
20282    #[link_name = "sk_X509_ALGOR_set_cmp_func__extern"]
20283    pub fn sk_X509_ALGOR_set_cmp_func(
20284        sk: *mut stack_st_X509_ALGOR,
20285        comp: sk_X509_ALGOR_cmp_func,
20286    ) -> sk_X509_ALGOR_cmp_func;
20287}
20288unsafe extern "C" {
20289    #[link_name = "sk_X509_ALGOR_deep_copy__extern"]
20290    pub fn sk_X509_ALGOR_deep_copy(
20291        sk: *const stack_st_X509_ALGOR,
20292        copy_func: sk_X509_ALGOR_copy_func,
20293        free_func: sk_X509_ALGOR_free_func,
20294    ) -> *mut stack_st_X509_ALGOR;
20295}
20296unsafe extern "C" {
20297    pub static X509_ALGOR_it: ASN1_ITEM;
20298}
20299unsafe extern "C" {
20300    pub fn X509_ALGOR_new() -> *mut X509_ALGOR;
20301}
20302unsafe extern "C" {
20303    pub fn X509_ALGOR_dup(alg: *const X509_ALGOR) -> *mut X509_ALGOR;
20304}
20305unsafe extern "C" {
20306    pub fn X509_ALGOR_copy(dst: *mut X509_ALGOR, src: *const X509_ALGOR) -> ::core::ffi::c_int;
20307}
20308unsafe extern "C" {
20309    pub fn X509_ALGOR_free(alg: *mut X509_ALGOR);
20310}
20311unsafe extern "C" {
20312    pub fn d2i_X509_ALGOR(
20313        out: *mut *mut X509_ALGOR,
20314        inp: *mut *const u8,
20315        len: ::core::ffi::c_long,
20316    ) -> *mut X509_ALGOR;
20317}
20318unsafe extern "C" {
20319    pub fn i2d_X509_ALGOR(alg: *const X509_ALGOR, outp: *mut *mut u8) -> ::core::ffi::c_int;
20320}
20321unsafe extern "C" {
20322    pub fn X509_ALGOR_set0(
20323        alg: *mut X509_ALGOR,
20324        obj: *mut ASN1_OBJECT,
20325        param_type: ::core::ffi::c_int,
20326        param_value: *mut ::core::ffi::c_void,
20327    ) -> ::core::ffi::c_int;
20328}
20329unsafe extern "C" {
20330    pub fn X509_ALGOR_get0(
20331        out_obj: *mut *const ASN1_OBJECT,
20332        out_param_type: *mut ::core::ffi::c_int,
20333        out_param_value: *mut *const ::core::ffi::c_void,
20334        alg: *const X509_ALGOR,
20335    );
20336}
20337unsafe extern "C" {
20338    pub fn X509_ALGOR_set_md(alg: *mut X509_ALGOR, md: *const EVP_MD) -> ::core::ffi::c_int;
20339}
20340unsafe extern "C" {
20341    pub fn X509_ALGOR_cmp(a: *const X509_ALGOR, b: *const X509_ALGOR) -> ::core::ffi::c_int;
20342}
20343#[repr(C)]
20344#[derive(Debug)]
20345pub struct stack_st_X509_ATTRIBUTE {
20346    _unused: [u8; 0],
20347}
20348pub type sk_X509_ATTRIBUTE_free_func =
20349    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_ATTRIBUTE)>;
20350pub type sk_X509_ATTRIBUTE_copy_func = ::core::option::Option<
20351    unsafe extern "C" fn(arg1: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE,
20352>;
20353pub type sk_X509_ATTRIBUTE_cmp_func = ::core::option::Option<
20354    unsafe extern "C" fn(
20355        arg1: *const *const X509_ATTRIBUTE,
20356        arg2: *const *const X509_ATTRIBUTE,
20357    ) -> ::core::ffi::c_int,
20358>;
20359pub type sk_X509_ATTRIBUTE_delete_if_func = ::core::option::Option<
20360    unsafe extern "C" fn(
20361        arg1: *mut X509_ATTRIBUTE,
20362        arg2: *mut ::core::ffi::c_void,
20363    ) -> ::core::ffi::c_int,
20364>;
20365unsafe extern "C" {
20366    #[link_name = "sk_X509_ATTRIBUTE_call_free_func__extern"]
20367    pub fn sk_X509_ATTRIBUTE_call_free_func(
20368        free_func: OPENSSL_sk_free_func,
20369        ptr: *mut ::core::ffi::c_void,
20370    );
20371}
20372unsafe extern "C" {
20373    #[link_name = "sk_X509_ATTRIBUTE_call_copy_func__extern"]
20374    pub fn sk_X509_ATTRIBUTE_call_copy_func(
20375        copy_func: OPENSSL_sk_copy_func,
20376        ptr: *const ::core::ffi::c_void,
20377    ) -> *mut ::core::ffi::c_void;
20378}
20379unsafe extern "C" {
20380    #[link_name = "sk_X509_ATTRIBUTE_call_cmp_func__extern"]
20381    pub fn sk_X509_ATTRIBUTE_call_cmp_func(
20382        cmp_func: OPENSSL_sk_cmp_func,
20383        a: *const ::core::ffi::c_void,
20384        b: *const ::core::ffi::c_void,
20385    ) -> ::core::ffi::c_int;
20386}
20387unsafe extern "C" {
20388    #[link_name = "sk_X509_ATTRIBUTE_call_delete_if_func__extern"]
20389    pub fn sk_X509_ATTRIBUTE_call_delete_if_func(
20390        func: OPENSSL_sk_delete_if_func,
20391        obj: *mut ::core::ffi::c_void,
20392        data: *mut ::core::ffi::c_void,
20393    ) -> ::core::ffi::c_int;
20394}
20395unsafe extern "C" {
20396    #[link_name = "sk_X509_ATTRIBUTE_new__extern"]
20397    pub fn sk_X509_ATTRIBUTE_new(comp: sk_X509_ATTRIBUTE_cmp_func) -> *mut stack_st_X509_ATTRIBUTE;
20398}
20399unsafe extern "C" {
20400    #[link_name = "sk_X509_ATTRIBUTE_new_null__extern"]
20401    pub fn sk_X509_ATTRIBUTE_new_null() -> *mut stack_st_X509_ATTRIBUTE;
20402}
20403unsafe extern "C" {
20404    #[link_name = "sk_X509_ATTRIBUTE_num__extern"]
20405    pub fn sk_X509_ATTRIBUTE_num(sk: *const stack_st_X509_ATTRIBUTE) -> usize;
20406}
20407unsafe extern "C" {
20408    #[link_name = "sk_X509_ATTRIBUTE_zero__extern"]
20409    pub fn sk_X509_ATTRIBUTE_zero(sk: *mut stack_st_X509_ATTRIBUTE);
20410}
20411unsafe extern "C" {
20412    #[link_name = "sk_X509_ATTRIBUTE_value__extern"]
20413    pub fn sk_X509_ATTRIBUTE_value(
20414        sk: *const stack_st_X509_ATTRIBUTE,
20415        i: usize,
20416    ) -> *mut X509_ATTRIBUTE;
20417}
20418unsafe extern "C" {
20419    #[link_name = "sk_X509_ATTRIBUTE_set__extern"]
20420    pub fn sk_X509_ATTRIBUTE_set(
20421        sk: *mut stack_st_X509_ATTRIBUTE,
20422        i: usize,
20423        p: *mut X509_ATTRIBUTE,
20424    ) -> *mut X509_ATTRIBUTE;
20425}
20426unsafe extern "C" {
20427    #[link_name = "sk_X509_ATTRIBUTE_free__extern"]
20428    pub fn sk_X509_ATTRIBUTE_free(sk: *mut stack_st_X509_ATTRIBUTE);
20429}
20430unsafe extern "C" {
20431    #[link_name = "sk_X509_ATTRIBUTE_pop_free__extern"]
20432    pub fn sk_X509_ATTRIBUTE_pop_free(
20433        sk: *mut stack_st_X509_ATTRIBUTE,
20434        free_func: sk_X509_ATTRIBUTE_free_func,
20435    );
20436}
20437unsafe extern "C" {
20438    #[link_name = "sk_X509_ATTRIBUTE_insert__extern"]
20439    pub fn sk_X509_ATTRIBUTE_insert(
20440        sk: *mut stack_st_X509_ATTRIBUTE,
20441        p: *mut X509_ATTRIBUTE,
20442        where_: usize,
20443    ) -> usize;
20444}
20445unsafe extern "C" {
20446    #[link_name = "sk_X509_ATTRIBUTE_delete__extern"]
20447    pub fn sk_X509_ATTRIBUTE_delete(
20448        sk: *mut stack_st_X509_ATTRIBUTE,
20449        where_: usize,
20450    ) -> *mut X509_ATTRIBUTE;
20451}
20452unsafe extern "C" {
20453    #[link_name = "sk_X509_ATTRIBUTE_delete_ptr__extern"]
20454    pub fn sk_X509_ATTRIBUTE_delete_ptr(
20455        sk: *mut stack_st_X509_ATTRIBUTE,
20456        p: *const X509_ATTRIBUTE,
20457    ) -> *mut X509_ATTRIBUTE;
20458}
20459unsafe extern "C" {
20460    #[link_name = "sk_X509_ATTRIBUTE_delete_if__extern"]
20461    pub fn sk_X509_ATTRIBUTE_delete_if(
20462        sk: *mut stack_st_X509_ATTRIBUTE,
20463        func: sk_X509_ATTRIBUTE_delete_if_func,
20464        data: *mut ::core::ffi::c_void,
20465    );
20466}
20467unsafe extern "C" {
20468    #[link_name = "sk_X509_ATTRIBUTE_find__extern"]
20469    pub fn sk_X509_ATTRIBUTE_find(
20470        sk: *const stack_st_X509_ATTRIBUTE,
20471        out_index: *mut usize,
20472        p: *const X509_ATTRIBUTE,
20473    ) -> ::core::ffi::c_int;
20474}
20475unsafe extern "C" {
20476    #[link_name = "sk_X509_ATTRIBUTE_shift__extern"]
20477    pub fn sk_X509_ATTRIBUTE_shift(sk: *mut stack_st_X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20478}
20479unsafe extern "C" {
20480    #[link_name = "sk_X509_ATTRIBUTE_push__extern"]
20481    pub fn sk_X509_ATTRIBUTE_push(
20482        sk: *mut stack_st_X509_ATTRIBUTE,
20483        p: *mut X509_ATTRIBUTE,
20484    ) -> usize;
20485}
20486unsafe extern "C" {
20487    #[link_name = "sk_X509_ATTRIBUTE_pop__extern"]
20488    pub fn sk_X509_ATTRIBUTE_pop(sk: *mut stack_st_X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20489}
20490unsafe extern "C" {
20491    #[link_name = "sk_X509_ATTRIBUTE_dup__extern"]
20492    pub fn sk_X509_ATTRIBUTE_dup(
20493        sk: *const stack_st_X509_ATTRIBUTE,
20494    ) -> *mut stack_st_X509_ATTRIBUTE;
20495}
20496unsafe extern "C" {
20497    #[link_name = "sk_X509_ATTRIBUTE_sort__extern"]
20498    pub fn sk_X509_ATTRIBUTE_sort(sk: *mut stack_st_X509_ATTRIBUTE);
20499}
20500unsafe extern "C" {
20501    #[link_name = "sk_X509_ATTRIBUTE_sort_and_dedup__extern"]
20502    pub fn sk_X509_ATTRIBUTE_sort_and_dedup(
20503        sk: *mut stack_st_X509_ATTRIBUTE,
20504        free_func: sk_X509_ATTRIBUTE_free_func,
20505    );
20506}
20507unsafe extern "C" {
20508    #[link_name = "sk_X509_ATTRIBUTE_is_sorted__extern"]
20509    pub fn sk_X509_ATTRIBUTE_is_sorted(sk: *const stack_st_X509_ATTRIBUTE) -> ::core::ffi::c_int;
20510}
20511unsafe extern "C" {
20512    #[link_name = "sk_X509_ATTRIBUTE_set_cmp_func__extern"]
20513    pub fn sk_X509_ATTRIBUTE_set_cmp_func(
20514        sk: *mut stack_st_X509_ATTRIBUTE,
20515        comp: sk_X509_ATTRIBUTE_cmp_func,
20516    ) -> sk_X509_ATTRIBUTE_cmp_func;
20517}
20518unsafe extern "C" {
20519    #[link_name = "sk_X509_ATTRIBUTE_deep_copy__extern"]
20520    pub fn sk_X509_ATTRIBUTE_deep_copy(
20521        sk: *const stack_st_X509_ATTRIBUTE,
20522        copy_func: sk_X509_ATTRIBUTE_copy_func,
20523        free_func: sk_X509_ATTRIBUTE_free_func,
20524    ) -> *mut stack_st_X509_ATTRIBUTE;
20525}
20526unsafe extern "C" {
20527    pub fn X509_ATTRIBUTE_new() -> *mut X509_ATTRIBUTE;
20528}
20529unsafe extern "C" {
20530    pub fn X509_ATTRIBUTE_dup(attr: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20531}
20532unsafe extern "C" {
20533    pub fn X509_ATTRIBUTE_free(attr: *mut X509_ATTRIBUTE);
20534}
20535unsafe extern "C" {
20536    pub fn d2i_X509_ATTRIBUTE(
20537        out: *mut *mut X509_ATTRIBUTE,
20538        inp: *mut *const u8,
20539        len: ::core::ffi::c_long,
20540    ) -> *mut X509_ATTRIBUTE;
20541}
20542unsafe extern "C" {
20543    pub fn i2d_X509_ATTRIBUTE(alg: *const X509_ATTRIBUTE, outp: *mut *mut u8)
20544        -> ::core::ffi::c_int;
20545}
20546unsafe extern "C" {
20547    pub fn X509_ATTRIBUTE_create(
20548        nid: ::core::ffi::c_int,
20549        attrtype: ::core::ffi::c_int,
20550        value: *mut ::core::ffi::c_void,
20551    ) -> *mut X509_ATTRIBUTE;
20552}
20553unsafe extern "C" {
20554    pub fn X509_ATTRIBUTE_create_by_NID(
20555        attr: *mut *mut X509_ATTRIBUTE,
20556        nid: ::core::ffi::c_int,
20557        attrtype: ::core::ffi::c_int,
20558        data: *const ::core::ffi::c_void,
20559        len: ::core::ffi::c_int,
20560    ) -> *mut X509_ATTRIBUTE;
20561}
20562unsafe extern "C" {
20563    pub fn X509_ATTRIBUTE_create_by_OBJ(
20564        attr: *mut *mut X509_ATTRIBUTE,
20565        obj: *const ASN1_OBJECT,
20566        attrtype: ::core::ffi::c_int,
20567        data: *const ::core::ffi::c_void,
20568        len: ::core::ffi::c_int,
20569    ) -> *mut X509_ATTRIBUTE;
20570}
20571unsafe extern "C" {
20572    pub fn X509_ATTRIBUTE_create_by_txt(
20573        attr: *mut *mut X509_ATTRIBUTE,
20574        attrname: *const ::core::ffi::c_char,
20575        type_: ::core::ffi::c_int,
20576        bytes: *const ::core::ffi::c_uchar,
20577        len: ::core::ffi::c_int,
20578    ) -> *mut X509_ATTRIBUTE;
20579}
20580unsafe extern "C" {
20581    pub fn X509_ATTRIBUTE_set1_object(
20582        attr: *mut X509_ATTRIBUTE,
20583        obj: *const ASN1_OBJECT,
20584    ) -> ::core::ffi::c_int;
20585}
20586unsafe extern "C" {
20587    pub fn X509_ATTRIBUTE_set1_data(
20588        attr: *mut X509_ATTRIBUTE,
20589        attrtype: ::core::ffi::c_int,
20590        data: *const ::core::ffi::c_void,
20591        len: ::core::ffi::c_int,
20592    ) -> ::core::ffi::c_int;
20593}
20594unsafe extern "C" {
20595    pub fn X509_ATTRIBUTE_get0_data(
20596        attr: *mut X509_ATTRIBUTE,
20597        idx: ::core::ffi::c_int,
20598        attrtype: ::core::ffi::c_int,
20599        unused: *mut ::core::ffi::c_void,
20600    ) -> *mut ::core::ffi::c_void;
20601}
20602unsafe extern "C" {
20603    pub fn X509_ATTRIBUTE_count(attr: *const X509_ATTRIBUTE) -> ::core::ffi::c_int;
20604}
20605unsafe extern "C" {
20606    pub fn X509_ATTRIBUTE_get0_object(attr: *mut X509_ATTRIBUTE) -> *mut ASN1_OBJECT;
20607}
20608unsafe extern "C" {
20609    pub fn X509_ATTRIBUTE_get0_type(
20610        attr: *mut X509_ATTRIBUTE,
20611        idx: ::core::ffi::c_int,
20612    ) -> *mut ASN1_TYPE;
20613}
20614unsafe extern "C" {
20615    pub fn X509_STORE_new() -> *mut X509_STORE;
20616}
20617unsafe extern "C" {
20618    pub fn X509_STORE_up_ref(store: *mut X509_STORE) -> ::core::ffi::c_int;
20619}
20620unsafe extern "C" {
20621    pub fn X509_STORE_free(store: *mut X509_STORE);
20622}
20623unsafe extern "C" {
20624    pub fn X509_STORE_add_cert(store: *mut X509_STORE, x509: *mut X509) -> ::core::ffi::c_int;
20625}
20626unsafe extern "C" {
20627    pub fn X509_STORE_add_crl(store: *mut X509_STORE, crl: *mut X509_CRL) -> ::core::ffi::c_int;
20628}
20629unsafe extern "C" {
20630    pub fn X509_STORE_get0_param(store: *mut X509_STORE) -> *mut X509_VERIFY_PARAM;
20631}
20632unsafe extern "C" {
20633    pub fn X509_STORE_set1_param(
20634        store: *mut X509_STORE,
20635        param: *const X509_VERIFY_PARAM,
20636    ) -> ::core::ffi::c_int;
20637}
20638unsafe extern "C" {
20639    pub fn X509_STORE_set_flags(
20640        store: *mut X509_STORE,
20641        flags: ::core::ffi::c_ulong,
20642    ) -> ::core::ffi::c_int;
20643}
20644unsafe extern "C" {
20645    pub fn X509_STORE_set_depth(
20646        store: *mut X509_STORE,
20647        depth: ::core::ffi::c_int,
20648    ) -> ::core::ffi::c_int;
20649}
20650unsafe extern "C" {
20651    pub fn X509_STORE_set_purpose(
20652        store: *mut X509_STORE,
20653        purpose: ::core::ffi::c_int,
20654    ) -> ::core::ffi::c_int;
20655}
20656unsafe extern "C" {
20657    pub fn X509_STORE_set_trust(
20658        store: *mut X509_STORE,
20659        trust: ::core::ffi::c_int,
20660    ) -> ::core::ffi::c_int;
20661}
20662#[repr(C)]
20663#[derive(Debug)]
20664pub struct stack_st_X509_OBJECT {
20665    _unused: [u8; 0],
20666}
20667pub type sk_X509_OBJECT_free_func =
20668    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_OBJECT)>;
20669pub type sk_X509_OBJECT_copy_func =
20670    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_OBJECT) -> *mut X509_OBJECT>;
20671pub type sk_X509_OBJECT_cmp_func = ::core::option::Option<
20672    unsafe extern "C" fn(
20673        arg1: *const *const X509_OBJECT,
20674        arg2: *const *const X509_OBJECT,
20675    ) -> ::core::ffi::c_int,
20676>;
20677pub type sk_X509_OBJECT_delete_if_func = ::core::option::Option<
20678    unsafe extern "C" fn(
20679        arg1: *mut X509_OBJECT,
20680        arg2: *mut ::core::ffi::c_void,
20681    ) -> ::core::ffi::c_int,
20682>;
20683unsafe extern "C" {
20684    #[link_name = "sk_X509_OBJECT_call_free_func__extern"]
20685    pub fn sk_X509_OBJECT_call_free_func(
20686        free_func: OPENSSL_sk_free_func,
20687        ptr: *mut ::core::ffi::c_void,
20688    );
20689}
20690unsafe extern "C" {
20691    #[link_name = "sk_X509_OBJECT_call_copy_func__extern"]
20692    pub fn sk_X509_OBJECT_call_copy_func(
20693        copy_func: OPENSSL_sk_copy_func,
20694        ptr: *const ::core::ffi::c_void,
20695    ) -> *mut ::core::ffi::c_void;
20696}
20697unsafe extern "C" {
20698    #[link_name = "sk_X509_OBJECT_call_cmp_func__extern"]
20699    pub fn sk_X509_OBJECT_call_cmp_func(
20700        cmp_func: OPENSSL_sk_cmp_func,
20701        a: *const ::core::ffi::c_void,
20702        b: *const ::core::ffi::c_void,
20703    ) -> ::core::ffi::c_int;
20704}
20705unsafe extern "C" {
20706    #[link_name = "sk_X509_OBJECT_call_delete_if_func__extern"]
20707    pub fn sk_X509_OBJECT_call_delete_if_func(
20708        func: OPENSSL_sk_delete_if_func,
20709        obj: *mut ::core::ffi::c_void,
20710        data: *mut ::core::ffi::c_void,
20711    ) -> ::core::ffi::c_int;
20712}
20713unsafe extern "C" {
20714    #[link_name = "sk_X509_OBJECT_new__extern"]
20715    pub fn sk_X509_OBJECT_new(comp: sk_X509_OBJECT_cmp_func) -> *mut stack_st_X509_OBJECT;
20716}
20717unsafe extern "C" {
20718    #[link_name = "sk_X509_OBJECT_new_null__extern"]
20719    pub fn sk_X509_OBJECT_new_null() -> *mut stack_st_X509_OBJECT;
20720}
20721unsafe extern "C" {
20722    #[link_name = "sk_X509_OBJECT_num__extern"]
20723    pub fn sk_X509_OBJECT_num(sk: *const stack_st_X509_OBJECT) -> usize;
20724}
20725unsafe extern "C" {
20726    #[link_name = "sk_X509_OBJECT_zero__extern"]
20727    pub fn sk_X509_OBJECT_zero(sk: *mut stack_st_X509_OBJECT);
20728}
20729unsafe extern "C" {
20730    #[link_name = "sk_X509_OBJECT_value__extern"]
20731    pub fn sk_X509_OBJECT_value(sk: *const stack_st_X509_OBJECT, i: usize) -> *mut X509_OBJECT;
20732}
20733unsafe extern "C" {
20734    #[link_name = "sk_X509_OBJECT_set__extern"]
20735    pub fn sk_X509_OBJECT_set(
20736        sk: *mut stack_st_X509_OBJECT,
20737        i: usize,
20738        p: *mut X509_OBJECT,
20739    ) -> *mut X509_OBJECT;
20740}
20741unsafe extern "C" {
20742    #[link_name = "sk_X509_OBJECT_free__extern"]
20743    pub fn sk_X509_OBJECT_free(sk: *mut stack_st_X509_OBJECT);
20744}
20745unsafe extern "C" {
20746    #[link_name = "sk_X509_OBJECT_pop_free__extern"]
20747    pub fn sk_X509_OBJECT_pop_free(
20748        sk: *mut stack_st_X509_OBJECT,
20749        free_func: sk_X509_OBJECT_free_func,
20750    );
20751}
20752unsafe extern "C" {
20753    #[link_name = "sk_X509_OBJECT_insert__extern"]
20754    pub fn sk_X509_OBJECT_insert(
20755        sk: *mut stack_st_X509_OBJECT,
20756        p: *mut X509_OBJECT,
20757        where_: usize,
20758    ) -> usize;
20759}
20760unsafe extern "C" {
20761    #[link_name = "sk_X509_OBJECT_delete__extern"]
20762    pub fn sk_X509_OBJECT_delete(sk: *mut stack_st_X509_OBJECT, where_: usize) -> *mut X509_OBJECT;
20763}
20764unsafe extern "C" {
20765    #[link_name = "sk_X509_OBJECT_delete_ptr__extern"]
20766    pub fn sk_X509_OBJECT_delete_ptr(
20767        sk: *mut stack_st_X509_OBJECT,
20768        p: *const X509_OBJECT,
20769    ) -> *mut X509_OBJECT;
20770}
20771unsafe extern "C" {
20772    #[link_name = "sk_X509_OBJECT_delete_if__extern"]
20773    pub fn sk_X509_OBJECT_delete_if(
20774        sk: *mut stack_st_X509_OBJECT,
20775        func: sk_X509_OBJECT_delete_if_func,
20776        data: *mut ::core::ffi::c_void,
20777    );
20778}
20779unsafe extern "C" {
20780    #[link_name = "sk_X509_OBJECT_find__extern"]
20781    pub fn sk_X509_OBJECT_find(
20782        sk: *const stack_st_X509_OBJECT,
20783        out_index: *mut usize,
20784        p: *const X509_OBJECT,
20785    ) -> ::core::ffi::c_int;
20786}
20787unsafe extern "C" {
20788    #[link_name = "sk_X509_OBJECT_shift__extern"]
20789    pub fn sk_X509_OBJECT_shift(sk: *mut stack_st_X509_OBJECT) -> *mut X509_OBJECT;
20790}
20791unsafe extern "C" {
20792    #[link_name = "sk_X509_OBJECT_push__extern"]
20793    pub fn sk_X509_OBJECT_push(sk: *mut stack_st_X509_OBJECT, p: *mut X509_OBJECT) -> usize;
20794}
20795unsafe extern "C" {
20796    #[link_name = "sk_X509_OBJECT_pop__extern"]
20797    pub fn sk_X509_OBJECT_pop(sk: *mut stack_st_X509_OBJECT) -> *mut X509_OBJECT;
20798}
20799unsafe extern "C" {
20800    #[link_name = "sk_X509_OBJECT_dup__extern"]
20801    pub fn sk_X509_OBJECT_dup(sk: *const stack_st_X509_OBJECT) -> *mut stack_st_X509_OBJECT;
20802}
20803unsafe extern "C" {
20804    #[link_name = "sk_X509_OBJECT_sort__extern"]
20805    pub fn sk_X509_OBJECT_sort(sk: *mut stack_st_X509_OBJECT);
20806}
20807unsafe extern "C" {
20808    #[link_name = "sk_X509_OBJECT_sort_and_dedup__extern"]
20809    pub fn sk_X509_OBJECT_sort_and_dedup(
20810        sk: *mut stack_st_X509_OBJECT,
20811        free_func: sk_X509_OBJECT_free_func,
20812    );
20813}
20814unsafe extern "C" {
20815    #[link_name = "sk_X509_OBJECT_is_sorted__extern"]
20816    pub fn sk_X509_OBJECT_is_sorted(sk: *const stack_st_X509_OBJECT) -> ::core::ffi::c_int;
20817}
20818unsafe extern "C" {
20819    #[link_name = "sk_X509_OBJECT_set_cmp_func__extern"]
20820    pub fn sk_X509_OBJECT_set_cmp_func(
20821        sk: *mut stack_st_X509_OBJECT,
20822        comp: sk_X509_OBJECT_cmp_func,
20823    ) -> sk_X509_OBJECT_cmp_func;
20824}
20825unsafe extern "C" {
20826    #[link_name = "sk_X509_OBJECT_deep_copy__extern"]
20827    pub fn sk_X509_OBJECT_deep_copy(
20828        sk: *const stack_st_X509_OBJECT,
20829        copy_func: sk_X509_OBJECT_copy_func,
20830        free_func: sk_X509_OBJECT_free_func,
20831    ) -> *mut stack_st_X509_OBJECT;
20832}
20833unsafe extern "C" {
20834    pub fn X509_OBJECT_new() -> *mut X509_OBJECT;
20835}
20836unsafe extern "C" {
20837    pub fn X509_OBJECT_free(obj: *mut X509_OBJECT);
20838}
20839unsafe extern "C" {
20840    pub fn X509_OBJECT_get_type(obj: *const X509_OBJECT) -> ::core::ffi::c_int;
20841}
20842unsafe extern "C" {
20843    pub fn X509_OBJECT_get0_X509(obj: *const X509_OBJECT) -> *mut X509;
20844}
20845unsafe extern "C" {
20846    pub fn X509_STORE_get1_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
20847}
20848unsafe extern "C" {
20849    pub fn X509_STORE_CTX_new() -> *mut X509_STORE_CTX;
20850}
20851unsafe extern "C" {
20852    pub fn X509_STORE_CTX_free(ctx: *mut X509_STORE_CTX);
20853}
20854unsafe extern "C" {
20855    pub fn X509_STORE_CTX_init(
20856        ctx: *mut X509_STORE_CTX,
20857        store: *mut X509_STORE,
20858        x509: *mut X509,
20859        chain: *mut stack_st_X509,
20860    ) -> ::core::ffi::c_int;
20861}
20862unsafe extern "C" {
20863    pub fn X509_verify_cert(ctx: *mut X509_STORE_CTX) -> ::core::ffi::c_int;
20864}
20865unsafe extern "C" {
20866    pub fn X509_STORE_CTX_get0_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
20867}
20868unsafe extern "C" {
20869    pub fn X509_STORE_CTX_get1_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
20870}
20871unsafe extern "C" {
20872    pub fn X509_STORE_CTX_get_error(ctx: *const X509_STORE_CTX) -> ::core::ffi::c_int;
20873}
20874unsafe extern "C" {
20875    pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, err: ::core::ffi::c_int);
20876}
20877unsafe extern "C" {
20878    pub fn X509_verify_cert_error_string(err: ::core::ffi::c_long) -> *const ::core::ffi::c_char;
20879}
20880unsafe extern "C" {
20881    pub fn X509_STORE_CTX_get_error_depth(ctx: *const X509_STORE_CTX) -> ::core::ffi::c_int;
20882}
20883unsafe extern "C" {
20884    pub fn X509_STORE_CTX_get_current_cert(ctx: *const X509_STORE_CTX) -> *mut X509;
20885}
20886unsafe extern "C" {
20887    pub fn X509_STORE_CTX_get0_current_crl(ctx: *const X509_STORE_CTX) -> *mut X509_CRL;
20888}
20889unsafe extern "C" {
20890    pub fn X509_STORE_CTX_get0_store(ctx: *const X509_STORE_CTX) -> *mut X509_STORE;
20891}
20892unsafe extern "C" {
20893    pub fn X509_STORE_CTX_get0_cert(ctx: *const X509_STORE_CTX) -> *mut X509;
20894}
20895unsafe extern "C" {
20896    pub fn X509_STORE_CTX_get0_untrusted(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
20897}
20898unsafe extern "C" {
20899    pub fn X509_STORE_CTX_set0_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
20900}
20901unsafe extern "C" {
20902    pub fn X509_STORE_CTX_set0_crls(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509_CRL);
20903}
20904unsafe extern "C" {
20905    pub fn X509_STORE_CTX_set_default(
20906        ctx: *mut X509_STORE_CTX,
20907        name: *const ::core::ffi::c_char,
20908    ) -> ::core::ffi::c_int;
20909}
20910unsafe extern "C" {
20911    pub fn X509_STORE_CTX_get0_param(ctx: *mut X509_STORE_CTX) -> *mut X509_VERIFY_PARAM;
20912}
20913unsafe extern "C" {
20914    pub fn X509_STORE_CTX_set0_param(ctx: *mut X509_STORE_CTX, param: *mut X509_VERIFY_PARAM);
20915}
20916unsafe extern "C" {
20917    pub fn X509_STORE_CTX_set_flags(ctx: *mut X509_STORE_CTX, flags: ::core::ffi::c_ulong);
20918}
20919unsafe extern "C" {
20920    pub fn X509_STORE_CTX_set_time(
20921        ctx: *mut X509_STORE_CTX,
20922        flags: ::core::ffi::c_ulong,
20923        t: time_t,
20924    );
20925}
20926unsafe extern "C" {
20927    pub fn X509_STORE_CTX_set_time_posix(
20928        ctx: *mut X509_STORE_CTX,
20929        flags: ::core::ffi::c_ulong,
20930        t: i64,
20931    );
20932}
20933unsafe extern "C" {
20934    pub fn X509_STORE_CTX_set_depth(ctx: *mut X509_STORE_CTX, depth: ::core::ffi::c_int);
20935}
20936unsafe extern "C" {
20937    pub fn X509_STORE_CTX_set_purpose(
20938        ctx: *mut X509_STORE_CTX,
20939        purpose: ::core::ffi::c_int,
20940    ) -> ::core::ffi::c_int;
20941}
20942unsafe extern "C" {
20943    pub fn X509_STORE_CTX_set_trust(
20944        ctx: *mut X509_STORE_CTX,
20945        trust: ::core::ffi::c_int,
20946    ) -> ::core::ffi::c_int;
20947}
20948unsafe extern "C" {
20949    pub fn X509_VERIFY_PARAM_new() -> *mut X509_VERIFY_PARAM;
20950}
20951unsafe extern "C" {
20952    pub fn X509_VERIFY_PARAM_free(param: *mut X509_VERIFY_PARAM);
20953}
20954unsafe extern "C" {
20955    pub fn X509_VERIFY_PARAM_inherit(
20956        to: *mut X509_VERIFY_PARAM,
20957        from: *const X509_VERIFY_PARAM,
20958    ) -> ::core::ffi::c_int;
20959}
20960unsafe extern "C" {
20961    pub fn X509_VERIFY_PARAM_set1(
20962        to: *mut X509_VERIFY_PARAM,
20963        from: *const X509_VERIFY_PARAM,
20964    ) -> ::core::ffi::c_int;
20965}
20966unsafe extern "C" {
20967    pub fn X509_VERIFY_PARAM_set_flags(
20968        param: *mut X509_VERIFY_PARAM,
20969        flags: ::core::ffi::c_ulong,
20970    ) -> ::core::ffi::c_int;
20971}
20972unsafe extern "C" {
20973    pub fn X509_VERIFY_PARAM_clear_flags(
20974        param: *mut X509_VERIFY_PARAM,
20975        flags: ::core::ffi::c_ulong,
20976    ) -> ::core::ffi::c_int;
20977}
20978unsafe extern "C" {
20979    pub fn X509_VERIFY_PARAM_get_flags(param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_ulong;
20980}
20981unsafe extern "C" {
20982    pub fn X509_VERIFY_PARAM_set_depth(param: *mut X509_VERIFY_PARAM, depth: ::core::ffi::c_int);
20983}
20984unsafe extern "C" {
20985    pub fn X509_VERIFY_PARAM_get_depth(param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_int;
20986}
20987unsafe extern "C" {
20988    pub fn X509_VERIFY_PARAM_set_time(param: *mut X509_VERIFY_PARAM, t: time_t);
20989}
20990unsafe extern "C" {
20991    pub fn X509_VERIFY_PARAM_set_time_posix(param: *mut X509_VERIFY_PARAM, t: i64);
20992}
20993unsafe extern "C" {
20994    pub fn X509_VERIFY_PARAM_add0_policy(
20995        param: *mut X509_VERIFY_PARAM,
20996        policy: *mut ASN1_OBJECT,
20997    ) -> ::core::ffi::c_int;
20998}
20999unsafe extern "C" {
21000    pub fn X509_VERIFY_PARAM_set1_policies(
21001        param: *mut X509_VERIFY_PARAM,
21002        policies: *const stack_st_ASN1_OBJECT,
21003    ) -> ::core::ffi::c_int;
21004}
21005unsafe extern "C" {
21006    pub fn X509_VERIFY_PARAM_set1_host(
21007        param: *mut X509_VERIFY_PARAM,
21008        name: *const ::core::ffi::c_char,
21009        name_len: usize,
21010    ) -> ::core::ffi::c_int;
21011}
21012unsafe extern "C" {
21013    pub fn X509_VERIFY_PARAM_add1_host(
21014        param: *mut X509_VERIFY_PARAM,
21015        name: *const ::core::ffi::c_char,
21016        name_len: usize,
21017    ) -> ::core::ffi::c_int;
21018}
21019unsafe extern "C" {
21020    pub fn X509_VERIFY_PARAM_set_hostflags(
21021        param: *mut X509_VERIFY_PARAM,
21022        flags: ::core::ffi::c_uint,
21023    );
21024}
21025unsafe extern "C" {
21026    pub fn X509_VERIFY_PARAM_set1_email(
21027        param: *mut X509_VERIFY_PARAM,
21028        email: *const ::core::ffi::c_char,
21029        email_len: usize,
21030    ) -> ::core::ffi::c_int;
21031}
21032unsafe extern "C" {
21033    pub fn X509_VERIFY_PARAM_set1_ip(
21034        param: *mut X509_VERIFY_PARAM,
21035        ip: *const u8,
21036        ip_len: usize,
21037    ) -> ::core::ffi::c_int;
21038}
21039unsafe extern "C" {
21040    pub fn X509_VERIFY_PARAM_set1_ip_asc(
21041        param: *mut X509_VERIFY_PARAM,
21042        ipasc: *const ::core::ffi::c_char,
21043    ) -> ::core::ffi::c_int;
21044}
21045unsafe extern "C" {
21046    pub fn X509_VERIFY_PARAM_set_purpose(
21047        param: *mut X509_VERIFY_PARAM,
21048        purpose: ::core::ffi::c_int,
21049    ) -> ::core::ffi::c_int;
21050}
21051unsafe extern "C" {
21052    pub fn X509_VERIFY_PARAM_set_trust(
21053        param: *mut X509_VERIFY_PARAM,
21054        trust: ::core::ffi::c_int,
21055    ) -> ::core::ffi::c_int;
21056}
21057unsafe extern "C" {
21058    pub fn X509_STORE_load_locations(
21059        store: *mut X509_STORE,
21060        file: *const ::core::ffi::c_char,
21061        dir: *const ::core::ffi::c_char,
21062    ) -> ::core::ffi::c_int;
21063}
21064unsafe extern "C" {
21065    pub fn X509_STORE_add_lookup(
21066        store: *mut X509_STORE,
21067        method: *const X509_LOOKUP_METHOD,
21068    ) -> *mut X509_LOOKUP;
21069}
21070unsafe extern "C" {
21071    pub fn X509_LOOKUP_hash_dir() -> *const X509_LOOKUP_METHOD;
21072}
21073unsafe extern "C" {
21074    pub fn X509_LOOKUP_file() -> *const X509_LOOKUP_METHOD;
21075}
21076unsafe extern "C" {
21077    pub fn X509_LOOKUP_load_file(
21078        lookup: *mut X509_LOOKUP,
21079        file: *const ::core::ffi::c_char,
21080        type_: ::core::ffi::c_int,
21081    ) -> ::core::ffi::c_int;
21082}
21083unsafe extern "C" {
21084    pub fn X509_LOOKUP_add_dir(
21085        lookup: *mut X509_LOOKUP,
21086        path: *const ::core::ffi::c_char,
21087        type_: ::core::ffi::c_int,
21088    ) -> ::core::ffi::c_int;
21089}
21090unsafe extern "C" {
21091    pub fn X509_LOOKUP_ctrl(
21092        lookup: *mut X509_LOOKUP,
21093        cmd: ::core::ffi::c_int,
21094        argc: *const ::core::ffi::c_char,
21095        argl: ::core::ffi::c_long,
21096        ret: *mut *mut ::core::ffi::c_char,
21097    ) -> ::core::ffi::c_int;
21098}
21099unsafe extern "C" {
21100    pub fn X509_load_cert_file(
21101        lookup: *mut X509_LOOKUP,
21102        file: *const ::core::ffi::c_char,
21103        type_: ::core::ffi::c_int,
21104    ) -> ::core::ffi::c_int;
21105}
21106unsafe extern "C" {
21107    pub fn X509_load_crl_file(
21108        lookup: *mut X509_LOOKUP,
21109        file: *const ::core::ffi::c_char,
21110        type_: ::core::ffi::c_int,
21111    ) -> ::core::ffi::c_int;
21112}
21113unsafe extern "C" {
21114    pub fn X509_load_cert_crl_file(
21115        lookup: *mut X509_LOOKUP,
21116        file: *const ::core::ffi::c_char,
21117        type_: ::core::ffi::c_int,
21118    ) -> ::core::ffi::c_int;
21119}
21120unsafe extern "C" {
21121    pub fn X509_NAME_hash(name: *const X509_NAME) -> u32;
21122}
21123unsafe extern "C" {
21124    pub fn X509_NAME_hash_old(name: *const X509_NAME) -> u32;
21125}
21126unsafe extern "C" {
21127    pub fn X509_STORE_set_default_paths(store: *mut X509_STORE) -> ::core::ffi::c_int;
21128}
21129unsafe extern "C" {
21130    pub fn X509_get_default_cert_area() -> *const ::core::ffi::c_char;
21131}
21132unsafe extern "C" {
21133    pub fn X509_get_default_cert_dir() -> *const ::core::ffi::c_char;
21134}
21135unsafe extern "C" {
21136    pub fn X509_get_default_cert_file() -> *const ::core::ffi::c_char;
21137}
21138unsafe extern "C" {
21139    pub fn X509_get_default_private_dir() -> *const ::core::ffi::c_char;
21140}
21141unsafe extern "C" {
21142    pub fn X509_get_default_cert_dir_env() -> *const ::core::ffi::c_char;
21143}
21144unsafe extern "C" {
21145    pub fn X509_get_default_cert_file_env() -> *const ::core::ffi::c_char;
21146}
21147#[repr(C)]
21148#[derive(Debug, Copy, Clone)]
21149pub struct Netscape_spki_st {
21150    pub spkac: *mut NETSCAPE_SPKAC,
21151    pub sig_algor: *mut X509_ALGOR,
21152    pub signature: *mut ASN1_BIT_STRING,
21153}
21154unsafe extern "C" {
21155    pub fn NETSCAPE_SPKI_new() -> *mut NETSCAPE_SPKI;
21156}
21157unsafe extern "C" {
21158    pub fn NETSCAPE_SPKI_free(spki: *mut NETSCAPE_SPKI);
21159}
21160unsafe extern "C" {
21161    pub fn d2i_NETSCAPE_SPKI(
21162        out: *mut *mut NETSCAPE_SPKI,
21163        inp: *mut *const u8,
21164        len: ::core::ffi::c_long,
21165    ) -> *mut NETSCAPE_SPKI;
21166}
21167unsafe extern "C" {
21168    pub fn i2d_NETSCAPE_SPKI(spki: *const NETSCAPE_SPKI, outp: *mut *mut u8) -> ::core::ffi::c_int;
21169}
21170unsafe extern "C" {
21171    pub fn NETSCAPE_SPKI_verify(
21172        spki: *mut NETSCAPE_SPKI,
21173        pkey: *mut EVP_PKEY,
21174    ) -> ::core::ffi::c_int;
21175}
21176unsafe extern "C" {
21177    pub fn NETSCAPE_SPKI_b64_decode(
21178        str_: *const ::core::ffi::c_char,
21179        len: ossl_ssize_t,
21180    ) -> *mut NETSCAPE_SPKI;
21181}
21182unsafe extern "C" {
21183    pub fn NETSCAPE_SPKI_b64_encode(spki: *mut NETSCAPE_SPKI) -> *mut ::core::ffi::c_char;
21184}
21185unsafe extern "C" {
21186    pub fn NETSCAPE_SPKI_get_pubkey(spki: *const NETSCAPE_SPKI) -> *mut EVP_PKEY;
21187}
21188unsafe extern "C" {
21189    pub fn NETSCAPE_SPKI_set_pubkey(
21190        spki: *mut NETSCAPE_SPKI,
21191        pkey: *mut EVP_PKEY,
21192    ) -> ::core::ffi::c_int;
21193}
21194unsafe extern "C" {
21195    pub fn NETSCAPE_SPKI_sign(
21196        spki: *mut NETSCAPE_SPKI,
21197        pkey: *mut EVP_PKEY,
21198        md: *const EVP_MD,
21199    ) -> ::core::ffi::c_int;
21200}
21201#[repr(C)]
21202#[derive(Debug, Copy, Clone)]
21203pub struct Netscape_spkac_st {
21204    pub pubkey: *mut X509_PUBKEY,
21205    pub challenge: *mut ASN1_IA5STRING,
21206}
21207unsafe extern "C" {
21208    pub fn NETSCAPE_SPKAC_new() -> *mut NETSCAPE_SPKAC;
21209}
21210unsafe extern "C" {
21211    pub fn NETSCAPE_SPKAC_free(spkac: *mut NETSCAPE_SPKAC);
21212}
21213unsafe extern "C" {
21214    pub fn d2i_NETSCAPE_SPKAC(
21215        out: *mut *mut NETSCAPE_SPKAC,
21216        inp: *mut *const u8,
21217        len: ::core::ffi::c_long,
21218    ) -> *mut NETSCAPE_SPKAC;
21219}
21220unsafe extern "C" {
21221    pub fn i2d_NETSCAPE_SPKAC(
21222        spkac: *const NETSCAPE_SPKAC,
21223        outp: *mut *mut u8,
21224    ) -> ::core::ffi::c_int;
21225}
21226#[repr(C)]
21227#[derive(Debug, Copy, Clone)]
21228pub struct rsa_pss_params_st {
21229    pub hashAlgorithm: *mut X509_ALGOR,
21230    pub maskGenAlgorithm: *mut X509_ALGOR,
21231    pub saltLength: *mut ASN1_INTEGER,
21232    pub trailerField: *mut ASN1_INTEGER,
21233    pub maskHash: *mut X509_ALGOR,
21234}
21235unsafe extern "C" {
21236    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
21237}
21238unsafe extern "C" {
21239    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
21240}
21241unsafe extern "C" {
21242    pub fn RSA_PSS_PARAMS_free(params: *mut RSA_PSS_PARAMS);
21243}
21244unsafe extern "C" {
21245    pub fn d2i_RSA_PSS_PARAMS(
21246        out: *mut *mut RSA_PSS_PARAMS,
21247        inp: *mut *const u8,
21248        len: ::core::ffi::c_long,
21249    ) -> *mut RSA_PSS_PARAMS;
21250}
21251unsafe extern "C" {
21252    pub fn i2d_RSA_PSS_PARAMS(in_: *const RSA_PSS_PARAMS, outp: *mut *mut u8)
21253        -> ::core::ffi::c_int;
21254}
21255unsafe extern "C" {
21256    pub fn PKCS8_PRIV_KEY_INFO_new() -> *mut PKCS8_PRIV_KEY_INFO;
21257}
21258unsafe extern "C" {
21259    pub fn PKCS8_PRIV_KEY_INFO_free(key: *mut PKCS8_PRIV_KEY_INFO);
21260}
21261unsafe extern "C" {
21262    pub fn d2i_PKCS8_PRIV_KEY_INFO(
21263        out: *mut *mut PKCS8_PRIV_KEY_INFO,
21264        inp: *mut *const u8,
21265        len: ::core::ffi::c_long,
21266    ) -> *mut PKCS8_PRIV_KEY_INFO;
21267}
21268unsafe extern "C" {
21269    pub fn i2d_PKCS8_PRIV_KEY_INFO(
21270        key: *const PKCS8_PRIV_KEY_INFO,
21271        outp: *mut *mut u8,
21272    ) -> ::core::ffi::c_int;
21273}
21274unsafe extern "C" {
21275    pub fn EVP_PKCS82PKEY(p8: *const PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
21276}
21277unsafe extern "C" {
21278    pub fn EVP_PKEY2PKCS8(pkey: *const EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
21279}
21280unsafe extern "C" {
21281    pub fn X509_SIG_new() -> *mut X509_SIG;
21282}
21283unsafe extern "C" {
21284    pub fn X509_SIG_free(key: *mut X509_SIG);
21285}
21286unsafe extern "C" {
21287    pub fn d2i_X509_SIG(
21288        out: *mut *mut X509_SIG,
21289        inp: *mut *const u8,
21290        len: ::core::ffi::c_long,
21291    ) -> *mut X509_SIG;
21292}
21293unsafe extern "C" {
21294    pub fn i2d_X509_SIG(sig: *const X509_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
21295}
21296unsafe extern "C" {
21297    pub fn X509_SIG_get0(
21298        sig: *const X509_SIG,
21299        out_alg: *mut *const X509_ALGOR,
21300        out_digest: *mut *const ASN1_OCTET_STRING,
21301    );
21302}
21303unsafe extern "C" {
21304    pub fn X509_SIG_getm(
21305        sig: *mut X509_SIG,
21306        out_alg: *mut *mut X509_ALGOR,
21307        out_digest: *mut *mut ASN1_OCTET_STRING,
21308    );
21309}
21310unsafe extern "C" {
21311    pub fn X509_print_ex(
21312        bp: *mut BIO,
21313        x: *const X509,
21314        nmflag: ::core::ffi::c_ulong,
21315        cflag: ::core::ffi::c_ulong,
21316    ) -> ::core::ffi::c_int;
21317}
21318unsafe extern "C" {
21319    pub fn X509_print_ex_fp(
21320        fp: *mut FILE,
21321        x: *const X509,
21322        nmflag: ::core::ffi::c_ulong,
21323        cflag: ::core::ffi::c_ulong,
21324    ) -> ::core::ffi::c_int;
21325}
21326unsafe extern "C" {
21327    pub fn X509_print(bp: *mut BIO, x: *const X509) -> ::core::ffi::c_int;
21328}
21329unsafe extern "C" {
21330    pub fn X509_print_fp(fp: *mut FILE, x: *const X509) -> ::core::ffi::c_int;
21331}
21332unsafe extern "C" {
21333    pub fn X509_CRL_print(bp: *mut BIO, x: *const X509_CRL) -> ::core::ffi::c_int;
21334}
21335unsafe extern "C" {
21336    pub fn X509_CRL_print_fp(fp: *mut FILE, x: *const X509_CRL) -> ::core::ffi::c_int;
21337}
21338unsafe extern "C" {
21339    pub fn X509_REQ_print_ex(
21340        bp: *mut BIO,
21341        x: *const X509_REQ,
21342        nmflag: ::core::ffi::c_ulong,
21343        cflag: ::core::ffi::c_ulong,
21344    ) -> ::core::ffi::c_int;
21345}
21346unsafe extern "C" {
21347    pub fn X509_REQ_print(bp: *mut BIO, req: *const X509_REQ) -> ::core::ffi::c_int;
21348}
21349unsafe extern "C" {
21350    pub fn X509_REQ_print_fp(fp: *mut FILE, req: *const X509_REQ) -> ::core::ffi::c_int;
21351}
21352unsafe extern "C" {
21353    pub fn X509_NAME_print_ex(
21354        out: *mut BIO,
21355        nm: *const X509_NAME,
21356        indent: ::core::ffi::c_int,
21357        flags: ::core::ffi::c_ulong,
21358    ) -> ::core::ffi::c_int;
21359}
21360unsafe extern "C" {
21361    pub fn X509_NAME_print(
21362        bp: *mut BIO,
21363        name: *const X509_NAME,
21364        obase: ::core::ffi::c_int,
21365    ) -> ::core::ffi::c_int;
21366}
21367unsafe extern "C" {
21368    pub fn X509_NAME_oneline(
21369        name: *const X509_NAME,
21370        buf: *mut ::core::ffi::c_char,
21371        size: ::core::ffi::c_int,
21372    ) -> *mut ::core::ffi::c_char;
21373}
21374unsafe extern "C" {
21375    pub fn X509_NAME_print_ex_fp(
21376        fp: *mut FILE,
21377        nm: *const X509_NAME,
21378        indent: ::core::ffi::c_int,
21379        flags: ::core::ffi::c_ulong,
21380    ) -> ::core::ffi::c_int;
21381}
21382unsafe extern "C" {
21383    pub fn X509_signature_dump(
21384        bio: *mut BIO,
21385        sig: *const ASN1_STRING,
21386        indent: ::core::ffi::c_int,
21387    ) -> ::core::ffi::c_int;
21388}
21389unsafe extern "C" {
21390    pub fn X509_signature_print(
21391        bio: *mut BIO,
21392        alg: *const X509_ALGOR,
21393        sig: *const ASN1_STRING,
21394    ) -> ::core::ffi::c_int;
21395}
21396unsafe extern "C" {
21397    pub fn X509V3_EXT_print(
21398        out: *mut BIO,
21399        ext: *const X509_EXTENSION,
21400        flag: ::core::ffi::c_ulong,
21401        indent: ::core::ffi::c_int,
21402    ) -> ::core::ffi::c_int;
21403}
21404unsafe extern "C" {
21405    pub fn X509V3_EXT_print_fp(
21406        out: *mut FILE,
21407        ext: *const X509_EXTENSION,
21408        flag: ::core::ffi::c_int,
21409        indent: ::core::ffi::c_int,
21410    ) -> ::core::ffi::c_int;
21411}
21412unsafe extern "C" {
21413    pub fn X509V3_extensions_print(
21414        out: *mut BIO,
21415        title: *const ::core::ffi::c_char,
21416        exts: *const stack_st_X509_EXTENSION,
21417        flag: ::core::ffi::c_ulong,
21418        indent: ::core::ffi::c_int,
21419    ) -> ::core::ffi::c_int;
21420}
21421unsafe extern "C" {
21422    pub fn GENERAL_NAME_print(out: *mut BIO, gen_: *const GENERAL_NAME) -> ::core::ffi::c_int;
21423}
21424unsafe extern "C" {
21425    pub fn X509_pubkey_digest(
21426        x509: *const X509,
21427        md: *const EVP_MD,
21428        out: *mut u8,
21429        out_len: *mut ::core::ffi::c_uint,
21430    ) -> ::core::ffi::c_int;
21431}
21432unsafe extern "C" {
21433    pub fn X509_digest(
21434        x509: *const X509,
21435        md: *const EVP_MD,
21436        out: *mut u8,
21437        out_len: *mut ::core::ffi::c_uint,
21438    ) -> ::core::ffi::c_int;
21439}
21440unsafe extern "C" {
21441    pub fn X509_CRL_digest(
21442        crl: *const X509_CRL,
21443        md: *const EVP_MD,
21444        out: *mut u8,
21445        out_len: *mut ::core::ffi::c_uint,
21446    ) -> ::core::ffi::c_int;
21447}
21448unsafe extern "C" {
21449    pub fn X509_REQ_digest(
21450        req: *const X509_REQ,
21451        md: *const EVP_MD,
21452        out: *mut u8,
21453        out_len: *mut ::core::ffi::c_uint,
21454    ) -> ::core::ffi::c_int;
21455}
21456unsafe extern "C" {
21457    pub fn X509_NAME_digest(
21458        name: *const X509_NAME,
21459        md: *const EVP_MD,
21460        out: *mut u8,
21461        out_len: *mut ::core::ffi::c_uint,
21462    ) -> ::core::ffi::c_int;
21463}
21464unsafe extern "C" {
21465    pub fn d2i_X509_bio(bp: *mut BIO, x509: *mut *mut X509) -> *mut X509;
21466}
21467unsafe extern "C" {
21468    pub fn d2i_X509_CRL_bio(bp: *mut BIO, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
21469}
21470unsafe extern "C" {
21471    pub fn d2i_X509_REQ_bio(bp: *mut BIO, req: *mut *mut X509_REQ) -> *mut X509_REQ;
21472}
21473unsafe extern "C" {
21474    pub fn d2i_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21475}
21476unsafe extern "C" {
21477    pub fn d2i_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21478}
21479unsafe extern "C" {
21480    pub fn d2i_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21481}
21482unsafe extern "C" {
21483    pub fn d2i_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
21484}
21485unsafe extern "C" {
21486    pub fn d2i_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
21487}
21488unsafe extern "C" {
21489    pub fn d2i_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21490}
21491unsafe extern "C" {
21492    pub fn d2i_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21493}
21494unsafe extern "C" {
21495    pub fn d2i_PKCS8_bio(bp: *mut BIO, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
21496}
21497unsafe extern "C" {
21498    pub fn d2i_PKCS8_PRIV_KEY_INFO_bio(
21499        bp: *mut BIO,
21500        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
21501    ) -> *mut PKCS8_PRIV_KEY_INFO;
21502}
21503unsafe extern "C" {
21504    pub fn d2i_PUBKEY_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21505}
21506unsafe extern "C" {
21507    pub fn d2i_DHparams_bio(bp: *mut BIO, dh: *mut *mut DH) -> *mut DH;
21508}
21509unsafe extern "C" {
21510    pub fn d2i_PrivateKey_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21511}
21512unsafe extern "C" {
21513    pub fn i2d_X509_bio(bp: *mut BIO, x509: *const X509) -> ::core::ffi::c_int;
21514}
21515unsafe extern "C" {
21516    pub fn i2d_X509_CRL_bio(bp: *mut BIO, crl: *const X509_CRL) -> ::core::ffi::c_int;
21517}
21518unsafe extern "C" {
21519    pub fn i2d_X509_REQ_bio(bp: *mut BIO, req: *const X509_REQ) -> ::core::ffi::c_int;
21520}
21521unsafe extern "C" {
21522    pub fn i2d_RSAPrivateKey_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21523}
21524unsafe extern "C" {
21525    pub fn i2d_RSAPublicKey_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21526}
21527unsafe extern "C" {
21528    pub fn i2d_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21529}
21530unsafe extern "C" {
21531    pub fn i2d_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *const DSA) -> ::core::ffi::c_int;
21532}
21533unsafe extern "C" {
21534    pub fn i2d_DSAPrivateKey_bio(bp: *mut BIO, dsa: *const DSA) -> ::core::ffi::c_int;
21535}
21536unsafe extern "C" {
21537    pub fn i2d_EC_PUBKEY_bio(bp: *mut BIO, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21538}
21539unsafe extern "C" {
21540    pub fn i2d_ECPrivateKey_bio(bp: *mut BIO, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21541}
21542unsafe extern "C" {
21543    pub fn i2d_PKCS8_bio(bp: *mut BIO, p8: *const X509_SIG) -> ::core::ffi::c_int;
21544}
21545unsafe extern "C" {
21546    pub fn i2d_PKCS8_PRIV_KEY_INFO_bio(
21547        bp: *mut BIO,
21548        p8inf: *const PKCS8_PRIV_KEY_INFO,
21549    ) -> ::core::ffi::c_int;
21550}
21551unsafe extern "C" {
21552    pub fn i2d_PrivateKey_bio(bp: *mut BIO, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21553}
21554unsafe extern "C" {
21555    pub fn i2d_PUBKEY_bio(bp: *mut BIO, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21556}
21557unsafe extern "C" {
21558    pub fn i2d_DHparams_bio(bp: *mut BIO, dh: *const DH) -> ::core::ffi::c_int;
21559}
21560unsafe extern "C" {
21561    pub fn i2d_PKCS8PrivateKeyInfo_bio(bp: *mut BIO, key: *const EVP_PKEY) -> ::core::ffi::c_int;
21562}
21563unsafe extern "C" {
21564    pub fn d2i_X509_fp(fp: *mut FILE, x509: *mut *mut X509) -> *mut X509;
21565}
21566unsafe extern "C" {
21567    pub fn d2i_X509_CRL_fp(fp: *mut FILE, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
21568}
21569unsafe extern "C" {
21570    pub fn d2i_X509_REQ_fp(fp: *mut FILE, req: *mut *mut X509_REQ) -> *mut X509_REQ;
21571}
21572unsafe extern "C" {
21573    pub fn d2i_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21574}
21575unsafe extern "C" {
21576    pub fn d2i_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21577}
21578unsafe extern "C" {
21579    pub fn d2i_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21580}
21581unsafe extern "C" {
21582    pub fn d2i_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
21583}
21584unsafe extern "C" {
21585    pub fn d2i_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
21586}
21587unsafe extern "C" {
21588    pub fn d2i_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21589}
21590unsafe extern "C" {
21591    pub fn d2i_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21592}
21593unsafe extern "C" {
21594    pub fn d2i_PKCS8_fp(fp: *mut FILE, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
21595}
21596unsafe extern "C" {
21597    pub fn d2i_PKCS8_PRIV_KEY_INFO_fp(
21598        fp: *mut FILE,
21599        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
21600    ) -> *mut PKCS8_PRIV_KEY_INFO;
21601}
21602unsafe extern "C" {
21603    pub fn d2i_PrivateKey_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21604}
21605unsafe extern "C" {
21606    pub fn d2i_PUBKEY_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21607}
21608unsafe extern "C" {
21609    pub fn i2d_X509_fp(fp: *mut FILE, x509: *const X509) -> ::core::ffi::c_int;
21610}
21611unsafe extern "C" {
21612    pub fn i2d_X509_CRL_fp(fp: *mut FILE, crl: *const X509_CRL) -> ::core::ffi::c_int;
21613}
21614unsafe extern "C" {
21615    pub fn i2d_X509_REQ_fp(fp: *mut FILE, req: *const X509_REQ) -> ::core::ffi::c_int;
21616}
21617unsafe extern "C" {
21618    pub fn i2d_RSAPrivateKey_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21619}
21620unsafe extern "C" {
21621    pub fn i2d_RSAPublicKey_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21622}
21623unsafe extern "C" {
21624    pub fn i2d_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21625}
21626unsafe extern "C" {
21627    pub fn i2d_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *const DSA) -> ::core::ffi::c_int;
21628}
21629unsafe extern "C" {
21630    pub fn i2d_DSAPrivateKey_fp(fp: *mut FILE, dsa: *const DSA) -> ::core::ffi::c_int;
21631}
21632unsafe extern "C" {
21633    pub fn i2d_EC_PUBKEY_fp(fp: *mut FILE, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21634}
21635unsafe extern "C" {
21636    pub fn i2d_ECPrivateKey_fp(fp: *mut FILE, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21637}
21638unsafe extern "C" {
21639    pub fn i2d_PKCS8_fp(fp: *mut FILE, p8: *const X509_SIG) -> ::core::ffi::c_int;
21640}
21641unsafe extern "C" {
21642    pub fn i2d_PKCS8_PRIV_KEY_INFO_fp(
21643        fp: *mut FILE,
21644        p8inf: *const PKCS8_PRIV_KEY_INFO,
21645    ) -> ::core::ffi::c_int;
21646}
21647unsafe extern "C" {
21648    pub fn i2d_PKCS8PrivateKeyInfo_fp(fp: *mut FILE, key: *const EVP_PKEY) -> ::core::ffi::c_int;
21649}
21650unsafe extern "C" {
21651    pub fn i2d_PrivateKey_fp(fp: *mut FILE, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21652}
21653unsafe extern "C" {
21654    pub fn i2d_PUBKEY_fp(fp: *mut FILE, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21655}
21656unsafe extern "C" {
21657    pub fn X509_find_by_issuer_and_serial(
21658        sk: *const stack_st_X509,
21659        name: *const X509_NAME,
21660        serial: *const ASN1_INTEGER,
21661    ) -> *mut X509;
21662}
21663unsafe extern "C" {
21664    pub fn X509_find_by_subject(sk: *const stack_st_X509, name: *const X509_NAME) -> *mut X509;
21665}
21666unsafe extern "C" {
21667    pub fn X509_cmp_time(s: *const ASN1_TIME, t: *const time_t) -> ::core::ffi::c_int;
21668}
21669unsafe extern "C" {
21670    pub fn X509_cmp_time_posix(s: *const ASN1_TIME, t: i64) -> ::core::ffi::c_int;
21671}
21672unsafe extern "C" {
21673    pub fn X509_cmp_current_time(s: *const ASN1_TIME) -> ::core::ffi::c_int;
21674}
21675unsafe extern "C" {
21676    pub fn X509_time_adj(
21677        s: *mut ASN1_TIME,
21678        offset_sec: ::core::ffi::c_long,
21679        t: *const time_t,
21680    ) -> *mut ASN1_TIME;
21681}
21682unsafe extern "C" {
21683    pub fn X509_time_adj_ex(
21684        s: *mut ASN1_TIME,
21685        offset_day: ::core::ffi::c_int,
21686        offset_sec: ::core::ffi::c_long,
21687        t: *const time_t,
21688    ) -> *mut ASN1_TIME;
21689}
21690unsafe extern "C" {
21691    pub fn X509_gmtime_adj(s: *mut ASN1_TIME, offset_sec: ::core::ffi::c_long) -> *mut ASN1_TIME;
21692}
21693unsafe extern "C" {
21694    pub fn X509_issuer_name_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
21695}
21696unsafe extern "C" {
21697    pub fn X509_subject_name_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
21698}
21699unsafe extern "C" {
21700    pub fn X509_CRL_cmp(a: *const X509_CRL, b: *const X509_CRL) -> ::core::ffi::c_int;
21701}
21702unsafe extern "C" {
21703    pub fn X509_issuer_name_hash(x509: *const X509) -> u32;
21704}
21705unsafe extern "C" {
21706    pub fn X509_subject_name_hash(x509: *const X509) -> u32;
21707}
21708unsafe extern "C" {
21709    pub fn X509_issuer_name_hash_old(x509: *const X509) -> u32;
21710}
21711unsafe extern "C" {
21712    pub fn X509_subject_name_hash_old(x509: *const X509) -> u32;
21713}
21714unsafe extern "C" {
21715    pub fn X509_get_ex_new_index(
21716        argl: ::core::ffi::c_long,
21717        argp: *mut ::core::ffi::c_void,
21718        unused: *mut CRYPTO_EX_unused,
21719        dup_unused: CRYPTO_EX_dup,
21720        free_func: CRYPTO_EX_free,
21721    ) -> ::core::ffi::c_int;
21722}
21723unsafe extern "C" {
21724    pub fn X509_set_ex_data(
21725        r: *mut X509,
21726        idx: ::core::ffi::c_int,
21727        arg: *mut ::core::ffi::c_void,
21728    ) -> ::core::ffi::c_int;
21729}
21730unsafe extern "C" {
21731    pub fn X509_get_ex_data(r: *mut X509, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
21732}
21733unsafe extern "C" {
21734    pub fn X509_STORE_CTX_get_ex_new_index(
21735        argl: ::core::ffi::c_long,
21736        argp: *mut ::core::ffi::c_void,
21737        unused: *mut CRYPTO_EX_unused,
21738        dup_unused: CRYPTO_EX_dup,
21739        free_func: CRYPTO_EX_free,
21740    ) -> ::core::ffi::c_int;
21741}
21742unsafe extern "C" {
21743    pub fn X509_STORE_CTX_set_ex_data(
21744        ctx: *mut X509_STORE_CTX,
21745        idx: ::core::ffi::c_int,
21746        data: *mut ::core::ffi::c_void,
21747    ) -> ::core::ffi::c_int;
21748}
21749unsafe extern "C" {
21750    pub fn X509_STORE_CTX_get_ex_data(
21751        ctx: *mut X509_STORE_CTX,
21752        idx: ::core::ffi::c_int,
21753    ) -> *mut ::core::ffi::c_void;
21754}
21755unsafe extern "C" {
21756    pub fn ASN1_digest(
21757        i2d: i2d_of_void,
21758        type_: *const EVP_MD,
21759        data: *mut ::core::ffi::c_char,
21760        md: *mut ::core::ffi::c_uchar,
21761        len: *mut ::core::ffi::c_uint,
21762    ) -> ::core::ffi::c_int;
21763}
21764unsafe extern "C" {
21765    pub fn ASN1_item_digest(
21766        it: *const ASN1_ITEM,
21767        type_: *const EVP_MD,
21768        data: *mut ::core::ffi::c_void,
21769        md: *mut ::core::ffi::c_uchar,
21770        len: *mut ::core::ffi::c_uint,
21771    ) -> ::core::ffi::c_int;
21772}
21773unsafe extern "C" {
21774    pub fn ASN1_item_verify(
21775        it: *const ASN1_ITEM,
21776        algor1: *const X509_ALGOR,
21777        signature: *const ASN1_BIT_STRING,
21778        data: *mut ::core::ffi::c_void,
21779        pkey: *mut EVP_PKEY,
21780    ) -> ::core::ffi::c_int;
21781}
21782unsafe extern "C" {
21783    pub fn ASN1_item_sign(
21784        it: *const ASN1_ITEM,
21785        algor1: *mut X509_ALGOR,
21786        algor2: *mut X509_ALGOR,
21787        signature: *mut ASN1_BIT_STRING,
21788        data: *mut ::core::ffi::c_void,
21789        pkey: *mut EVP_PKEY,
21790        type_: *const EVP_MD,
21791    ) -> ::core::ffi::c_int;
21792}
21793unsafe extern "C" {
21794    pub fn ASN1_item_sign_ctx(
21795        it: *const ASN1_ITEM,
21796        algor1: *mut X509_ALGOR,
21797        algor2: *mut X509_ALGOR,
21798        signature: *mut ASN1_BIT_STRING,
21799        asn: *mut ::core::ffi::c_void,
21800        ctx: *mut EVP_MD_CTX,
21801    ) -> ::core::ffi::c_int;
21802}
21803unsafe extern "C" {
21804    pub fn X509_supported_extension(ex: *const X509_EXTENSION) -> ::core::ffi::c_int;
21805}
21806unsafe extern "C" {
21807    pub fn X509_check_ca(x509: *const X509) -> ::core::ffi::c_int;
21808}
21809unsafe extern "C" {
21810    pub fn X509_check_issued(issuer: *const X509, subject: *const X509) -> ::core::ffi::c_int;
21811}
21812unsafe extern "C" {
21813    pub fn NAME_CONSTRAINTS_check(
21814        x509: *const X509,
21815        nc: *const NAME_CONSTRAINTS,
21816    ) -> ::core::ffi::c_int;
21817}
21818unsafe extern "C" {
21819    pub fn X509_check_host(
21820        x509: *const X509,
21821        chk: *const ::core::ffi::c_char,
21822        chklen: usize,
21823        flags: ::core::ffi::c_uint,
21824        out_peername: *mut *mut ::core::ffi::c_char,
21825    ) -> ::core::ffi::c_int;
21826}
21827unsafe extern "C" {
21828    pub fn X509_check_email(
21829        x509: *const X509,
21830        chk: *const ::core::ffi::c_char,
21831        chklen: usize,
21832        flags: ::core::ffi::c_uint,
21833    ) -> ::core::ffi::c_int;
21834}
21835unsafe extern "C" {
21836    pub fn X509_check_ip(
21837        x509: *const X509,
21838        chk: *const u8,
21839        chklen: usize,
21840        flags: ::core::ffi::c_uint,
21841    ) -> ::core::ffi::c_int;
21842}
21843unsafe extern "C" {
21844    pub fn X509_check_ip_asc(
21845        x509: *const X509,
21846        ipasc: *const ::core::ffi::c_char,
21847        flags: ::core::ffi::c_uint,
21848    ) -> ::core::ffi::c_int;
21849}
21850unsafe extern "C" {
21851    pub fn X509_STORE_CTX_get1_issuer(
21852        out_issuer: *mut *mut X509,
21853        ctx: *mut X509_STORE_CTX,
21854        x509: *const X509,
21855    ) -> ::core::ffi::c_int;
21856}
21857unsafe extern "C" {
21858    pub fn X509_check_purpose(
21859        x509: *mut X509,
21860        purpose: ::core::ffi::c_int,
21861        ca: ::core::ffi::c_int,
21862    ) -> ::core::ffi::c_int;
21863}
21864unsafe extern "C" {
21865    pub fn X509_check_trust(
21866        x509: *mut X509,
21867        id: ::core::ffi::c_int,
21868        flags: ::core::ffi::c_int,
21869    ) -> ::core::ffi::c_int;
21870}
21871unsafe extern "C" {
21872    pub fn X509_STORE_CTX_get1_certs(
21873        ctx: *mut X509_STORE_CTX,
21874        name: *const X509_NAME,
21875    ) -> *mut stack_st_X509;
21876}
21877unsafe extern "C" {
21878    pub fn X509_STORE_CTX_get1_crls(
21879        ctx: *mut X509_STORE_CTX,
21880        name: *const X509_NAME,
21881    ) -> *mut stack_st_X509_CRL;
21882}
21883unsafe extern "C" {
21884    pub fn X509_STORE_CTX_get_by_subject(
21885        ctx: *mut X509_STORE_CTX,
21886        type_: ::core::ffi::c_int,
21887        name: *const X509_NAME,
21888        ret: *mut X509_OBJECT,
21889    ) -> ::core::ffi::c_int;
21890}
21891#[repr(C)]
21892#[derive(Debug, Copy, Clone)]
21893pub struct private_key_st {
21894    pub dec_pkey: *mut EVP_PKEY,
21895}
21896#[repr(C)]
21897#[derive(Debug, Copy, Clone)]
21898pub struct X509_info_st {
21899    pub x509: *mut X509,
21900    pub crl: *mut X509_CRL,
21901    pub x_pkey: *mut X509_PKEY,
21902    pub enc_cipher: EVP_CIPHER_INFO,
21903    pub enc_len: ::core::ffi::c_int,
21904    pub enc_data: *mut ::core::ffi::c_char,
21905}
21906#[repr(C)]
21907#[derive(Debug)]
21908pub struct stack_st_X509_INFO {
21909    _unused: [u8; 0],
21910}
21911pub type sk_X509_INFO_free_func =
21912    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_INFO)>;
21913pub type sk_X509_INFO_copy_func =
21914    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_INFO) -> *mut X509_INFO>;
21915pub type sk_X509_INFO_cmp_func = ::core::option::Option<
21916    unsafe extern "C" fn(
21917        arg1: *const *const X509_INFO,
21918        arg2: *const *const X509_INFO,
21919    ) -> ::core::ffi::c_int,
21920>;
21921pub type sk_X509_INFO_delete_if_func = ::core::option::Option<
21922    unsafe extern "C" fn(
21923        arg1: *mut X509_INFO,
21924        arg2: *mut ::core::ffi::c_void,
21925    ) -> ::core::ffi::c_int,
21926>;
21927unsafe extern "C" {
21928    #[link_name = "sk_X509_INFO_call_free_func__extern"]
21929    pub fn sk_X509_INFO_call_free_func(
21930        free_func: OPENSSL_sk_free_func,
21931        ptr: *mut ::core::ffi::c_void,
21932    );
21933}
21934unsafe extern "C" {
21935    #[link_name = "sk_X509_INFO_call_copy_func__extern"]
21936    pub fn sk_X509_INFO_call_copy_func(
21937        copy_func: OPENSSL_sk_copy_func,
21938        ptr: *const ::core::ffi::c_void,
21939    ) -> *mut ::core::ffi::c_void;
21940}
21941unsafe extern "C" {
21942    #[link_name = "sk_X509_INFO_call_cmp_func__extern"]
21943    pub fn sk_X509_INFO_call_cmp_func(
21944        cmp_func: OPENSSL_sk_cmp_func,
21945        a: *const ::core::ffi::c_void,
21946        b: *const ::core::ffi::c_void,
21947    ) -> ::core::ffi::c_int;
21948}
21949unsafe extern "C" {
21950    #[link_name = "sk_X509_INFO_call_delete_if_func__extern"]
21951    pub fn sk_X509_INFO_call_delete_if_func(
21952        func: OPENSSL_sk_delete_if_func,
21953        obj: *mut ::core::ffi::c_void,
21954        data: *mut ::core::ffi::c_void,
21955    ) -> ::core::ffi::c_int;
21956}
21957unsafe extern "C" {
21958    #[link_name = "sk_X509_INFO_new__extern"]
21959    pub fn sk_X509_INFO_new(comp: sk_X509_INFO_cmp_func) -> *mut stack_st_X509_INFO;
21960}
21961unsafe extern "C" {
21962    #[link_name = "sk_X509_INFO_new_null__extern"]
21963    pub fn sk_X509_INFO_new_null() -> *mut stack_st_X509_INFO;
21964}
21965unsafe extern "C" {
21966    #[link_name = "sk_X509_INFO_num__extern"]
21967    pub fn sk_X509_INFO_num(sk: *const stack_st_X509_INFO) -> usize;
21968}
21969unsafe extern "C" {
21970    #[link_name = "sk_X509_INFO_zero__extern"]
21971    pub fn sk_X509_INFO_zero(sk: *mut stack_st_X509_INFO);
21972}
21973unsafe extern "C" {
21974    #[link_name = "sk_X509_INFO_value__extern"]
21975    pub fn sk_X509_INFO_value(sk: *const stack_st_X509_INFO, i: usize) -> *mut X509_INFO;
21976}
21977unsafe extern "C" {
21978    #[link_name = "sk_X509_INFO_set__extern"]
21979    pub fn sk_X509_INFO_set(
21980        sk: *mut stack_st_X509_INFO,
21981        i: usize,
21982        p: *mut X509_INFO,
21983    ) -> *mut X509_INFO;
21984}
21985unsafe extern "C" {
21986    #[link_name = "sk_X509_INFO_free__extern"]
21987    pub fn sk_X509_INFO_free(sk: *mut stack_st_X509_INFO);
21988}
21989unsafe extern "C" {
21990    #[link_name = "sk_X509_INFO_pop_free__extern"]
21991    pub fn sk_X509_INFO_pop_free(sk: *mut stack_st_X509_INFO, free_func: sk_X509_INFO_free_func);
21992}
21993unsafe extern "C" {
21994    #[link_name = "sk_X509_INFO_insert__extern"]
21995    pub fn sk_X509_INFO_insert(
21996        sk: *mut stack_st_X509_INFO,
21997        p: *mut X509_INFO,
21998        where_: usize,
21999    ) -> usize;
22000}
22001unsafe extern "C" {
22002    #[link_name = "sk_X509_INFO_delete__extern"]
22003    pub fn sk_X509_INFO_delete(sk: *mut stack_st_X509_INFO, where_: usize) -> *mut X509_INFO;
22004}
22005unsafe extern "C" {
22006    #[link_name = "sk_X509_INFO_delete_ptr__extern"]
22007    pub fn sk_X509_INFO_delete_ptr(
22008        sk: *mut stack_st_X509_INFO,
22009        p: *const X509_INFO,
22010    ) -> *mut X509_INFO;
22011}
22012unsafe extern "C" {
22013    #[link_name = "sk_X509_INFO_delete_if__extern"]
22014    pub fn sk_X509_INFO_delete_if(
22015        sk: *mut stack_st_X509_INFO,
22016        func: sk_X509_INFO_delete_if_func,
22017        data: *mut ::core::ffi::c_void,
22018    );
22019}
22020unsafe extern "C" {
22021    #[link_name = "sk_X509_INFO_find__extern"]
22022    pub fn sk_X509_INFO_find(
22023        sk: *const stack_st_X509_INFO,
22024        out_index: *mut usize,
22025        p: *const X509_INFO,
22026    ) -> ::core::ffi::c_int;
22027}
22028unsafe extern "C" {
22029    #[link_name = "sk_X509_INFO_shift__extern"]
22030    pub fn sk_X509_INFO_shift(sk: *mut stack_st_X509_INFO) -> *mut X509_INFO;
22031}
22032unsafe extern "C" {
22033    #[link_name = "sk_X509_INFO_push__extern"]
22034    pub fn sk_X509_INFO_push(sk: *mut stack_st_X509_INFO, p: *mut X509_INFO) -> usize;
22035}
22036unsafe extern "C" {
22037    #[link_name = "sk_X509_INFO_pop__extern"]
22038    pub fn sk_X509_INFO_pop(sk: *mut stack_st_X509_INFO) -> *mut X509_INFO;
22039}
22040unsafe extern "C" {
22041    #[link_name = "sk_X509_INFO_dup__extern"]
22042    pub fn sk_X509_INFO_dup(sk: *const stack_st_X509_INFO) -> *mut stack_st_X509_INFO;
22043}
22044unsafe extern "C" {
22045    #[link_name = "sk_X509_INFO_sort__extern"]
22046    pub fn sk_X509_INFO_sort(sk: *mut stack_st_X509_INFO);
22047}
22048unsafe extern "C" {
22049    #[link_name = "sk_X509_INFO_sort_and_dedup__extern"]
22050    pub fn sk_X509_INFO_sort_and_dedup(
22051        sk: *mut stack_st_X509_INFO,
22052        free_func: sk_X509_INFO_free_func,
22053    );
22054}
22055unsafe extern "C" {
22056    #[link_name = "sk_X509_INFO_is_sorted__extern"]
22057    pub fn sk_X509_INFO_is_sorted(sk: *const stack_st_X509_INFO) -> ::core::ffi::c_int;
22058}
22059unsafe extern "C" {
22060    #[link_name = "sk_X509_INFO_set_cmp_func__extern"]
22061    pub fn sk_X509_INFO_set_cmp_func(
22062        sk: *mut stack_st_X509_INFO,
22063        comp: sk_X509_INFO_cmp_func,
22064    ) -> sk_X509_INFO_cmp_func;
22065}
22066unsafe extern "C" {
22067    #[link_name = "sk_X509_INFO_deep_copy__extern"]
22068    pub fn sk_X509_INFO_deep_copy(
22069        sk: *const stack_st_X509_INFO,
22070        copy_func: sk_X509_INFO_copy_func,
22071        free_func: sk_X509_INFO_free_func,
22072    ) -> *mut stack_st_X509_INFO;
22073}
22074unsafe extern "C" {
22075    pub fn X509_INFO_free(info: *mut X509_INFO);
22076}
22077pub type X509V3_EXT_NEW =
22078    ::core::option::Option<unsafe extern "C" fn() -> *mut ::core::ffi::c_void>;
22079pub type X509V3_EXT_FREE =
22080    ::core::option::Option<unsafe extern "C" fn(ext: *mut ::core::ffi::c_void)>;
22081pub type X509V3_EXT_D2I = ::core::option::Option<
22082    unsafe extern "C" fn(
22083        ext: *mut ::core::ffi::c_void,
22084        inp: *mut *const u8,
22085        len: ::core::ffi::c_long,
22086    ) -> *mut ::core::ffi::c_void,
22087>;
22088pub type X509V3_EXT_I2D = ::core::option::Option<
22089    unsafe extern "C" fn(ext: *mut ::core::ffi::c_void, outp: *mut *mut u8) -> ::core::ffi::c_int,
22090>;
22091pub type X509V3_EXT_I2V = ::core::option::Option<
22092    unsafe extern "C" fn(
22093        method: *const X509V3_EXT_METHOD,
22094        ext: *mut ::core::ffi::c_void,
22095        extlist: *mut stack_st_CONF_VALUE,
22096    ) -> *mut stack_st_CONF_VALUE,
22097>;
22098pub type X509V3_EXT_V2I = ::core::option::Option<
22099    unsafe extern "C" fn(
22100        method: *const X509V3_EXT_METHOD,
22101        ctx: *const X509V3_CTX,
22102        values: *const stack_st_CONF_VALUE,
22103    ) -> *mut ::core::ffi::c_void,
22104>;
22105pub type X509V3_EXT_I2S = ::core::option::Option<
22106    unsafe extern "C" fn(
22107        method: *const X509V3_EXT_METHOD,
22108        ext: *mut ::core::ffi::c_void,
22109    ) -> *mut ::core::ffi::c_char,
22110>;
22111pub type X509V3_EXT_S2I = ::core::option::Option<
22112    unsafe extern "C" fn(
22113        method: *const X509V3_EXT_METHOD,
22114        ctx: *const X509V3_CTX,
22115        str_: *const ::core::ffi::c_char,
22116    ) -> *mut ::core::ffi::c_void,
22117>;
22118pub type X509V3_EXT_I2R = ::core::option::Option<
22119    unsafe extern "C" fn(
22120        method: *const X509V3_EXT_METHOD,
22121        ext: *mut ::core::ffi::c_void,
22122        out: *mut BIO,
22123        indent: ::core::ffi::c_int,
22124    ) -> ::core::ffi::c_int,
22125>;
22126pub type X509V3_EXT_R2I = ::core::option::Option<
22127    unsafe extern "C" fn(
22128        method: *const X509V3_EXT_METHOD,
22129        ctx: *const X509V3_CTX,
22130        str_: *const ::core::ffi::c_char,
22131    ) -> *mut ::core::ffi::c_void,
22132>;
22133#[repr(C)]
22134#[derive(Debug, Copy, Clone)]
22135pub struct v3_ext_method {
22136    pub ext_nid: ::core::ffi::c_int,
22137    pub ext_flags: ::core::ffi::c_int,
22138    pub it: *const ASN1_ITEM_st,
22139    pub ext_new: X509V3_EXT_NEW,
22140    pub ext_free: X509V3_EXT_FREE,
22141    pub d2i: X509V3_EXT_D2I,
22142    pub i2d: X509V3_EXT_I2D,
22143    pub i2s: X509V3_EXT_I2S,
22144    pub s2i: X509V3_EXT_S2I,
22145    pub i2v: X509V3_EXT_I2V,
22146    pub v2i: X509V3_EXT_V2I,
22147    pub i2r: X509V3_EXT_I2R,
22148    pub r2i: X509V3_EXT_R2I,
22149    pub usr_data: *mut ::core::ffi::c_void,
22150}
22151unsafe extern "C" {
22152    pub fn X509V3_EXT_get(ext: *const X509_EXTENSION) -> *const X509V3_EXT_METHOD;
22153}
22154unsafe extern "C" {
22155    pub fn X509V3_EXT_get_nid(nid: ::core::ffi::c_int) -> *const X509V3_EXT_METHOD;
22156}
22157unsafe extern "C" {
22158    pub fn X509V3_EXT_add(ext: *mut X509V3_EXT_METHOD) -> ::core::ffi::c_int;
22159}
22160unsafe extern "C" {
22161    pub fn X509V3_EXT_add_alias(
22162        nid_to: ::core::ffi::c_int,
22163        nid_from: ::core::ffi::c_int,
22164    ) -> ::core::ffi::c_int;
22165}
22166#[repr(C)]
22167#[derive(Debug, Copy, Clone)]
22168pub struct v3_ext_ctx {
22169    pub flags: ::core::ffi::c_int,
22170    pub issuer_cert: *const X509,
22171    pub subject_cert: *const X509,
22172    pub subject_req: *const X509_REQ,
22173    pub crl: *const X509_CRL,
22174    pub db: *const CONF,
22175}
22176unsafe extern "C" {
22177    pub fn X509V3_set_ctx(
22178        ctx: *mut X509V3_CTX,
22179        issuer: *const X509,
22180        subject: *const X509,
22181        req: *const X509_REQ,
22182        crl: *const X509_CRL,
22183        flags: ::core::ffi::c_int,
22184    );
22185}
22186unsafe extern "C" {
22187    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *const CONF);
22188}
22189unsafe extern "C" {
22190    pub fn X509V3_EXT_nconf(
22191        conf: *const CONF,
22192        ctx: *const X509V3_CTX,
22193        name: *const ::core::ffi::c_char,
22194        value: *const ::core::ffi::c_char,
22195    ) -> *mut X509_EXTENSION;
22196}
22197unsafe extern "C" {
22198    pub fn X509V3_EXT_nconf_nid(
22199        conf: *const CONF,
22200        ctx: *const X509V3_CTX,
22201        ext_nid: ::core::ffi::c_int,
22202        value: *const ::core::ffi::c_char,
22203    ) -> *mut X509_EXTENSION;
22204}
22205unsafe extern "C" {
22206    pub fn X509V3_EXT_conf_nid(
22207        conf: *mut CRYPTO_MUST_BE_NULL,
22208        ctx: *const X509V3_CTX,
22209        ext_nid: ::core::ffi::c_int,
22210        value: *const ::core::ffi::c_char,
22211    ) -> *mut X509_EXTENSION;
22212}
22213unsafe extern "C" {
22214    pub fn X509V3_EXT_add_nconf_sk(
22215        conf: *const CONF,
22216        ctx: *const X509V3_CTX,
22217        section: *const ::core::ffi::c_char,
22218        sk: *mut *mut stack_st_X509_EXTENSION,
22219    ) -> ::core::ffi::c_int;
22220}
22221unsafe extern "C" {
22222    pub fn X509V3_EXT_add_nconf(
22223        conf: *const CONF,
22224        ctx: *const X509V3_CTX,
22225        section: *const ::core::ffi::c_char,
22226        cert: *mut X509,
22227    ) -> ::core::ffi::c_int;
22228}
22229unsafe extern "C" {
22230    pub fn X509V3_EXT_REQ_add_nconf(
22231        conf: *const CONF,
22232        ctx: *const X509V3_CTX,
22233        section: *const ::core::ffi::c_char,
22234        req: *mut X509_REQ,
22235    ) -> ::core::ffi::c_int;
22236}
22237unsafe extern "C" {
22238    pub fn X509V3_EXT_CRL_add_nconf(
22239        conf: *const CONF,
22240        ctx: *const X509V3_CTX,
22241        section: *const ::core::ffi::c_char,
22242        crl: *mut X509_CRL,
22243    ) -> ::core::ffi::c_int;
22244}
22245unsafe extern "C" {
22246    pub fn i2s_ASN1_OCTET_STRING(
22247        method: *const X509V3_EXT_METHOD,
22248        oct: *const ASN1_OCTET_STRING,
22249    ) -> *mut ::core::ffi::c_char;
22250}
22251unsafe extern "C" {
22252    pub fn s2i_ASN1_OCTET_STRING(
22253        method: *const X509V3_EXT_METHOD,
22254        ctx: *const X509V3_CTX,
22255        str_: *const ::core::ffi::c_char,
22256    ) -> *mut ASN1_OCTET_STRING;
22257}
22258unsafe extern "C" {
22259    pub fn i2s_ASN1_INTEGER(
22260        method: *const X509V3_EXT_METHOD,
22261        aint: *const ASN1_INTEGER,
22262    ) -> *mut ::core::ffi::c_char;
22263}
22264unsafe extern "C" {
22265    pub fn s2i_ASN1_INTEGER(
22266        method: *const X509V3_EXT_METHOD,
22267        value: *const ::core::ffi::c_char,
22268    ) -> *mut ASN1_INTEGER;
22269}
22270unsafe extern "C" {
22271    pub fn i2s_ASN1_ENUMERATED(
22272        method: *const X509V3_EXT_METHOD,
22273        aint: *const ASN1_ENUMERATED,
22274    ) -> *mut ::core::ffi::c_char;
22275}
22276unsafe extern "C" {
22277    pub fn X509V3_conf_free(val: *mut CONF_VALUE);
22278}
22279unsafe extern "C" {
22280    pub fn i2v_GENERAL_NAME(
22281        method: *const X509V3_EXT_METHOD,
22282        gen_: *const GENERAL_NAME,
22283        ret: *mut stack_st_CONF_VALUE,
22284    ) -> *mut stack_st_CONF_VALUE;
22285}
22286unsafe extern "C" {
22287    pub fn i2v_GENERAL_NAMES(
22288        method: *const X509V3_EXT_METHOD,
22289        gen_: *const GENERAL_NAMES,
22290        extlist: *mut stack_st_CONF_VALUE,
22291    ) -> *mut stack_st_CONF_VALUE;
22292}
22293unsafe extern "C" {
22294    pub fn a2i_IPADDRESS(ipasc: *const ::core::ffi::c_char) -> *mut ASN1_OCTET_STRING;
22295}
22296unsafe extern "C" {
22297    pub fn a2i_IPADDRESS_NC(ipasc: *const ::core::ffi::c_char) -> *mut ASN1_OCTET_STRING;
22298}
22299unsafe extern "C" {
22300    pub fn X509_get_notBefore(x509: *const X509) -> *mut ASN1_TIME;
22301}
22302unsafe extern "C" {
22303    pub fn X509_get_notAfter(x509: *const X509) -> *mut ASN1_TIME;
22304}
22305unsafe extern "C" {
22306    pub fn X509_set_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
22307}
22308unsafe extern "C" {
22309    pub fn X509_set_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
22310}
22311unsafe extern "C" {
22312    pub fn X509_CRL_get_lastUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
22313}
22314unsafe extern "C" {
22315    pub fn X509_CRL_get_nextUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
22316}
22317unsafe extern "C" {
22318    pub fn X509_get_serialNumber(x509: *mut X509) -> *mut ASN1_INTEGER;
22319}
22320unsafe extern "C" {
22321    pub fn X509_NAME_get_text_by_OBJ(
22322        name: *const X509_NAME,
22323        obj: *const ASN1_OBJECT,
22324        buf: *mut ::core::ffi::c_char,
22325        len: ::core::ffi::c_int,
22326    ) -> ::core::ffi::c_int;
22327}
22328unsafe extern "C" {
22329    pub fn X509_NAME_get_text_by_NID(
22330        name: *const X509_NAME,
22331        nid: ::core::ffi::c_int,
22332        buf: *mut ::core::ffi::c_char,
22333        len: ::core::ffi::c_int,
22334    ) -> ::core::ffi::c_int;
22335}
22336unsafe extern "C" {
22337    pub fn X509_STORE_CTX_get0_parent_ctx(ctx: *const X509_STORE_CTX) -> *mut X509_STORE_CTX;
22338}
22339unsafe extern "C" {
22340    pub fn X509_OBJECT_free_contents(obj: *mut X509_OBJECT);
22341}
22342unsafe extern "C" {
22343    pub fn X509_LOOKUP_free(ctx: *mut X509_LOOKUP);
22344}
22345unsafe extern "C" {
22346    pub fn X509_STORE_CTX_cleanup(ctx: *mut X509_STORE_CTX);
22347}
22348unsafe extern "C" {
22349    pub fn X509V3_add_standard_extensions() -> ::core::ffi::c_int;
22350}
22351unsafe extern "C" {
22352    pub fn X509_STORE_CTX_get_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
22353}
22354unsafe extern "C" {
22355    pub fn X509_STORE_CTX_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
22356}
22357pub type X509_STORE_CTX_verify_cb = ::core::option::Option<
22358    unsafe extern "C" fn(arg1: ::core::ffi::c_int, arg2: *mut X509_STORE_CTX) -> ::core::ffi::c_int,
22359>;
22360unsafe extern "C" {
22361    pub fn X509_STORE_CTX_set_verify_cb(
22362        ctx: *mut X509_STORE_CTX,
22363        verify_cb: ::core::option::Option<
22364            unsafe extern "C" fn(
22365                ok: ::core::ffi::c_int,
22366                ctx: *mut X509_STORE_CTX,
22367            ) -> ::core::ffi::c_int,
22368        >,
22369    );
22370}
22371unsafe extern "C" {
22372    pub fn X509_STORE_set_verify_cb(store: *mut X509_STORE, verify_cb: X509_STORE_CTX_verify_cb);
22373}
22374unsafe extern "C" {
22375    pub fn X509_STORE_CTX_set_chain(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
22376}
22377unsafe extern "C" {
22378    pub fn X509_STORE_get0_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
22379}
22380unsafe extern "C" {
22381    pub fn X509_PURPOSE_get_by_sname(sname: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
22382}
22383unsafe extern "C" {
22384    pub fn X509_PURPOSE_get0(id: ::core::ffi::c_int) -> *const X509_PURPOSE;
22385}
22386unsafe extern "C" {
22387    pub fn X509_PURPOSE_get_id(purpose: *const X509_PURPOSE) -> ::core::ffi::c_int;
22388}
22389#[repr(C)]
22390#[derive(Debug, Copy, Clone)]
22391pub struct X509_algor_st {
22392    pub algorithm: *mut ASN1_OBJECT,
22393    pub parameter: *mut ASN1_TYPE,
22394}
22395pub type pem_password_cb = ::core::option::Option<
22396    unsafe extern "C" fn(
22397        out: *mut ::core::ffi::c_char,
22398        max_out: ::core::ffi::c_int,
22399        enc: ::core::ffi::c_int,
22400        userdata: *mut ::core::ffi::c_void,
22401    ) -> ::core::ffi::c_int,
22402>;
22403unsafe extern "C" {
22404    pub fn PEM_def_callback(
22405        buf: *mut ::core::ffi::c_char,
22406        size: ::core::ffi::c_int,
22407        enc: ::core::ffi::c_int,
22408        userdata: *mut ::core::ffi::c_void,
22409    ) -> ::core::ffi::c_int;
22410}
22411unsafe extern "C" {
22412    pub fn PEM_read_bio_X509(
22413        bio: *mut BIO,
22414        out: *mut *mut X509,
22415        cb: pem_password_cb,
22416        userdata: *mut ::core::ffi::c_void,
22417    ) -> *mut X509;
22418}
22419unsafe extern "C" {
22420    pub fn PEM_write_bio_X509(bio: *mut BIO, in_: *const X509) -> ::core::ffi::c_int;
22421}
22422unsafe extern "C" {
22423    pub fn PEM_read_bio_X509_AUX(
22424        bio: *mut BIO,
22425        out: *mut *mut X509,
22426        cb: pem_password_cb,
22427        userdata: *mut ::core::ffi::c_void,
22428    ) -> *mut X509;
22429}
22430unsafe extern "C" {
22431    pub fn PEM_write_bio_X509_AUX(bio: *mut BIO, in_: *const X509) -> ::core::ffi::c_int;
22432}
22433unsafe extern "C" {
22434    pub fn PEM_read_bio_X509_CRL(
22435        bio: *mut BIO,
22436        out: *mut *mut X509_CRL,
22437        cb: pem_password_cb,
22438        userdata: *mut ::core::ffi::c_void,
22439    ) -> *mut X509_CRL;
22440}
22441unsafe extern "C" {
22442    pub fn PEM_write_bio_X509_CRL(bio: *mut BIO, in_: *const X509_CRL) -> ::core::ffi::c_int;
22443}
22444unsafe extern "C" {
22445    pub fn PEM_read_bio_X509_REQ(
22446        bio: *mut BIO,
22447        out: *mut *mut X509_REQ,
22448        cb: pem_password_cb,
22449        userdata: *mut ::core::ffi::c_void,
22450    ) -> *mut X509_REQ;
22451}
22452unsafe extern "C" {
22453    pub fn PEM_write_bio_X509_REQ(bio: *mut BIO, in_: *const X509_REQ) -> ::core::ffi::c_int;
22454}
22455unsafe extern "C" {
22456    pub fn PEM_write_bio_X509_REQ_NEW(bio: *mut BIO, in_: *const X509_REQ) -> ::core::ffi::c_int;
22457}
22458unsafe extern "C" {
22459    pub fn PEM_read_bio_PKCS7(
22460        bio: *mut BIO,
22461        out: *mut *mut PKCS7,
22462        cb: pem_password_cb,
22463        userdata: *mut ::core::ffi::c_void,
22464    ) -> *mut PKCS7;
22465}
22466unsafe extern "C" {
22467    pub fn PEM_write_bio_PKCS7(bio: *mut BIO, in_: *const PKCS7) -> ::core::ffi::c_int;
22468}
22469unsafe extern "C" {
22470    pub fn PEM_X509_INFO_read_bio(
22471        bio: *mut BIO,
22472        sk: *mut stack_st_X509_INFO,
22473        cb: pem_password_cb,
22474        userdata: *mut ::core::ffi::c_void,
22475    ) -> *mut stack_st_X509_INFO;
22476}
22477unsafe extern "C" {
22478    pub fn PEM_read_bio_PrivateKey(
22479        bio: *mut BIO,
22480        out: *mut *mut EVP_PKEY,
22481        cb: pem_password_cb,
22482        userdata: *mut ::core::ffi::c_void,
22483    ) -> *mut EVP_PKEY;
22484}
22485unsafe extern "C" {
22486    pub fn PEM_write_bio_PrivateKey(
22487        bio: *mut BIO,
22488        in_: *const EVP_PKEY,
22489        enc: *const EVP_CIPHER,
22490        pass: *const u8,
22491        pass_len: ::core::ffi::c_int,
22492        cb: pem_password_cb,
22493        userdata: *mut ::core::ffi::c_void,
22494    ) -> ::core::ffi::c_int;
22495}
22496unsafe extern "C" {
22497    pub fn PEM_read_bio_PUBKEY(
22498        bio: *mut BIO,
22499        out: *mut *mut EVP_PKEY,
22500        cb: pem_password_cb,
22501        userdata: *mut ::core::ffi::c_void,
22502    ) -> *mut EVP_PKEY;
22503}
22504unsafe extern "C" {
22505    pub fn PEM_write_bio_PUBKEY(bio: *mut BIO, in_: *const EVP_PKEY) -> ::core::ffi::c_int;
22506}
22507unsafe extern "C" {
22508    pub fn PEM_write_bio_PKCS8PrivateKey_nid(
22509        bio: *mut BIO,
22510        in_: *const EVP_PKEY,
22511        nid: ::core::ffi::c_int,
22512        pass: *const ::core::ffi::c_char,
22513        pass_len: ::core::ffi::c_int,
22514        cb: pem_password_cb,
22515        userdata: *mut ::core::ffi::c_void,
22516    ) -> ::core::ffi::c_int;
22517}
22518unsafe extern "C" {
22519    pub fn PEM_write_bio_PKCS8PrivateKey(
22520        bio: *mut BIO,
22521        in_: *const EVP_PKEY,
22522        enc: *const EVP_CIPHER,
22523        pass: *const ::core::ffi::c_char,
22524        pass_len: ::core::ffi::c_int,
22525        cb: pem_password_cb,
22526        userdata: *mut ::core::ffi::c_void,
22527    ) -> ::core::ffi::c_int;
22528}
22529unsafe extern "C" {
22530    pub fn PEM_write_PKCS8PrivateKey_nid(
22531        fp: *mut FILE,
22532        in_: *const EVP_PKEY,
22533        nid: ::core::ffi::c_int,
22534        pass: *const ::core::ffi::c_char,
22535        pass_len: ::core::ffi::c_int,
22536        cb: pem_password_cb,
22537        userdata: *mut ::core::ffi::c_void,
22538    ) -> ::core::ffi::c_int;
22539}
22540unsafe extern "C" {
22541    pub fn PEM_write_PKCS8PrivateKey(
22542        fp: *mut FILE,
22543        in_: *const EVP_PKEY,
22544        enc: *const EVP_CIPHER,
22545        pass: *const ::core::ffi::c_char,
22546        pass_len: ::core::ffi::c_int,
22547        cb: pem_password_cb,
22548        userdata: *mut ::core::ffi::c_void,
22549    ) -> ::core::ffi::c_int;
22550}
22551unsafe extern "C" {
22552    pub fn PEM_read_bio_PKCS8(
22553        bio: *mut BIO,
22554        out: *mut *mut X509_SIG,
22555        cb: pem_password_cb,
22556        userdata: *mut ::core::ffi::c_void,
22557    ) -> *mut X509_SIG;
22558}
22559unsafe extern "C" {
22560    pub fn PEM_write_bio_PKCS8(bio: *mut BIO, in_: *const X509_SIG) -> ::core::ffi::c_int;
22561}
22562unsafe extern "C" {
22563    pub fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(
22564        bio: *mut BIO,
22565        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22566        cb: pem_password_cb,
22567        userdata: *mut ::core::ffi::c_void,
22568    ) -> *mut PKCS8_PRIV_KEY_INFO;
22569}
22570unsafe extern "C" {
22571    pub fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(
22572        bio: *mut BIO,
22573        in_: *const PKCS8_PRIV_KEY_INFO,
22574    ) -> ::core::ffi::c_int;
22575}
22576unsafe extern "C" {
22577    pub fn PEM_read_bio_RSAPrivateKey(
22578        bio: *mut BIO,
22579        out: *mut *mut RSA,
22580        cb: pem_password_cb,
22581        userdata: *mut ::core::ffi::c_void,
22582    ) -> *mut RSA;
22583}
22584unsafe extern "C" {
22585    pub fn PEM_write_bio_RSAPrivateKey(
22586        bio: *mut BIO,
22587        in_: *const RSA,
22588        enc: *const EVP_CIPHER,
22589        pass: *const u8,
22590        pass_len: ::core::ffi::c_int,
22591        cb: pem_password_cb,
22592        userdata: *mut ::core::ffi::c_void,
22593    ) -> ::core::ffi::c_int;
22594}
22595unsafe extern "C" {
22596    pub fn PEM_read_bio_RSAPublicKey(
22597        bio: *mut BIO,
22598        out: *mut *mut RSA,
22599        cb: pem_password_cb,
22600        userdata: *mut ::core::ffi::c_void,
22601    ) -> *mut RSA;
22602}
22603unsafe extern "C" {
22604    pub fn PEM_write_bio_RSAPublicKey(bio: *mut BIO, in_: *const RSA) -> ::core::ffi::c_int;
22605}
22606unsafe extern "C" {
22607    pub fn PEM_read_bio_RSA_PUBKEY(
22608        bio: *mut BIO,
22609        out: *mut *mut RSA,
22610        cb: pem_password_cb,
22611        userdata: *mut ::core::ffi::c_void,
22612    ) -> *mut RSA;
22613}
22614unsafe extern "C" {
22615    pub fn PEM_write_bio_RSA_PUBKEY(bio: *mut BIO, in_: *const RSA) -> ::core::ffi::c_int;
22616}
22617unsafe extern "C" {
22618    pub fn PEM_read_bio_DSAPrivateKey(
22619        bio: *mut BIO,
22620        out: *mut *mut DSA,
22621        cb: pem_password_cb,
22622        userdata: *mut ::core::ffi::c_void,
22623    ) -> *mut DSA;
22624}
22625unsafe extern "C" {
22626    pub fn PEM_write_bio_DSAPrivateKey(
22627        bio: *mut BIO,
22628        in_: *const DSA,
22629        enc: *const EVP_CIPHER,
22630        pass: *const u8,
22631        pass_len: ::core::ffi::c_int,
22632        cb: pem_password_cb,
22633        userdata: *mut ::core::ffi::c_void,
22634    ) -> ::core::ffi::c_int;
22635}
22636unsafe extern "C" {
22637    pub fn PEM_read_bio_DSA_PUBKEY(
22638        bio: *mut BIO,
22639        out: *mut *mut DSA,
22640        cb: pem_password_cb,
22641        userdata: *mut ::core::ffi::c_void,
22642    ) -> *mut DSA;
22643}
22644unsafe extern "C" {
22645    pub fn PEM_write_bio_DSA_PUBKEY(bio: *mut BIO, in_: *const DSA) -> ::core::ffi::c_int;
22646}
22647unsafe extern "C" {
22648    pub fn PEM_read_bio_DSAparams(
22649        bio: *mut BIO,
22650        out: *mut *mut DSA,
22651        cb: pem_password_cb,
22652        userdata: *mut ::core::ffi::c_void,
22653    ) -> *mut DSA;
22654}
22655unsafe extern "C" {
22656    pub fn PEM_write_bio_DSAparams(bio: *mut BIO, in_: *const DSA) -> ::core::ffi::c_int;
22657}
22658unsafe extern "C" {
22659    pub fn PEM_read_bio_ECPrivateKey(
22660        bio: *mut BIO,
22661        out: *mut *mut EC_KEY,
22662        cb: pem_password_cb,
22663        userdata: *mut ::core::ffi::c_void,
22664    ) -> *mut EC_KEY;
22665}
22666unsafe extern "C" {
22667    pub fn PEM_write_bio_ECPrivateKey(
22668        bio: *mut BIO,
22669        in_: *const EC_KEY,
22670        enc: *const EVP_CIPHER,
22671        pass: *const u8,
22672        pass_len: ::core::ffi::c_int,
22673        cb: pem_password_cb,
22674        userdata: *mut ::core::ffi::c_void,
22675    ) -> ::core::ffi::c_int;
22676}
22677unsafe extern "C" {
22678    pub fn PEM_read_bio_EC_PUBKEY(
22679        bio: *mut BIO,
22680        out: *mut *mut EC_KEY,
22681        cb: pem_password_cb,
22682        userdata: *mut ::core::ffi::c_void,
22683    ) -> *mut EC_KEY;
22684}
22685unsafe extern "C" {
22686    pub fn PEM_write_bio_EC_PUBKEY(bio: *mut BIO, in_: *const EC_KEY) -> ::core::ffi::c_int;
22687}
22688unsafe extern "C" {
22689    pub fn PEM_read_bio_DHparams(
22690        bio: *mut BIO,
22691        out: *mut *mut DH,
22692        cb: pem_password_cb,
22693        userdata: *mut ::core::ffi::c_void,
22694    ) -> *mut DH;
22695}
22696unsafe extern "C" {
22697    pub fn PEM_write_bio_DHparams(bio: *mut BIO, in_: *const DH) -> ::core::ffi::c_int;
22698}
22699unsafe extern "C" {
22700    pub fn PEM_read_X509(
22701        fp: *mut FILE,
22702        out: *mut *mut X509,
22703        cb: pem_password_cb,
22704        userdata: *mut ::core::ffi::c_void,
22705    ) -> *mut X509;
22706}
22707unsafe extern "C" {
22708    pub fn PEM_read_X509_CRL(
22709        fp: *mut FILE,
22710        out: *mut *mut X509_CRL,
22711        cb: pem_password_cb,
22712        userdata: *mut ::core::ffi::c_void,
22713    ) -> *mut X509_CRL;
22714}
22715unsafe extern "C" {
22716    pub fn PEM_read_X509_AUX(
22717        fp: *mut FILE,
22718        out: *mut *mut X509,
22719        cb: pem_password_cb,
22720        userdata: *mut ::core::ffi::c_void,
22721    ) -> *mut X509;
22722}
22723unsafe extern "C" {
22724    pub fn PEM_X509_INFO_read(
22725        fp: *mut FILE,
22726        sk: *mut stack_st_X509_INFO,
22727        cb: pem_password_cb,
22728        userdata: *mut ::core::ffi::c_void,
22729    ) -> *mut stack_st_X509_INFO;
22730}
22731unsafe extern "C" {
22732    pub fn PEM_read_X509_REQ(
22733        fp: *mut FILE,
22734        out: *mut *mut X509_REQ,
22735        cb: pem_password_cb,
22736        userdata: *mut ::core::ffi::c_void,
22737    ) -> *mut X509_REQ;
22738}
22739unsafe extern "C" {
22740    pub fn PEM_read_PKCS7(
22741        fp: *mut FILE,
22742        out: *mut *mut PKCS7,
22743        cb: pem_password_cb,
22744        userdata: *mut ::core::ffi::c_void,
22745    ) -> *mut PKCS7;
22746}
22747unsafe extern "C" {
22748    pub fn PEM_read_PKCS8(
22749        fp: *mut FILE,
22750        out: *mut *mut X509_SIG,
22751        cb: pem_password_cb,
22752        userdata: *mut ::core::ffi::c_void,
22753    ) -> *mut X509_SIG;
22754}
22755unsafe extern "C" {
22756    pub fn PEM_read_PKCS8_PRIV_KEY_INFO(
22757        fp: *mut FILE,
22758        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22759        cb: pem_password_cb,
22760        userdata: *mut ::core::ffi::c_void,
22761    ) -> *mut PKCS8_PRIV_KEY_INFO;
22762}
22763unsafe extern "C" {
22764    pub fn PEM_read_RSAPrivateKey(
22765        fp: *mut FILE,
22766        out: *mut *mut RSA,
22767        cb: pem_password_cb,
22768        userdata: *mut ::core::ffi::c_void,
22769    ) -> *mut RSA;
22770}
22771unsafe extern "C" {
22772    pub fn PEM_read_RSAPublicKey(
22773        fp: *mut FILE,
22774        out: *mut *mut RSA,
22775        cb: pem_password_cb,
22776        userdata: *mut ::core::ffi::c_void,
22777    ) -> *mut RSA;
22778}
22779unsafe extern "C" {
22780    pub fn PEM_read_RSA_PUBKEY(
22781        fp: *mut FILE,
22782        out: *mut *mut RSA,
22783        cb: pem_password_cb,
22784        userdata: *mut ::core::ffi::c_void,
22785    ) -> *mut RSA;
22786}
22787unsafe extern "C" {
22788    pub fn PEM_read_DSAPrivateKey(
22789        fp: *mut FILE,
22790        out: *mut *mut DSA,
22791        cb: pem_password_cb,
22792        userdata: *mut ::core::ffi::c_void,
22793    ) -> *mut DSA;
22794}
22795unsafe extern "C" {
22796    pub fn PEM_read_DSA_PUBKEY(
22797        fp: *mut FILE,
22798        out: *mut *mut DSA,
22799        cb: pem_password_cb,
22800        userdata: *mut ::core::ffi::c_void,
22801    ) -> *mut DSA;
22802}
22803unsafe extern "C" {
22804    pub fn PEM_read_DSAparams(
22805        fp: *mut FILE,
22806        out: *mut *mut DSA,
22807        cb: pem_password_cb,
22808        userdata: *mut ::core::ffi::c_void,
22809    ) -> *mut DSA;
22810}
22811unsafe extern "C" {
22812    pub fn PEM_read_ECPrivateKey(
22813        fp: *mut FILE,
22814        out: *mut *mut EC_KEY,
22815        cb: pem_password_cb,
22816        userdata: *mut ::core::ffi::c_void,
22817    ) -> *mut EC_KEY;
22818}
22819unsafe extern "C" {
22820    pub fn PEM_read_EC_PUBKEY(
22821        fp: *mut FILE,
22822        out: *mut *mut EC_KEY,
22823        cb: pem_password_cb,
22824        userdata: *mut ::core::ffi::c_void,
22825    ) -> *mut EC_KEY;
22826}
22827unsafe extern "C" {
22828    pub fn PEM_read_DHparams(
22829        fp: *mut FILE,
22830        out: *mut *mut DH,
22831        cb: pem_password_cb,
22832        userdata: *mut ::core::ffi::c_void,
22833    ) -> *mut DH;
22834}
22835unsafe extern "C" {
22836    pub fn PEM_read_PrivateKey(
22837        fp: *mut FILE,
22838        out: *mut *mut EVP_PKEY,
22839        cb: pem_password_cb,
22840        userdata: *mut ::core::ffi::c_void,
22841    ) -> *mut EVP_PKEY;
22842}
22843unsafe extern "C" {
22844    pub fn PEM_read_PUBKEY(
22845        fp: *mut FILE,
22846        out: *mut *mut EVP_PKEY,
22847        cb: pem_password_cb,
22848        userdata: *mut ::core::ffi::c_void,
22849    ) -> *mut EVP_PKEY;
22850}
22851unsafe extern "C" {
22852    pub fn PEM_write_X509(fp: *mut FILE, x: *const X509) -> ::core::ffi::c_int;
22853}
22854unsafe extern "C" {
22855    pub fn PEM_write_X509_CRL(fp: *mut FILE, in_: *const X509_CRL) -> ::core::ffi::c_int;
22856}
22857unsafe extern "C" {
22858    pub fn PEM_write_X509_AUX(fp: *mut FILE, in_: *const X509) -> ::core::ffi::c_int;
22859}
22860unsafe extern "C" {
22861    pub fn PEM_write_X509_REQ(fp: *mut FILE, in_: *const X509_REQ) -> ::core::ffi::c_int;
22862}
22863unsafe extern "C" {
22864    pub fn PEM_write_X509_REQ_NEW(fp: *mut FILE, in_: *const X509_REQ) -> ::core::ffi::c_int;
22865}
22866unsafe extern "C" {
22867    pub fn PEM_write_PKCS7(fp: *mut FILE, in_: *const PKCS7) -> ::core::ffi::c_int;
22868}
22869unsafe extern "C" {
22870    pub fn PEM_write_PKCS8(fp: *mut FILE, in_: *const X509_SIG) -> ::core::ffi::c_int;
22871}
22872unsafe extern "C" {
22873    pub fn PEM_write_PKCS8_PRIV_KEY_INFO(
22874        fp: *mut FILE,
22875        in_: *const PKCS8_PRIV_KEY_INFO,
22876    ) -> ::core::ffi::c_int;
22877}
22878unsafe extern "C" {
22879    pub fn PEM_write_RSAPrivateKey(
22880        fp: *mut FILE,
22881        in_: *const RSA,
22882        enc: *const EVP_CIPHER,
22883        pass: *const u8,
22884        pass_len: ::core::ffi::c_int,
22885        cb: pem_password_cb,
22886        userdata: *mut ::core::ffi::c_void,
22887    ) -> ::core::ffi::c_int;
22888}
22889unsafe extern "C" {
22890    pub fn PEM_write_RSAPublicKey(fp: *mut FILE, in_: *const RSA) -> ::core::ffi::c_int;
22891}
22892unsafe extern "C" {
22893    pub fn PEM_write_RSA_PUBKEY(fp: *mut FILE, in_: *const RSA) -> ::core::ffi::c_int;
22894}
22895unsafe extern "C" {
22896    pub fn PEM_write_DSAPrivateKey(
22897        fp: *mut FILE,
22898        in_: *const DSA,
22899        enc: *const EVP_CIPHER,
22900        pass: *const u8,
22901        pass_len: ::core::ffi::c_int,
22902        cb: pem_password_cb,
22903        userdata: *mut ::core::ffi::c_void,
22904    ) -> ::core::ffi::c_int;
22905}
22906unsafe extern "C" {
22907    pub fn PEM_write_DSA_PUBKEY(fp: *mut FILE, in_: *const DSA) -> ::core::ffi::c_int;
22908}
22909unsafe extern "C" {
22910    pub fn PEM_write_DSAparams(fp: *mut FILE, in_: *const DSA) -> ::core::ffi::c_int;
22911}
22912unsafe extern "C" {
22913    pub fn PEM_write_ECPrivateKey(
22914        fp: *mut FILE,
22915        in_: *const EC_KEY,
22916        enc: *const EVP_CIPHER,
22917        pass: *const u8,
22918        pass_len: ::core::ffi::c_int,
22919        cb: pem_password_cb,
22920        userdata: *mut ::core::ffi::c_void,
22921    ) -> ::core::ffi::c_int;
22922}
22923unsafe extern "C" {
22924    pub fn PEM_write_EC_PUBKEY(fp: *mut FILE, in_: *const EC_KEY) -> ::core::ffi::c_int;
22925}
22926unsafe extern "C" {
22927    pub fn PEM_write_DHparams(fp: *mut FILE, in_: *const DH) -> ::core::ffi::c_int;
22928}
22929unsafe extern "C" {
22930    pub fn PEM_write_PrivateKey(
22931        fp: *mut FILE,
22932        in_: *const EVP_PKEY,
22933        enc: *const EVP_CIPHER,
22934        pass: *const u8,
22935        pass_len: ::core::ffi::c_int,
22936        cb: pem_password_cb,
22937        userdata: *mut ::core::ffi::c_void,
22938    ) -> ::core::ffi::c_int;
22939}
22940unsafe extern "C" {
22941    pub fn PEM_write_PUBKEY(fp: *mut FILE, in_: *const EVP_PKEY) -> ::core::ffi::c_int;
22942}
22943unsafe extern "C" {
22944    pub fn PEM_read_bio(
22945        bio: *mut BIO,
22946        out_name: *mut *mut ::core::ffi::c_char,
22947        out_header: *mut *mut ::core::ffi::c_char,
22948        out_data: *mut *mut u8,
22949        out_len: *mut ::core::ffi::c_long,
22950    ) -> ::core::ffi::c_int;
22951}
22952unsafe extern "C" {
22953    pub fn PEM_read(
22954        fp: *mut FILE,
22955        out_name: *mut *mut ::core::ffi::c_char,
22956        out_header: *mut *mut ::core::ffi::c_char,
22957        out_data: *mut *mut u8,
22958        out_len: *mut ::core::ffi::c_long,
22959    ) -> ::core::ffi::c_int;
22960}
22961unsafe extern "C" {
22962    pub fn PEM_write_bio(
22963        bio: *mut BIO,
22964        name: *const ::core::ffi::c_char,
22965        hdr: *const ::core::ffi::c_char,
22966        data: *const u8,
22967        len: ::core::ffi::c_long,
22968    ) -> ::core::ffi::c_int;
22969}
22970unsafe extern "C" {
22971    pub fn PEM_write(
22972        fp: *mut FILE,
22973        name: *const ::core::ffi::c_char,
22974        hdr: *const ::core::ffi::c_char,
22975        data: *const u8,
22976        len: ::core::ffi::c_long,
22977    ) -> ::core::ffi::c_int;
22978}
22979unsafe extern "C" {
22980    pub fn PEM_bytes_read_bio(
22981        out_data: *mut *mut u8,
22982        out_len: *mut ::core::ffi::c_long,
22983        out_name: *mut *mut ::core::ffi::c_char,
22984        expected_name: *const ::core::ffi::c_char,
22985        bio: *mut BIO,
22986        cb: pem_password_cb,
22987        userdata: *mut ::core::ffi::c_void,
22988    ) -> ::core::ffi::c_int;
22989}
22990unsafe extern "C" {
22991    pub fn d2i_PKCS8PrivateKey_bio(
22992        bio: *mut BIO,
22993        out: *mut *mut EVP_PKEY,
22994        cb: pem_password_cb,
22995        userdata: *mut ::core::ffi::c_void,
22996    ) -> *mut EVP_PKEY;
22997}
22998unsafe extern "C" {
22999    pub fn i2d_PKCS8PrivateKey_bio(
23000        bio: *mut BIO,
23001        in_: *const EVP_PKEY,
23002        enc: *const EVP_CIPHER,
23003        pass: *const ::core::ffi::c_char,
23004        pass_len: ::core::ffi::c_int,
23005        cb: pem_password_cb,
23006        userdata: *mut ::core::ffi::c_void,
23007    ) -> ::core::ffi::c_int;
23008}
23009unsafe extern "C" {
23010    pub fn i2d_PKCS8PrivateKey_nid_bio(
23011        bio: *mut BIO,
23012        in_: *const EVP_PKEY,
23013        nid: ::core::ffi::c_int,
23014        pass: *const ::core::ffi::c_char,
23015        pass_len: ::core::ffi::c_int,
23016        cb: pem_password_cb,
23017        userdata: *mut ::core::ffi::c_void,
23018    ) -> ::core::ffi::c_int;
23019}
23020unsafe extern "C" {
23021    pub fn i2d_PKCS8PrivateKey_fp(
23022        fp: *mut FILE,
23023        in_: *const EVP_PKEY,
23024        enc: *const EVP_CIPHER,
23025        pass: *const ::core::ffi::c_char,
23026        pass_len: ::core::ffi::c_int,
23027        cb: pem_password_cb,
23028        userdata: *mut ::core::ffi::c_void,
23029    ) -> ::core::ffi::c_int;
23030}
23031unsafe extern "C" {
23032    pub fn i2d_PKCS8PrivateKey_nid_fp(
23033        fp: *mut FILE,
23034        in_: *const EVP_PKEY,
23035        nid: ::core::ffi::c_int,
23036        pass: *const ::core::ffi::c_char,
23037        pass_len: ::core::ffi::c_int,
23038        cb: pem_password_cb,
23039        userdata: *mut ::core::ffi::c_void,
23040    ) -> ::core::ffi::c_int;
23041}
23042unsafe extern "C" {
23043    pub fn d2i_PKCS8PrivateKey_fp(
23044        fp: *mut FILE,
23045        out: *mut *mut EVP_PKEY,
23046        cb: pem_password_cb,
23047        userdata: *mut ::core::ffi::c_void,
23048    ) -> *mut EVP_PKEY;
23049}
23050unsafe extern "C" {
23051    pub fn PEM_ASN1_read_bio(
23052        d2i: d2i_of_void,
23053        name: *const ::core::ffi::c_char,
23054        bio: *mut BIO,
23055        out: *mut *mut ::core::ffi::c_void,
23056        cb: pem_password_cb,
23057        userdata: *mut ::core::ffi::c_void,
23058    ) -> *mut ::core::ffi::c_void;
23059}
23060unsafe extern "C" {
23061    pub fn PEM_ASN1_read(
23062        d2i: d2i_of_void,
23063        name: *const ::core::ffi::c_char,
23064        fp: *mut FILE,
23065        out: *mut *mut ::core::ffi::c_void,
23066        cb: pem_password_cb,
23067        userdata: *mut ::core::ffi::c_void,
23068    ) -> *mut ::core::ffi::c_void;
23069}
23070unsafe extern "C" {
23071    pub fn PEM_ASN1_write_bio(
23072        i2d: i2d_of_void,
23073        name: *const ::core::ffi::c_char,
23074        bio: *mut BIO,
23075        in_: *const ::core::ffi::c_void,
23076        enc: *const EVP_CIPHER,
23077        pass: *const u8,
23078        pass_len: ::core::ffi::c_int,
23079        cb: pem_password_cb,
23080        userdata: *mut ::core::ffi::c_void,
23081    ) -> ::core::ffi::c_int;
23082}
23083unsafe extern "C" {
23084    pub fn PEM_ASN1_write(
23085        i2d: i2d_of_void,
23086        name: *const ::core::ffi::c_char,
23087        fp: *mut FILE,
23088        in_: *const ::core::ffi::c_void,
23089        enc: *const EVP_CIPHER,
23090        pass: *const u8,
23091        pass_len: ::core::ffi::c_int,
23092        callback: pem_password_cb,
23093        userdata: *mut ::core::ffi::c_void,
23094    ) -> ::core::ffi::c_int;
23095}
23096unsafe extern "C" {
23097    pub fn PKCS8_encrypt(
23098        pbe_nid: ::core::ffi::c_int,
23099        cipher: *const EVP_CIPHER,
23100        pass: *const ::core::ffi::c_char,
23101        pass_len: ::core::ffi::c_int,
23102        salt: *const u8,
23103        salt_len: usize,
23104        iterations: ::core::ffi::c_int,
23105        p8inf: *mut PKCS8_PRIV_KEY_INFO,
23106    ) -> *mut X509_SIG;
23107}
23108unsafe extern "C" {
23109    pub fn PKCS8_marshal_encrypted_private_key(
23110        out: *mut CBB,
23111        pbe_nid: ::core::ffi::c_int,
23112        cipher: *const EVP_CIPHER,
23113        pass: *const ::core::ffi::c_char,
23114        pass_len: usize,
23115        salt: *const u8,
23116        salt_len: usize,
23117        iterations: ::core::ffi::c_int,
23118        pkey: *const EVP_PKEY,
23119    ) -> ::core::ffi::c_int;
23120}
23121unsafe extern "C" {
23122    pub fn PKCS8_decrypt(
23123        pkcs8: *mut X509_SIG,
23124        pass: *const ::core::ffi::c_char,
23125        pass_len: ::core::ffi::c_int,
23126    ) -> *mut PKCS8_PRIV_KEY_INFO;
23127}
23128unsafe extern "C" {
23129    pub fn PKCS8_parse_encrypted_private_key(
23130        cbs: *mut CBS,
23131        pass: *const ::core::ffi::c_char,
23132        pass_len: usize,
23133    ) -> *mut EVP_PKEY;
23134}
23135unsafe extern "C" {
23136    pub fn PKCS12_get_key_and_certs(
23137        out_key: *mut *mut EVP_PKEY,
23138        out_certs: *mut stack_st_X509,
23139        in_: *mut CBS,
23140        password: *const ::core::ffi::c_char,
23141    ) -> ::core::ffi::c_int;
23142}
23143unsafe extern "C" {
23144    pub fn PKCS12_PBE_add();
23145}
23146unsafe extern "C" {
23147    pub fn d2i_PKCS12(
23148        out_p12: *mut *mut PKCS12,
23149        ber_bytes: *mut *const u8,
23150        ber_len: usize,
23151    ) -> *mut PKCS12;
23152}
23153unsafe extern "C" {
23154    pub fn d2i_PKCS12_bio(bio: *mut BIO, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
23155}
23156unsafe extern "C" {
23157    pub fn d2i_PKCS12_fp(fp: *mut FILE, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
23158}
23159unsafe extern "C" {
23160    pub fn i2d_PKCS12(p12: *const PKCS12, out: *mut *mut u8) -> ::core::ffi::c_int;
23161}
23162unsafe extern "C" {
23163    pub fn i2d_PKCS12_bio(bio: *mut BIO, p12: *const PKCS12) -> ::core::ffi::c_int;
23164}
23165unsafe extern "C" {
23166    pub fn i2d_PKCS12_fp(fp: *mut FILE, p12: *const PKCS12) -> ::core::ffi::c_int;
23167}
23168unsafe extern "C" {
23169    pub fn PKCS12_parse(
23170        p12: *const PKCS12,
23171        password: *const ::core::ffi::c_char,
23172        out_pkey: *mut *mut EVP_PKEY,
23173        out_cert: *mut *mut X509,
23174        out_ca_certs: *mut *mut stack_st_X509,
23175    ) -> ::core::ffi::c_int;
23176}
23177unsafe extern "C" {
23178    pub fn PKCS12_verify_mac(
23179        p12: *const PKCS12,
23180        password: *const ::core::ffi::c_char,
23181        password_len: ::core::ffi::c_int,
23182    ) -> ::core::ffi::c_int;
23183}
23184unsafe extern "C" {
23185    pub fn PKCS12_create(
23186        password: *const ::core::ffi::c_char,
23187        name: *const ::core::ffi::c_char,
23188        pkey: *const EVP_PKEY,
23189        cert: *mut X509,
23190        chain: *const stack_st_X509,
23191        key_nid: ::core::ffi::c_int,
23192        cert_nid: ::core::ffi::c_int,
23193        iterations: ::core::ffi::c_int,
23194        mac_iterations: ::core::ffi::c_int,
23195        key_type: ::core::ffi::c_int,
23196    ) -> *mut PKCS12;
23197}
23198unsafe extern "C" {
23199    pub fn PKCS12_free(p12: *mut PKCS12);
23200}
23201pub type poly1305_state = [u8; 512usize];
23202unsafe extern "C" {
23203    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
23204}
23205unsafe extern "C" {
23206    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
23207}
23208unsafe extern "C" {
23209    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
23210}
23211unsafe extern "C" {
23212    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::core::ffi::c_int;
23213}
23214unsafe extern "C" {
23215    pub fn RAND_enable_fork_unsafe_buffering(fd: ::core::ffi::c_int);
23216}
23217unsafe extern "C" {
23218    pub fn RAND_disable_fork_unsafe_buffering();
23219}
23220unsafe extern "C" {
23221    pub fn RAND_get_system_entropy_for_custom_prng(buf: *mut u8, len: usize);
23222}
23223unsafe extern "C" {
23224    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::core::ffi::c_int;
23225}
23226unsafe extern "C" {
23227    pub fn RAND_seed(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int);
23228}
23229unsafe extern "C" {
23230    pub fn RAND_load_file(
23231        path: *const ::core::ffi::c_char,
23232        num: ::core::ffi::c_long,
23233    ) -> ::core::ffi::c_int;
23234}
23235unsafe extern "C" {
23236    pub fn RAND_file_name(buf: *mut ::core::ffi::c_char, num: usize) -> *const ::core::ffi::c_char;
23237}
23238unsafe extern "C" {
23239    pub fn RAND_add(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int, entropy: f64);
23240}
23241unsafe extern "C" {
23242    pub fn RAND_egd(arg1: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
23243}
23244unsafe extern "C" {
23245    pub fn RAND_poll() -> ::core::ffi::c_int;
23246}
23247unsafe extern "C" {
23248    pub fn RAND_status() -> ::core::ffi::c_int;
23249}
23250unsafe extern "C" {
23251    pub fn RAND_cleanup();
23252}
23253#[repr(C)]
23254#[derive(Debug, Copy, Clone)]
23255pub struct rand_meth_st {
23256    pub seed: ::core::option::Option<
23257        unsafe extern "C" fn(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int),
23258    >,
23259    pub bytes: ::core::option::Option<
23260        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::core::ffi::c_int,
23261    >,
23262    pub cleanup: ::core::option::Option<unsafe extern "C" fn()>,
23263    pub add: ::core::option::Option<
23264        unsafe extern "C" fn(
23265            buf: *const ::core::ffi::c_void,
23266            num: ::core::ffi::c_int,
23267            entropy: f64,
23268        ),
23269    >,
23270    pub pseudorand: ::core::option::Option<
23271        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::core::ffi::c_int,
23272    >,
23273    pub status: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_int>,
23274}
23275unsafe extern "C" {
23276    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
23277}
23278unsafe extern "C" {
23279    pub fn RAND_OpenSSL() -> *mut RAND_METHOD;
23280}
23281unsafe extern "C" {
23282    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
23283}
23284unsafe extern "C" {
23285    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD) -> ::core::ffi::c_int;
23286}
23287#[repr(C)]
23288#[derive(Debug, Copy, Clone)]
23289pub struct rc4_key_st {
23290    pub x: u32,
23291    pub y: u32,
23292    pub data: [u32; 256usize],
23293}
23294unsafe extern "C" {
23295    pub fn RC4_set_key(rc4key: *mut RC4_KEY, len: ::core::ffi::c_uint, key: *const u8);
23296}
23297unsafe extern "C" {
23298    pub fn RC4(key: *mut RC4_KEY, len: usize, in_: *const u8, out: *mut u8);
23299}
23300unsafe extern "C" {
23301    pub fn RC4_options() -> *const ::core::ffi::c_char;
23302}
23303#[repr(C)]
23304#[derive(Debug, Copy, Clone)]
23305pub struct RIPEMD160state_st {
23306    pub h: [u32; 5usize],
23307    pub Nl: u32,
23308    pub Nh: u32,
23309    pub data: [u8; 64usize],
23310    pub num: ::core::ffi::c_uint,
23311}
23312unsafe extern "C" {
23313    pub fn RIPEMD160_Init(ctx: *mut RIPEMD160_CTX) -> ::core::ffi::c_int;
23314}
23315unsafe extern "C" {
23316    pub fn RIPEMD160_Update(
23317        ctx: *mut RIPEMD160_CTX,
23318        data: *const ::core::ffi::c_void,
23319        len: usize,
23320    ) -> ::core::ffi::c_int;
23321}
23322unsafe extern "C" {
23323    pub fn RIPEMD160_Final(out: *mut u8, ctx: *mut RIPEMD160_CTX) -> ::core::ffi::c_int;
23324}
23325unsafe extern "C" {
23326    pub fn RIPEMD160(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
23327}
23328unsafe extern "C" {
23329    pub fn RIPEMD160_Transform(ctx: *mut RIPEMD160_CTX, block: *const u8);
23330}
23331unsafe extern "C" {
23332    pub fn SIPHASH_24(key: *const u64, input: *const u8, input_len: usize) -> u64;
23333}
23334unsafe extern "C" {
23335    pub fn SLHDSA_SHA2_128S_generate_key(out_public_key: *mut u8, out_private_key: *mut u8);
23336}
23337unsafe extern "C" {
23338    pub fn SLHDSA_SHAKE_256F_generate_key(out_public_key: *mut u8, out_private_key: *mut u8);
23339}
23340unsafe extern "C" {
23341    pub fn SLHDSA_SHA2_128S_public_from_private(out_public_key: *mut u8, private_key: *const u8);
23342}
23343unsafe extern "C" {
23344    pub fn SLHDSA_SHAKE_256F_public_from_private(out_public_key: *mut u8, private_key: *const u8);
23345}
23346unsafe extern "C" {
23347    pub fn SLHDSA_SHA2_128S_sign(
23348        out_signature: *mut u8,
23349        private_key: *const u8,
23350        msg: *const u8,
23351        msg_len: usize,
23352        context: *const u8,
23353        context_len: usize,
23354    ) -> ::core::ffi::c_int;
23355}
23356unsafe extern "C" {
23357    pub fn SLHDSA_SHAKE_256F_sign(
23358        out_signature: *mut u8,
23359        private_key: *const u8,
23360        msg: *const u8,
23361        msg_len: usize,
23362        context: *const u8,
23363        context_len: usize,
23364    ) -> ::core::ffi::c_int;
23365}
23366unsafe extern "C" {
23367    pub fn SLHDSA_SHA2_128S_verify(
23368        signature: *const u8,
23369        signature_len: usize,
23370        public_key: *const u8,
23371        msg: *const u8,
23372        msg_len: usize,
23373        context: *const u8,
23374        context_len: usize,
23375    ) -> ::core::ffi::c_int;
23376}
23377unsafe extern "C" {
23378    pub fn SLHDSA_SHAKE_256F_verify(
23379        signature: *const u8,
23380        signature_len: usize,
23381        public_key: *const u8,
23382        msg: *const u8,
23383        msg_len: usize,
23384        context: *const u8,
23385        context_len: usize,
23386    ) -> ::core::ffi::c_int;
23387}
23388unsafe extern "C" {
23389    pub fn SLHDSA_SHA2_128S_prehash_sign(
23390        out_signature: *mut u8,
23391        private_key: *const u8,
23392        hashed_msg: *const u8,
23393        hashed_msg_len: usize,
23394        hash_nid: ::core::ffi::c_int,
23395        context: *const u8,
23396        context_len: usize,
23397    ) -> ::core::ffi::c_int;
23398}
23399unsafe extern "C" {
23400    pub fn SLHDSA_SHA2_128S_prehash_verify(
23401        signature: *const u8,
23402        signature_len: usize,
23403        public_key: *const u8,
23404        hashed_msg: *const u8,
23405        hashed_msg_len: usize,
23406        hash_nid: ::core::ffi::c_int,
23407        context: *const u8,
23408        context_len: usize,
23409    ) -> ::core::ffi::c_int;
23410}
23411unsafe extern "C" {
23412    pub fn SLHDSA_SHA2_128S_prehash_warning_nonstandard_sign(
23413        out_signature: *mut u8,
23414        private_key: *const u8,
23415        hashed_msg: *const u8,
23416        hashed_msg_len: usize,
23417        hash_nid: ::core::ffi::c_int,
23418        context: *const u8,
23419        context_len: usize,
23420    ) -> ::core::ffi::c_int;
23421}
23422unsafe extern "C" {
23423    pub fn SLHDSA_SHA2_128S_prehash_warning_nonstandard_verify(
23424        signature: *const u8,
23425        signature_len: usize,
23426        public_key: *const u8,
23427        hashed_msg: *const u8,
23428        hashed_msg_len: usize,
23429        hash_nid: ::core::ffi::c_int,
23430        context: *const u8,
23431        context_len: usize,
23432    ) -> ::core::ffi::c_int;
23433}
23434unsafe extern "C" {
23435    pub fn TLS_method() -> *const SSL_METHOD;
23436}
23437unsafe extern "C" {
23438    pub fn DTLS_method() -> *const SSL_METHOD;
23439}
23440unsafe extern "C" {
23441    pub fn TLS_with_buffers_method() -> *const SSL_METHOD;
23442}
23443unsafe extern "C" {
23444    pub fn DTLS_with_buffers_method() -> *const SSL_METHOD;
23445}
23446unsafe extern "C" {
23447    pub fn SSL_CTX_new(method: *const SSL_METHOD) -> *mut SSL_CTX;
23448}
23449unsafe extern "C" {
23450    pub fn SSL_CTX_up_ref(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
23451}
23452unsafe extern "C" {
23453    pub fn SSL_CTX_free(ctx: *mut SSL_CTX);
23454}
23455unsafe extern "C" {
23456    pub fn SSL_new(ctx: *mut SSL_CTX) -> *mut SSL;
23457}
23458unsafe extern "C" {
23459    pub fn SSL_free(ssl: *mut SSL);
23460}
23461unsafe extern "C" {
23462    pub fn SSL_get_SSL_CTX(ssl: *const SSL) -> *mut SSL_CTX;
23463}
23464unsafe extern "C" {
23465    pub fn SSL_set_connect_state(ssl: *mut SSL);
23466}
23467unsafe extern "C" {
23468    pub fn SSL_set_accept_state(ssl: *mut SSL);
23469}
23470unsafe extern "C" {
23471    pub fn SSL_is_server(ssl: *const SSL) -> ::core::ffi::c_int;
23472}
23473unsafe extern "C" {
23474    pub fn SSL_is_dtls(ssl: *const SSL) -> ::core::ffi::c_int;
23475}
23476unsafe extern "C" {
23477    pub fn SSL_is_quic(ssl: *const SSL) -> ::core::ffi::c_int;
23478}
23479unsafe extern "C" {
23480    pub fn SSL_set_bio(ssl: *mut SSL, rbio: *mut BIO, wbio: *mut BIO);
23481}
23482unsafe extern "C" {
23483    pub fn SSL_set0_rbio(ssl: *mut SSL, rbio: *mut BIO);
23484}
23485unsafe extern "C" {
23486    pub fn SSL_set0_wbio(ssl: *mut SSL, wbio: *mut BIO);
23487}
23488unsafe extern "C" {
23489    pub fn SSL_get_rbio(ssl: *const SSL) -> *mut BIO;
23490}
23491unsafe extern "C" {
23492    pub fn SSL_get_wbio(ssl: *const SSL) -> *mut BIO;
23493}
23494unsafe extern "C" {
23495    pub fn SSL_get_fd(ssl: *const SSL) -> ::core::ffi::c_int;
23496}
23497unsafe extern "C" {
23498    pub fn SSL_get_rfd(ssl: *const SSL) -> ::core::ffi::c_int;
23499}
23500unsafe extern "C" {
23501    pub fn SSL_get_wfd(ssl: *const SSL) -> ::core::ffi::c_int;
23502}
23503unsafe extern "C" {
23504    pub fn SSL_set_fd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23505}
23506unsafe extern "C" {
23507    pub fn SSL_set_rfd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23508}
23509unsafe extern "C" {
23510    pub fn SSL_set_wfd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23511}
23512unsafe extern "C" {
23513    pub fn SSL_do_handshake(ssl: *mut SSL) -> ::core::ffi::c_int;
23514}
23515unsafe extern "C" {
23516    pub fn SSL_connect(ssl: *mut SSL) -> ::core::ffi::c_int;
23517}
23518unsafe extern "C" {
23519    pub fn SSL_accept(ssl: *mut SSL) -> ::core::ffi::c_int;
23520}
23521unsafe extern "C" {
23522    pub fn SSL_read(
23523        ssl: *mut SSL,
23524        buf: *mut ::core::ffi::c_void,
23525        num: ::core::ffi::c_int,
23526    ) -> ::core::ffi::c_int;
23527}
23528unsafe extern "C" {
23529    pub fn SSL_peek(
23530        ssl: *mut SSL,
23531        buf: *mut ::core::ffi::c_void,
23532        num: ::core::ffi::c_int,
23533    ) -> ::core::ffi::c_int;
23534}
23535unsafe extern "C" {
23536    pub fn SSL_pending(ssl: *const SSL) -> ::core::ffi::c_int;
23537}
23538unsafe extern "C" {
23539    pub fn SSL_has_pending(ssl: *const SSL) -> ::core::ffi::c_int;
23540}
23541unsafe extern "C" {
23542    pub fn SSL_write(
23543        ssl: *mut SSL,
23544        buf: *const ::core::ffi::c_void,
23545        num: ::core::ffi::c_int,
23546    ) -> ::core::ffi::c_int;
23547}
23548unsafe extern "C" {
23549    pub fn SSL_key_update(ssl: *mut SSL, request_type: ::core::ffi::c_int) -> ::core::ffi::c_int;
23550}
23551unsafe extern "C" {
23552    pub fn SSL_shutdown(ssl: *mut SSL) -> ::core::ffi::c_int;
23553}
23554unsafe extern "C" {
23555    pub fn SSL_CTX_set_quiet_shutdown(ctx: *mut SSL_CTX, mode: ::core::ffi::c_int);
23556}
23557unsafe extern "C" {
23558    pub fn SSL_CTX_get_quiet_shutdown(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
23559}
23560unsafe extern "C" {
23561    pub fn SSL_set_quiet_shutdown(ssl: *mut SSL, mode: ::core::ffi::c_int);
23562}
23563unsafe extern "C" {
23564    pub fn SSL_get_quiet_shutdown(ssl: *const SSL) -> ::core::ffi::c_int;
23565}
23566unsafe extern "C" {
23567    pub fn SSL_get_error(ssl: *const SSL, ret_code: ::core::ffi::c_int) -> ::core::ffi::c_int;
23568}
23569unsafe extern "C" {
23570    pub fn SSL_error_description(err: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
23571}
23572unsafe extern "C" {
23573    pub fn SSL_set_mtu(ssl: *mut SSL, mtu: ::core::ffi::c_uint) -> ::core::ffi::c_int;
23574}
23575unsafe extern "C" {
23576    pub fn DTLSv1_set_initial_timeout_duration(ssl: *mut SSL, duration_ms: u32);
23577}
23578unsafe extern "C" {
23579    pub fn DTLSv1_get_timeout(ssl: *const SSL, out: *mut timeval) -> ::core::ffi::c_int;
23580}
23581unsafe extern "C" {
23582    pub fn DTLSv1_handle_timeout(ssl: *mut SSL) -> ::core::ffi::c_int;
23583}
23584unsafe extern "C" {
23585    pub fn SSL_CTX_set_min_proto_version(ctx: *mut SSL_CTX, version: u16) -> ::core::ffi::c_int;
23586}
23587unsafe extern "C" {
23588    pub fn SSL_CTX_set_max_proto_version(ctx: *mut SSL_CTX, version: u16) -> ::core::ffi::c_int;
23589}
23590unsafe extern "C" {
23591    pub fn SSL_CTX_get_min_proto_version(ctx: *const SSL_CTX) -> u16;
23592}
23593unsafe extern "C" {
23594    pub fn SSL_CTX_get_max_proto_version(ctx: *const SSL_CTX) -> u16;
23595}
23596unsafe extern "C" {
23597    pub fn SSL_set_min_proto_version(ssl: *mut SSL, version: u16) -> ::core::ffi::c_int;
23598}
23599unsafe extern "C" {
23600    pub fn SSL_set_max_proto_version(ssl: *mut SSL, version: u16) -> ::core::ffi::c_int;
23601}
23602unsafe extern "C" {
23603    pub fn SSL_get_min_proto_version(ssl: *const SSL) -> u16;
23604}
23605unsafe extern "C" {
23606    pub fn SSL_get_max_proto_version(ssl: *const SSL) -> u16;
23607}
23608unsafe extern "C" {
23609    pub fn SSL_version(ssl: *const SSL) -> ::core::ffi::c_int;
23610}
23611unsafe extern "C" {
23612    pub fn SSL_CTX_set_options(ctx: *mut SSL_CTX, options: u32) -> u32;
23613}
23614unsafe extern "C" {
23615    pub fn SSL_CTX_clear_options(ctx: *mut SSL_CTX, options: u32) -> u32;
23616}
23617unsafe extern "C" {
23618    pub fn SSL_CTX_get_options(ctx: *const SSL_CTX) -> u32;
23619}
23620unsafe extern "C" {
23621    pub fn SSL_set_options(ssl: *mut SSL, options: u32) -> u32;
23622}
23623unsafe extern "C" {
23624    pub fn SSL_clear_options(ssl: *mut SSL, options: u32) -> u32;
23625}
23626unsafe extern "C" {
23627    pub fn SSL_get_options(ssl: *const SSL) -> u32;
23628}
23629unsafe extern "C" {
23630    pub fn SSL_CTX_set_mode(ctx: *mut SSL_CTX, mode: u32) -> u32;
23631}
23632unsafe extern "C" {
23633    pub fn SSL_CTX_clear_mode(ctx: *mut SSL_CTX, mode: u32) -> u32;
23634}
23635unsafe extern "C" {
23636    pub fn SSL_CTX_get_mode(ctx: *const SSL_CTX) -> u32;
23637}
23638unsafe extern "C" {
23639    pub fn SSL_set_mode(ssl: *mut SSL, mode: u32) -> u32;
23640}
23641unsafe extern "C" {
23642    pub fn SSL_clear_mode(ssl: *mut SSL, mode: u32) -> u32;
23643}
23644unsafe extern "C" {
23645    pub fn SSL_get_mode(ssl: *const SSL) -> u32;
23646}
23647unsafe extern "C" {
23648    pub fn SSL_CTX_set1_buffer_pool(ctx: *mut SSL_CTX, pool: *mut CRYPTO_BUFFER_POOL);
23649}
23650unsafe extern "C" {
23651    pub fn SSL_CREDENTIAL_new_x509() -> *mut SSL_CREDENTIAL;
23652}
23653unsafe extern "C" {
23654    pub fn SSL_CREDENTIAL_up_ref(cred: *mut SSL_CREDENTIAL);
23655}
23656unsafe extern "C" {
23657    pub fn SSL_CREDENTIAL_dup_ref(cred: *const SSL_CREDENTIAL) -> *mut SSL_CREDENTIAL;
23658}
23659unsafe extern "C" {
23660    pub fn SSL_CREDENTIAL_free(cred: *mut SSL_CREDENTIAL);
23661}
23662unsafe extern "C" {
23663    pub fn SSL_CREDENTIAL_is_complete(cred: *const SSL_CREDENTIAL) -> ::core::ffi::c_int;
23664}
23665unsafe extern "C" {
23666    pub fn SSL_CREDENTIAL_set1_private_key(
23667        cred: *mut SSL_CREDENTIAL,
23668        key: *mut EVP_PKEY,
23669    ) -> ::core::ffi::c_int;
23670}
23671unsafe extern "C" {
23672    pub fn SSL_CREDENTIAL_set1_signing_algorithm_prefs(
23673        cred: *mut SSL_CREDENTIAL,
23674        prefs: *const u16,
23675        num_prefs: usize,
23676    ) -> ::core::ffi::c_int;
23677}
23678unsafe extern "C" {
23679    pub fn SSL_CREDENTIAL_set1_cert_chain(
23680        cred: *mut SSL_CREDENTIAL,
23681        certs: *const *mut CRYPTO_BUFFER,
23682        num_certs: usize,
23683    ) -> ::core::ffi::c_int;
23684}
23685unsafe extern "C" {
23686    pub fn SSL_CREDENTIAL_set1_ocsp_response(
23687        cred: *mut SSL_CREDENTIAL,
23688        ocsp: *mut CRYPTO_BUFFER,
23689    ) -> ::core::ffi::c_int;
23690}
23691unsafe extern "C" {
23692    pub fn SSL_CREDENTIAL_set1_certificate_properties(
23693        cred: *mut SSL_CREDENTIAL,
23694        cert_property_list: *mut CRYPTO_BUFFER,
23695    ) -> ::core::ffi::c_int;
23696}
23697unsafe extern "C" {
23698    pub fn SSL_CREDENTIAL_set1_signed_cert_timestamp_list(
23699        cred: *mut SSL_CREDENTIAL,
23700        sct_list: *mut CRYPTO_BUFFER,
23701    ) -> ::core::ffi::c_int;
23702}
23703unsafe extern "C" {
23704    pub fn SSL_CREDENTIAL_set_must_match_issuer(
23705        cred: *mut SSL_CREDENTIAL,
23706        match_: ::core::ffi::c_int,
23707    );
23708}
23709unsafe extern "C" {
23710    pub fn SSL_CTX_add1_credential(
23711        ctx: *mut SSL_CTX,
23712        cred: *const SSL_CREDENTIAL,
23713    ) -> ::core::ffi::c_int;
23714}
23715unsafe extern "C" {
23716    pub fn SSL_add1_credential(ssl: *mut SSL, cred: *const SSL_CREDENTIAL) -> ::core::ffi::c_int;
23717}
23718unsafe extern "C" {
23719    pub fn SSL_certs_clear(ssl: *mut SSL);
23720}
23721unsafe extern "C" {
23722    pub fn SSL_get0_selected_credential(ssl: *const SSL) -> *const SSL_CREDENTIAL;
23723}
23724unsafe extern "C" {
23725    pub fn SSL_CTX_use_certificate(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
23726}
23727unsafe extern "C" {
23728    pub fn SSL_use_certificate(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
23729}
23730unsafe extern "C" {
23731    pub fn SSL_CTX_use_PrivateKey(ctx: *mut SSL_CTX, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
23732}
23733unsafe extern "C" {
23734    pub fn SSL_use_PrivateKey(ssl: *mut SSL, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
23735}
23736unsafe extern "C" {
23737    pub fn SSL_CTX_set0_chain(ctx: *mut SSL_CTX, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
23738}
23739unsafe extern "C" {
23740    pub fn SSL_CTX_set1_chain(ctx: *mut SSL_CTX, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
23741}
23742unsafe extern "C" {
23743    pub fn SSL_set0_chain(ssl: *mut SSL, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
23744}
23745unsafe extern "C" {
23746    pub fn SSL_set1_chain(ssl: *mut SSL, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
23747}
23748unsafe extern "C" {
23749    pub fn SSL_CTX_add0_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
23750}
23751unsafe extern "C" {
23752    pub fn SSL_CTX_add1_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
23753}
23754unsafe extern "C" {
23755    pub fn SSL_add0_chain_cert(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
23756}
23757unsafe extern "C" {
23758    pub fn SSL_CTX_add_extra_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
23759}
23760unsafe extern "C" {
23761    pub fn SSL_add1_chain_cert(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
23762}
23763unsafe extern "C" {
23764    pub fn SSL_CTX_clear_chain_certs(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
23765}
23766unsafe extern "C" {
23767    pub fn SSL_CTX_clear_extra_chain_certs(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
23768}
23769unsafe extern "C" {
23770    pub fn SSL_clear_chain_certs(ssl: *mut SSL) -> ::core::ffi::c_int;
23771}
23772unsafe extern "C" {
23773    pub fn SSL_CTX_set_cert_cb(
23774        ctx: *mut SSL_CTX,
23775        cb: ::core::option::Option<
23776            unsafe extern "C" fn(
23777                ssl: *mut SSL,
23778                arg: *mut ::core::ffi::c_void,
23779            ) -> ::core::ffi::c_int,
23780        >,
23781        arg: *mut ::core::ffi::c_void,
23782    );
23783}
23784unsafe extern "C" {
23785    pub fn SSL_set_cert_cb(
23786        ssl: *mut SSL,
23787        cb: ::core::option::Option<
23788            unsafe extern "C" fn(
23789                ssl: *mut SSL,
23790                arg: *mut ::core::ffi::c_void,
23791            ) -> ::core::ffi::c_int,
23792        >,
23793        arg: *mut ::core::ffi::c_void,
23794    );
23795}
23796unsafe extern "C" {
23797    pub fn SSL_get0_certificate_types(ssl: *const SSL, out_types: *mut *const u8) -> usize;
23798}
23799unsafe extern "C" {
23800    pub fn SSL_get0_peer_verify_algorithms(ssl: *const SSL, out_sigalgs: *mut *const u16) -> usize;
23801}
23802unsafe extern "C" {
23803    pub fn SSL_get0_peer_delegation_algorithms(
23804        ssl: *const SSL,
23805        out_sigalgs: *mut *const u16,
23806    ) -> usize;
23807}
23808unsafe extern "C" {
23809    pub fn SSL_CTX_get0_certificate(ctx: *const SSL_CTX) -> *mut X509;
23810}
23811unsafe extern "C" {
23812    pub fn SSL_get_certificate(ssl: *const SSL) -> *mut X509;
23813}
23814unsafe extern "C" {
23815    pub fn SSL_CTX_get0_privatekey(ctx: *const SSL_CTX) -> *mut EVP_PKEY;
23816}
23817unsafe extern "C" {
23818    pub fn SSL_get_privatekey(ssl: *const SSL) -> *mut EVP_PKEY;
23819}
23820unsafe extern "C" {
23821    pub fn SSL_CTX_get0_chain_certs(
23822        ctx: *const SSL_CTX,
23823        out_chain: *mut *mut stack_st_X509,
23824    ) -> ::core::ffi::c_int;
23825}
23826unsafe extern "C" {
23827    pub fn SSL_CTX_get_extra_chain_certs(
23828        ctx: *const SSL_CTX,
23829        out_chain: *mut *mut stack_st_X509,
23830    ) -> ::core::ffi::c_int;
23831}
23832unsafe extern "C" {
23833    pub fn SSL_get0_chain_certs(
23834        ssl: *const SSL,
23835        out_chain: *mut *mut stack_st_X509,
23836    ) -> ::core::ffi::c_int;
23837}
23838unsafe extern "C" {
23839    pub fn SSL_CTX_set_signed_cert_timestamp_list(
23840        ctx: *mut SSL_CTX,
23841        list: *const u8,
23842        list_len: usize,
23843    ) -> ::core::ffi::c_int;
23844}
23845unsafe extern "C" {
23846    pub fn SSL_set_signed_cert_timestamp_list(
23847        ctx: *mut SSL,
23848        list: *const u8,
23849        list_len: usize,
23850    ) -> ::core::ffi::c_int;
23851}
23852unsafe extern "C" {
23853    pub fn SSL_CTX_set_ocsp_response(
23854        ctx: *mut SSL_CTX,
23855        response: *const u8,
23856        response_len: usize,
23857    ) -> ::core::ffi::c_int;
23858}
23859unsafe extern "C" {
23860    pub fn SSL_set_ocsp_response(
23861        ssl: *mut SSL,
23862        response: *const u8,
23863        response_len: usize,
23864    ) -> ::core::ffi::c_int;
23865}
23866unsafe extern "C" {
23867    pub fn SSL_get_signature_algorithm_name(
23868        sigalg: u16,
23869        include_curve: ::core::ffi::c_int,
23870    ) -> *const ::core::ffi::c_char;
23871}
23872unsafe extern "C" {
23873    pub fn SSL_get_all_signature_algorithm_names(
23874        out: *mut *const ::core::ffi::c_char,
23875        max_out: usize,
23876    ) -> usize;
23877}
23878unsafe extern "C" {
23879    pub fn SSL_get_signature_algorithm_key_type(sigalg: u16) -> ::core::ffi::c_int;
23880}
23881unsafe extern "C" {
23882    pub fn SSL_get_signature_algorithm_digest(sigalg: u16) -> *const EVP_MD;
23883}
23884unsafe extern "C" {
23885    pub fn SSL_is_signature_algorithm_rsa_pss(sigalg: u16) -> ::core::ffi::c_int;
23886}
23887unsafe extern "C" {
23888    pub fn SSL_CTX_set_signing_algorithm_prefs(
23889        ctx: *mut SSL_CTX,
23890        prefs: *const u16,
23891        num_prefs: usize,
23892    ) -> ::core::ffi::c_int;
23893}
23894unsafe extern "C" {
23895    pub fn SSL_set_signing_algorithm_prefs(
23896        ssl: *mut SSL,
23897        prefs: *const u16,
23898        num_prefs: usize,
23899    ) -> ::core::ffi::c_int;
23900}
23901unsafe extern "C" {
23902    pub fn SSL_CTX_set_chain_and_key(
23903        ctx: *mut SSL_CTX,
23904        certs: *const *mut CRYPTO_BUFFER,
23905        num_certs: usize,
23906        privkey: *mut EVP_PKEY,
23907        privkey_method: *const SSL_PRIVATE_KEY_METHOD,
23908    ) -> ::core::ffi::c_int;
23909}
23910unsafe extern "C" {
23911    pub fn SSL_set_chain_and_key(
23912        ssl: *mut SSL,
23913        certs: *const *mut CRYPTO_BUFFER,
23914        num_certs: usize,
23915        privkey: *mut EVP_PKEY,
23916        privkey_method: *const SSL_PRIVATE_KEY_METHOD,
23917    ) -> ::core::ffi::c_int;
23918}
23919unsafe extern "C" {
23920    pub fn SSL_CTX_get0_chain(ctx: *const SSL_CTX) -> *const stack_st_CRYPTO_BUFFER;
23921}
23922unsafe extern "C" {
23923    pub fn SSL_get0_chain(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
23924}
23925unsafe extern "C" {
23926    pub fn SSL_CTX_use_RSAPrivateKey(ctx: *mut SSL_CTX, rsa: *mut RSA) -> ::core::ffi::c_int;
23927}
23928unsafe extern "C" {
23929    pub fn SSL_use_RSAPrivateKey(ssl: *mut SSL, rsa: *mut RSA) -> ::core::ffi::c_int;
23930}
23931unsafe extern "C" {
23932    pub fn SSL_CTX_use_certificate_ASN1(
23933        ctx: *mut SSL_CTX,
23934        der_len: usize,
23935        der: *const u8,
23936    ) -> ::core::ffi::c_int;
23937}
23938unsafe extern "C" {
23939    pub fn SSL_use_certificate_ASN1(
23940        ssl: *mut SSL,
23941        der: *const u8,
23942        der_len: usize,
23943    ) -> ::core::ffi::c_int;
23944}
23945unsafe extern "C" {
23946    pub fn SSL_CTX_use_PrivateKey_ASN1(
23947        pk: ::core::ffi::c_int,
23948        ctx: *mut SSL_CTX,
23949        der: *const u8,
23950        der_len: usize,
23951    ) -> ::core::ffi::c_int;
23952}
23953unsafe extern "C" {
23954    pub fn SSL_use_PrivateKey_ASN1(
23955        type_: ::core::ffi::c_int,
23956        ssl: *mut SSL,
23957        der: *const u8,
23958        der_len: usize,
23959    ) -> ::core::ffi::c_int;
23960}
23961unsafe extern "C" {
23962    pub fn SSL_CTX_use_RSAPrivateKey_ASN1(
23963        ctx: *mut SSL_CTX,
23964        der: *const u8,
23965        der_len: usize,
23966    ) -> ::core::ffi::c_int;
23967}
23968unsafe extern "C" {
23969    pub fn SSL_use_RSAPrivateKey_ASN1(
23970        ssl: *mut SSL,
23971        der: *const u8,
23972        der_len: usize,
23973    ) -> ::core::ffi::c_int;
23974}
23975unsafe extern "C" {
23976    pub fn SSL_CTX_use_RSAPrivateKey_file(
23977        ctx: *mut SSL_CTX,
23978        file: *const ::core::ffi::c_char,
23979        type_: ::core::ffi::c_int,
23980    ) -> ::core::ffi::c_int;
23981}
23982unsafe extern "C" {
23983    pub fn SSL_use_RSAPrivateKey_file(
23984        ssl: *mut SSL,
23985        file: *const ::core::ffi::c_char,
23986        type_: ::core::ffi::c_int,
23987    ) -> ::core::ffi::c_int;
23988}
23989unsafe extern "C" {
23990    pub fn SSL_CTX_use_certificate_file(
23991        ctx: *mut SSL_CTX,
23992        file: *const ::core::ffi::c_char,
23993        type_: ::core::ffi::c_int,
23994    ) -> ::core::ffi::c_int;
23995}
23996unsafe extern "C" {
23997    pub fn SSL_use_certificate_file(
23998        ssl: *mut SSL,
23999        file: *const ::core::ffi::c_char,
24000        type_: ::core::ffi::c_int,
24001    ) -> ::core::ffi::c_int;
24002}
24003unsafe extern "C" {
24004    pub fn SSL_CTX_use_PrivateKey_file(
24005        ctx: *mut SSL_CTX,
24006        file: *const ::core::ffi::c_char,
24007        type_: ::core::ffi::c_int,
24008    ) -> ::core::ffi::c_int;
24009}
24010unsafe extern "C" {
24011    pub fn SSL_use_PrivateKey_file(
24012        ssl: *mut SSL,
24013        file: *const ::core::ffi::c_char,
24014        type_: ::core::ffi::c_int,
24015    ) -> ::core::ffi::c_int;
24016}
24017unsafe extern "C" {
24018    pub fn SSL_CTX_use_certificate_chain_file(
24019        ctx: *mut SSL_CTX,
24020        file: *const ::core::ffi::c_char,
24021    ) -> ::core::ffi::c_int;
24022}
24023unsafe extern "C" {
24024    pub fn SSL_CTX_set_default_passwd_cb(ctx: *mut SSL_CTX, cb: pem_password_cb);
24025}
24026unsafe extern "C" {
24027    pub fn SSL_CTX_get_default_passwd_cb(ctx: *const SSL_CTX) -> pem_password_cb;
24028}
24029unsafe extern "C" {
24030    pub fn SSL_CTX_set_default_passwd_cb_userdata(
24031        ctx: *mut SSL_CTX,
24032        data: *mut ::core::ffi::c_void,
24033    );
24034}
24035unsafe extern "C" {
24036    pub fn SSL_CTX_get_default_passwd_cb_userdata(ctx: *const SSL_CTX) -> *mut ::core::ffi::c_void;
24037}
24038pub const ssl_private_key_result_t_ssl_private_key_success: ssl_private_key_result_t = 0;
24039pub const ssl_private_key_result_t_ssl_private_key_retry: ssl_private_key_result_t = 1;
24040pub const ssl_private_key_result_t_ssl_private_key_failure: ssl_private_key_result_t = 2;
24041pub type ssl_private_key_result_t = ::core::ffi::c_uint;
24042#[repr(C)]
24043#[derive(Debug, Copy, Clone)]
24044pub struct ssl_private_key_method_st {
24045    pub sign: ::core::option::Option<
24046        unsafe extern "C" fn(
24047            ssl: *mut SSL,
24048            out: *mut u8,
24049            out_len: *mut usize,
24050            max_out: usize,
24051            signature_algorithm: u16,
24052            in_: *const u8,
24053            in_len: usize,
24054        ) -> ssl_private_key_result_t,
24055    >,
24056    pub decrypt: ::core::option::Option<
24057        unsafe extern "C" fn(
24058            ssl: *mut SSL,
24059            out: *mut u8,
24060            out_len: *mut usize,
24061            max_out: usize,
24062            in_: *const u8,
24063            in_len: usize,
24064        ) -> ssl_private_key_result_t,
24065    >,
24066    pub complete: ::core::option::Option<
24067        unsafe extern "C" fn(
24068            ssl: *mut SSL,
24069            out: *mut u8,
24070            out_len: *mut usize,
24071            max_out: usize,
24072        ) -> ssl_private_key_result_t,
24073    >,
24074}
24075unsafe extern "C" {
24076    pub fn SSL_set_private_key_method(ssl: *mut SSL, key_method: *const SSL_PRIVATE_KEY_METHOD);
24077}
24078unsafe extern "C" {
24079    pub fn SSL_CTX_set_private_key_method(
24080        ctx: *mut SSL_CTX,
24081        key_method: *const SSL_PRIVATE_KEY_METHOD,
24082    );
24083}
24084unsafe extern "C" {
24085    pub fn SSL_CREDENTIAL_set_private_key_method(
24086        cred: *mut SSL_CREDENTIAL,
24087        key_method: *const SSL_PRIVATE_KEY_METHOD,
24088    ) -> ::core::ffi::c_int;
24089}
24090unsafe extern "C" {
24091    pub fn SSL_can_release_private_key(ssl: *const SSL) -> ::core::ffi::c_int;
24092}
24093#[repr(C)]
24094#[derive(Debug)]
24095pub struct stack_st_SSL_CIPHER {
24096    _unused: [u8; 0],
24097}
24098pub type sk_SSL_CIPHER_free_func =
24099    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_CIPHER)>;
24100pub type sk_SSL_CIPHER_copy_func =
24101    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_CIPHER) -> *const SSL_CIPHER>;
24102pub type sk_SSL_CIPHER_cmp_func = ::core::option::Option<
24103    unsafe extern "C" fn(
24104        arg1: *const *const SSL_CIPHER,
24105        arg2: *const *const SSL_CIPHER,
24106    ) -> ::core::ffi::c_int,
24107>;
24108pub type sk_SSL_CIPHER_delete_if_func = ::core::option::Option<
24109    unsafe extern "C" fn(
24110        arg1: *const SSL_CIPHER,
24111        arg2: *mut ::core::ffi::c_void,
24112    ) -> ::core::ffi::c_int,
24113>;
24114unsafe extern "C" {
24115    #[link_name = "sk_SSL_CIPHER_call_free_func__extern"]
24116    pub fn sk_SSL_CIPHER_call_free_func(
24117        free_func: OPENSSL_sk_free_func,
24118        ptr: *mut ::core::ffi::c_void,
24119    );
24120}
24121unsafe extern "C" {
24122    #[link_name = "sk_SSL_CIPHER_call_copy_func__extern"]
24123    pub fn sk_SSL_CIPHER_call_copy_func(
24124        copy_func: OPENSSL_sk_copy_func,
24125        ptr: *const ::core::ffi::c_void,
24126    ) -> *mut ::core::ffi::c_void;
24127}
24128unsafe extern "C" {
24129    #[link_name = "sk_SSL_CIPHER_call_cmp_func__extern"]
24130    pub fn sk_SSL_CIPHER_call_cmp_func(
24131        cmp_func: OPENSSL_sk_cmp_func,
24132        a: *const ::core::ffi::c_void,
24133        b: *const ::core::ffi::c_void,
24134    ) -> ::core::ffi::c_int;
24135}
24136unsafe extern "C" {
24137    #[link_name = "sk_SSL_CIPHER_call_delete_if_func__extern"]
24138    pub fn sk_SSL_CIPHER_call_delete_if_func(
24139        func: OPENSSL_sk_delete_if_func,
24140        obj: *mut ::core::ffi::c_void,
24141        data: *mut ::core::ffi::c_void,
24142    ) -> ::core::ffi::c_int;
24143}
24144unsafe extern "C" {
24145    #[link_name = "sk_SSL_CIPHER_new__extern"]
24146    pub fn sk_SSL_CIPHER_new(comp: sk_SSL_CIPHER_cmp_func) -> *mut stack_st_SSL_CIPHER;
24147}
24148unsafe extern "C" {
24149    #[link_name = "sk_SSL_CIPHER_new_null__extern"]
24150    pub fn sk_SSL_CIPHER_new_null() -> *mut stack_st_SSL_CIPHER;
24151}
24152unsafe extern "C" {
24153    #[link_name = "sk_SSL_CIPHER_num__extern"]
24154    pub fn sk_SSL_CIPHER_num(sk: *const stack_st_SSL_CIPHER) -> usize;
24155}
24156unsafe extern "C" {
24157    #[link_name = "sk_SSL_CIPHER_zero__extern"]
24158    pub fn sk_SSL_CIPHER_zero(sk: *mut stack_st_SSL_CIPHER);
24159}
24160unsafe extern "C" {
24161    #[link_name = "sk_SSL_CIPHER_value__extern"]
24162    pub fn sk_SSL_CIPHER_value(sk: *const stack_st_SSL_CIPHER, i: usize) -> *const SSL_CIPHER;
24163}
24164unsafe extern "C" {
24165    #[link_name = "sk_SSL_CIPHER_set__extern"]
24166    pub fn sk_SSL_CIPHER_set(
24167        sk: *mut stack_st_SSL_CIPHER,
24168        i: usize,
24169        p: *const SSL_CIPHER,
24170    ) -> *const SSL_CIPHER;
24171}
24172unsafe extern "C" {
24173    #[link_name = "sk_SSL_CIPHER_free__extern"]
24174    pub fn sk_SSL_CIPHER_free(sk: *mut stack_st_SSL_CIPHER);
24175}
24176unsafe extern "C" {
24177    #[link_name = "sk_SSL_CIPHER_pop_free__extern"]
24178    pub fn sk_SSL_CIPHER_pop_free(sk: *mut stack_st_SSL_CIPHER, free_func: sk_SSL_CIPHER_free_func);
24179}
24180unsafe extern "C" {
24181    #[link_name = "sk_SSL_CIPHER_insert__extern"]
24182    pub fn sk_SSL_CIPHER_insert(
24183        sk: *mut stack_st_SSL_CIPHER,
24184        p: *const SSL_CIPHER,
24185        where_: usize,
24186    ) -> usize;
24187}
24188unsafe extern "C" {
24189    #[link_name = "sk_SSL_CIPHER_delete__extern"]
24190    pub fn sk_SSL_CIPHER_delete(sk: *mut stack_st_SSL_CIPHER, where_: usize) -> *const SSL_CIPHER;
24191}
24192unsafe extern "C" {
24193    #[link_name = "sk_SSL_CIPHER_delete_ptr__extern"]
24194    pub fn sk_SSL_CIPHER_delete_ptr(
24195        sk: *mut stack_st_SSL_CIPHER,
24196        p: *const SSL_CIPHER,
24197    ) -> *const SSL_CIPHER;
24198}
24199unsafe extern "C" {
24200    #[link_name = "sk_SSL_CIPHER_delete_if__extern"]
24201    pub fn sk_SSL_CIPHER_delete_if(
24202        sk: *mut stack_st_SSL_CIPHER,
24203        func: sk_SSL_CIPHER_delete_if_func,
24204        data: *mut ::core::ffi::c_void,
24205    );
24206}
24207unsafe extern "C" {
24208    #[link_name = "sk_SSL_CIPHER_find__extern"]
24209    pub fn sk_SSL_CIPHER_find(
24210        sk: *const stack_st_SSL_CIPHER,
24211        out_index: *mut usize,
24212        p: *const SSL_CIPHER,
24213    ) -> ::core::ffi::c_int;
24214}
24215unsafe extern "C" {
24216    #[link_name = "sk_SSL_CIPHER_shift__extern"]
24217    pub fn sk_SSL_CIPHER_shift(sk: *mut stack_st_SSL_CIPHER) -> *const SSL_CIPHER;
24218}
24219unsafe extern "C" {
24220    #[link_name = "sk_SSL_CIPHER_push__extern"]
24221    pub fn sk_SSL_CIPHER_push(sk: *mut stack_st_SSL_CIPHER, p: *const SSL_CIPHER) -> usize;
24222}
24223unsafe extern "C" {
24224    #[link_name = "sk_SSL_CIPHER_pop__extern"]
24225    pub fn sk_SSL_CIPHER_pop(sk: *mut stack_st_SSL_CIPHER) -> *const SSL_CIPHER;
24226}
24227unsafe extern "C" {
24228    #[link_name = "sk_SSL_CIPHER_dup__extern"]
24229    pub fn sk_SSL_CIPHER_dup(sk: *const stack_st_SSL_CIPHER) -> *mut stack_st_SSL_CIPHER;
24230}
24231unsafe extern "C" {
24232    #[link_name = "sk_SSL_CIPHER_sort__extern"]
24233    pub fn sk_SSL_CIPHER_sort(sk: *mut stack_st_SSL_CIPHER);
24234}
24235unsafe extern "C" {
24236    #[link_name = "sk_SSL_CIPHER_sort_and_dedup__extern"]
24237    pub fn sk_SSL_CIPHER_sort_and_dedup(
24238        sk: *mut stack_st_SSL_CIPHER,
24239        free_func: sk_SSL_CIPHER_free_func,
24240    );
24241}
24242unsafe extern "C" {
24243    #[link_name = "sk_SSL_CIPHER_is_sorted__extern"]
24244    pub fn sk_SSL_CIPHER_is_sorted(sk: *const stack_st_SSL_CIPHER) -> ::core::ffi::c_int;
24245}
24246unsafe extern "C" {
24247    #[link_name = "sk_SSL_CIPHER_set_cmp_func__extern"]
24248    pub fn sk_SSL_CIPHER_set_cmp_func(
24249        sk: *mut stack_st_SSL_CIPHER,
24250        comp: sk_SSL_CIPHER_cmp_func,
24251    ) -> sk_SSL_CIPHER_cmp_func;
24252}
24253unsafe extern "C" {
24254    #[link_name = "sk_SSL_CIPHER_deep_copy__extern"]
24255    pub fn sk_SSL_CIPHER_deep_copy(
24256        sk: *const stack_st_SSL_CIPHER,
24257        copy_func: sk_SSL_CIPHER_copy_func,
24258        free_func: sk_SSL_CIPHER_free_func,
24259    ) -> *mut stack_st_SSL_CIPHER;
24260}
24261unsafe extern "C" {
24262    pub fn SSL_get_cipher_by_value(value: u16) -> *const SSL_CIPHER;
24263}
24264unsafe extern "C" {
24265    pub fn SSL_CIPHER_get_protocol_id(cipher: *const SSL_CIPHER) -> u16;
24266}
24267unsafe extern "C" {
24268    pub fn SSL_CIPHER_is_aead(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24269}
24270unsafe extern "C" {
24271    pub fn SSL_CIPHER_is_block_cipher(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24272}
24273unsafe extern "C" {
24274    pub fn SSL_CIPHER_get_cipher_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24275}
24276unsafe extern "C" {
24277    pub fn SSL_CIPHER_get_digest_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24278}
24279unsafe extern "C" {
24280    pub fn SSL_CIPHER_get_kx_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24281}
24282unsafe extern "C" {
24283    pub fn SSL_CIPHER_get_auth_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24284}
24285unsafe extern "C" {
24286    pub fn SSL_CIPHER_get_handshake_digest(cipher: *const SSL_CIPHER) -> *const EVP_MD;
24287}
24288unsafe extern "C" {
24289    pub fn SSL_CIPHER_get_prf_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24290}
24291unsafe extern "C" {
24292    pub fn SSL_CIPHER_get_min_version(cipher: *const SSL_CIPHER) -> u16;
24293}
24294unsafe extern "C" {
24295    pub fn SSL_CIPHER_get_max_version(cipher: *const SSL_CIPHER) -> u16;
24296}
24297unsafe extern "C" {
24298    pub fn SSL_CIPHER_standard_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
24299}
24300unsafe extern "C" {
24301    pub fn SSL_CIPHER_get_kx_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
24302}
24303unsafe extern "C" {
24304    pub fn SSL_CIPHER_get_bits(
24305        cipher: *const SSL_CIPHER,
24306        out_alg_bits: *mut ::core::ffi::c_int,
24307    ) -> ::core::ffi::c_int;
24308}
24309unsafe extern "C" {
24310    pub fn SSL_get_all_cipher_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
24311}
24312unsafe extern "C" {
24313    pub fn SSL_get_all_standard_cipher_names(
24314        out: *mut *const ::core::ffi::c_char,
24315        max_out: usize,
24316    ) -> usize;
24317}
24318unsafe extern "C" {
24319    pub fn SSL_CTX_set_strict_cipher_list(
24320        ctx: *mut SSL_CTX,
24321        str_: *const ::core::ffi::c_char,
24322    ) -> ::core::ffi::c_int;
24323}
24324unsafe extern "C" {
24325    pub fn SSL_CTX_set_cipher_list(
24326        ctx: *mut SSL_CTX,
24327        str_: *const ::core::ffi::c_char,
24328    ) -> ::core::ffi::c_int;
24329}
24330unsafe extern "C" {
24331    pub fn SSL_set_strict_cipher_list(
24332        ssl: *mut SSL,
24333        str_: *const ::core::ffi::c_char,
24334    ) -> ::core::ffi::c_int;
24335}
24336unsafe extern "C" {
24337    pub fn SSL_set_cipher_list(
24338        ssl: *mut SSL,
24339        str_: *const ::core::ffi::c_char,
24340    ) -> ::core::ffi::c_int;
24341}
24342unsafe extern "C" {
24343    pub fn SSL_CTX_get_ciphers(ctx: *const SSL_CTX) -> *mut stack_st_SSL_CIPHER;
24344}
24345unsafe extern "C" {
24346    pub fn SSL_CTX_cipher_in_group(ctx: *const SSL_CTX, i: usize) -> ::core::ffi::c_int;
24347}
24348unsafe extern "C" {
24349    pub fn SSL_get_ciphers(ssl: *const SSL) -> *mut stack_st_SSL_CIPHER;
24350}
24351unsafe extern "C" {
24352    pub fn SSL_is_init_finished(ssl: *const SSL) -> ::core::ffi::c_int;
24353}
24354unsafe extern "C" {
24355    pub fn SSL_in_init(ssl: *const SSL) -> ::core::ffi::c_int;
24356}
24357unsafe extern "C" {
24358    pub fn SSL_in_false_start(ssl: *const SSL) -> ::core::ffi::c_int;
24359}
24360unsafe extern "C" {
24361    pub fn SSL_get_peer_certificate(ssl: *const SSL) -> *mut X509;
24362}
24363unsafe extern "C" {
24364    pub fn SSL_get_peer_cert_chain(ssl: *const SSL) -> *mut stack_st_X509;
24365}
24366unsafe extern "C" {
24367    pub fn SSL_get_peer_full_cert_chain(ssl: *const SSL) -> *mut stack_st_X509;
24368}
24369unsafe extern "C" {
24370    pub fn SSL_get0_peer_certificates(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
24371}
24372unsafe extern "C" {
24373    pub fn SSL_get0_signed_cert_timestamp_list(
24374        ssl: *const SSL,
24375        out: *mut *const u8,
24376        out_len: *mut usize,
24377    );
24378}
24379unsafe extern "C" {
24380    pub fn SSL_get0_ocsp_response(ssl: *const SSL, out: *mut *const u8, out_len: *mut usize);
24381}
24382unsafe extern "C" {
24383    pub fn SSL_get_tls_unique(
24384        ssl: *const SSL,
24385        out: *mut u8,
24386        out_len: *mut usize,
24387        max_out: usize,
24388    ) -> ::core::ffi::c_int;
24389}
24390unsafe extern "C" {
24391    pub fn SSL_get_extms_support(ssl: *const SSL) -> ::core::ffi::c_int;
24392}
24393unsafe extern "C" {
24394    pub fn SSL_get_current_cipher(ssl: *const SSL) -> *const SSL_CIPHER;
24395}
24396unsafe extern "C" {
24397    pub fn SSL_session_reused(ssl: *const SSL) -> ::core::ffi::c_int;
24398}
24399unsafe extern "C" {
24400    pub fn SSL_get_secure_renegotiation_support(ssl: *const SSL) -> ::core::ffi::c_int;
24401}
24402unsafe extern "C" {
24403    pub fn SSL_export_keying_material(
24404        ssl: *const SSL,
24405        out: *mut u8,
24406        out_len: usize,
24407        label: *const ::core::ffi::c_char,
24408        label_len: usize,
24409        context: *const u8,
24410        context_len: usize,
24411        use_context: ::core::ffi::c_int,
24412    ) -> ::core::ffi::c_int;
24413}
24414unsafe extern "C" {
24415    pub fn SSL_SESSION_new(ctx: *const SSL_CTX) -> *mut SSL_SESSION;
24416}
24417unsafe extern "C" {
24418    pub fn SSL_SESSION_up_ref(session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24419}
24420unsafe extern "C" {
24421    pub fn SSL_SESSION_free(session: *mut SSL_SESSION);
24422}
24423unsafe extern "C" {
24424    pub fn SSL_SESSION_to_bytes(
24425        in_: *const SSL_SESSION,
24426        out_data: *mut *mut u8,
24427        out_len: *mut usize,
24428    ) -> ::core::ffi::c_int;
24429}
24430unsafe extern "C" {
24431    pub fn SSL_SESSION_to_bytes_for_ticket(
24432        in_: *const SSL_SESSION,
24433        out_data: *mut *mut u8,
24434        out_len: *mut usize,
24435    ) -> ::core::ffi::c_int;
24436}
24437unsafe extern "C" {
24438    pub fn SSL_SESSION_from_bytes(
24439        in_: *const u8,
24440        in_len: usize,
24441        ctx: *const SSL_CTX,
24442    ) -> *mut SSL_SESSION;
24443}
24444unsafe extern "C" {
24445    pub fn PEM_read_bio_SSL_SESSION(
24446        bio: *mut BIO,
24447        out: *mut *mut SSL_SESSION,
24448        cb: pem_password_cb,
24449        userdata: *mut ::core::ffi::c_void,
24450    ) -> *mut SSL_SESSION;
24451}
24452unsafe extern "C" {
24453    pub fn PEM_read_SSL_SESSION(
24454        fp: *mut FILE,
24455        out: *mut *mut SSL_SESSION,
24456        cb: pem_password_cb,
24457        userdata: *mut ::core::ffi::c_void,
24458    ) -> *mut SSL_SESSION;
24459}
24460unsafe extern "C" {
24461    pub fn PEM_write_bio_SSL_SESSION(bio: *mut BIO, in_: *const SSL_SESSION) -> ::core::ffi::c_int;
24462}
24463unsafe extern "C" {
24464    pub fn PEM_write_SSL_SESSION(fp: *mut FILE, in_: *const SSL_SESSION) -> ::core::ffi::c_int;
24465}
24466unsafe extern "C" {
24467    pub fn SSL_SESSION_get_version(session: *const SSL_SESSION) -> *const ::core::ffi::c_char;
24468}
24469unsafe extern "C" {
24470    pub fn SSL_SESSION_get_protocol_version(session: *const SSL_SESSION) -> u16;
24471}
24472unsafe extern "C" {
24473    pub fn SSL_SESSION_set_protocol_version(
24474        session: *mut SSL_SESSION,
24475        version: u16,
24476    ) -> ::core::ffi::c_int;
24477}
24478unsafe extern "C" {
24479    pub fn SSL_SESSION_get_id(
24480        session: *const SSL_SESSION,
24481        out_len: *mut ::core::ffi::c_uint,
24482    ) -> *const u8;
24483}
24484unsafe extern "C" {
24485    pub fn SSL_SESSION_set1_id(
24486        session: *mut SSL_SESSION,
24487        sid: *const u8,
24488        sid_len: usize,
24489    ) -> ::core::ffi::c_int;
24490}
24491unsafe extern "C" {
24492    pub fn SSL_SESSION_get_time(session: *const SSL_SESSION) -> u64;
24493}
24494unsafe extern "C" {
24495    pub fn SSL_SESSION_get_timeout(session: *const SSL_SESSION) -> u32;
24496}
24497unsafe extern "C" {
24498    pub fn SSL_SESSION_get0_peer(session: *const SSL_SESSION) -> *mut X509;
24499}
24500unsafe extern "C" {
24501    pub fn SSL_SESSION_get0_peer_certificates(
24502        session: *const SSL_SESSION,
24503    ) -> *const stack_st_CRYPTO_BUFFER;
24504}
24505unsafe extern "C" {
24506    pub fn SSL_SESSION_get0_peer_rpk(session: *const SSL_SESSION) -> *mut EVP_PKEY;
24507}
24508unsafe extern "C" {
24509    pub fn SSL_SESSION_get0_signed_cert_timestamp_list(
24510        session: *const SSL_SESSION,
24511        out: *mut *const u8,
24512        out_len: *mut usize,
24513    );
24514}
24515unsafe extern "C" {
24516    pub fn SSL_SESSION_get0_ocsp_response(
24517        session: *const SSL_SESSION,
24518        out: *mut *const u8,
24519        out_len: *mut usize,
24520    );
24521}
24522unsafe extern "C" {
24523    pub fn SSL_SESSION_get_master_key(
24524        session: *const SSL_SESSION,
24525        out: *mut u8,
24526        max_out: usize,
24527    ) -> usize;
24528}
24529unsafe extern "C" {
24530    pub fn SSL_SESSION_set_time(session: *mut SSL_SESSION, time: u64) -> u64;
24531}
24532unsafe extern "C" {
24533    pub fn SSL_SESSION_set_timeout(session: *mut SSL_SESSION, timeout: u32) -> u32;
24534}
24535unsafe extern "C" {
24536    pub fn SSL_SESSION_get0_id_context(
24537        session: *const SSL_SESSION,
24538        out_len: *mut ::core::ffi::c_uint,
24539    ) -> *const u8;
24540}
24541unsafe extern "C" {
24542    pub fn SSL_SESSION_set1_id_context(
24543        session: *mut SSL_SESSION,
24544        sid_ctx: *const u8,
24545        sid_ctx_len: usize,
24546    ) -> ::core::ffi::c_int;
24547}
24548unsafe extern "C" {
24549    pub fn SSL_SESSION_should_be_single_use(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24550}
24551unsafe extern "C" {
24552    pub fn SSL_SESSION_is_resumable(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24553}
24554unsafe extern "C" {
24555    pub fn SSL_SESSION_has_ticket(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24556}
24557unsafe extern "C" {
24558    pub fn SSL_SESSION_get0_ticket(
24559        session: *const SSL_SESSION,
24560        out_ticket: *mut *const u8,
24561        out_len: *mut usize,
24562    );
24563}
24564unsafe extern "C" {
24565    pub fn SSL_SESSION_set_ticket(
24566        session: *mut SSL_SESSION,
24567        ticket: *const u8,
24568        ticket_len: usize,
24569    ) -> ::core::ffi::c_int;
24570}
24571unsafe extern "C" {
24572    pub fn SSL_SESSION_get_ticket_lifetime_hint(session: *const SSL_SESSION) -> u32;
24573}
24574unsafe extern "C" {
24575    pub fn SSL_SESSION_get0_cipher(session: *const SSL_SESSION) -> *const SSL_CIPHER;
24576}
24577unsafe extern "C" {
24578    pub fn SSL_SESSION_has_peer_sha256(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24579}
24580unsafe extern "C" {
24581    pub fn SSL_SESSION_get0_peer_sha256(
24582        session: *const SSL_SESSION,
24583        out_ptr: *mut *const u8,
24584        out_len: *mut usize,
24585    );
24586}
24587unsafe extern "C" {
24588    pub fn SSL_SESSION_is_resumable_across_names(session: *const SSL_SESSION)
24589        -> ::core::ffi::c_int;
24590}
24591unsafe extern "C" {
24592    pub fn SSL_CTX_set_session_cache_mode(
24593        ctx: *mut SSL_CTX,
24594        mode: ::core::ffi::c_int,
24595    ) -> ::core::ffi::c_int;
24596}
24597unsafe extern "C" {
24598    pub fn SSL_CTX_get_session_cache_mode(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
24599}
24600unsafe extern "C" {
24601    pub fn SSL_set_session(ssl: *mut SSL, session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24602}
24603unsafe extern "C" {
24604    pub fn SSL_CTX_set_timeout(ctx: *mut SSL_CTX, timeout: u32) -> u32;
24605}
24606unsafe extern "C" {
24607    pub fn SSL_CTX_set_session_psk_dhe_timeout(ctx: *mut SSL_CTX, timeout: u32);
24608}
24609unsafe extern "C" {
24610    pub fn SSL_CTX_get_timeout(ctx: *const SSL_CTX) -> u32;
24611}
24612unsafe extern "C" {
24613    pub fn SSL_CTX_set_session_id_context(
24614        ctx: *mut SSL_CTX,
24615        sid_ctx: *const u8,
24616        sid_ctx_len: usize,
24617    ) -> ::core::ffi::c_int;
24618}
24619unsafe extern "C" {
24620    pub fn SSL_set_session_id_context(
24621        ssl: *mut SSL,
24622        sid_ctx: *const u8,
24623        sid_ctx_len: usize,
24624    ) -> ::core::ffi::c_int;
24625}
24626unsafe extern "C" {
24627    pub fn SSL_get0_session_id_context(ssl: *const SSL, out_len: *mut usize) -> *const u8;
24628}
24629unsafe extern "C" {
24630    pub fn SSL_CTX_sess_set_cache_size(
24631        ctx: *mut SSL_CTX,
24632        size: ::core::ffi::c_ulong,
24633    ) -> ::core::ffi::c_ulong;
24634}
24635unsafe extern "C" {
24636    pub fn SSL_CTX_sess_get_cache_size(ctx: *const SSL_CTX) -> ::core::ffi::c_ulong;
24637}
24638unsafe extern "C" {
24639    pub fn SSL_CTX_sess_number(ctx: *const SSL_CTX) -> usize;
24640}
24641unsafe extern "C" {
24642    pub fn SSL_CTX_add_session(ctx: *mut SSL_CTX, session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24643}
24644unsafe extern "C" {
24645    pub fn SSL_CTX_remove_session(
24646        ctx: *mut SSL_CTX,
24647        session: *mut SSL_SESSION,
24648    ) -> ::core::ffi::c_int;
24649}
24650unsafe extern "C" {
24651    pub fn SSL_CTX_flush_sessions(ctx: *mut SSL_CTX, time: u64);
24652}
24653pub type SSL_new_session_cb = ::core::option::Option<
24654    unsafe extern "C" fn(ssl: *mut SSL, session: *mut SSL_SESSION) -> ::core::ffi::c_int,
24655>;
24656unsafe extern "C" {
24657    pub fn SSL_CTX_sess_set_new_cb(ctx: *mut SSL_CTX, new_session_cb: SSL_new_session_cb);
24658}
24659unsafe extern "C" {
24660    pub fn SSL_CTX_sess_get_new_cb(ctx: *mut SSL_CTX) -> SSL_new_session_cb;
24661}
24662pub type SSL_remove_session_cb =
24663    ::core::option::Option<unsafe extern "C" fn(ctx: *mut SSL_CTX, session: *mut SSL_SESSION)>;
24664unsafe extern "C" {
24665    pub fn SSL_CTX_sess_set_remove_cb(ctx: *mut SSL_CTX, remove_session_cb: SSL_remove_session_cb);
24666}
24667unsafe extern "C" {
24668    pub fn SSL_CTX_sess_get_remove_cb(ctx: *mut SSL_CTX) -> SSL_remove_session_cb;
24669}
24670pub type SSL_get_session_cb = ::core::option::Option<
24671    unsafe extern "C" fn(
24672        ssl: *mut SSL,
24673        id: *const u8,
24674        id_len: ::core::ffi::c_int,
24675        out_copy: *mut ::core::ffi::c_int,
24676    ) -> *mut SSL_SESSION,
24677>;
24678unsafe extern "C" {
24679    pub fn SSL_CTX_sess_set_get_cb(ctx: *mut SSL_CTX, get_session_cb: SSL_get_session_cb);
24680}
24681unsafe extern "C" {
24682    pub fn SSL_CTX_sess_get_get_cb(ctx: *mut SSL_CTX) -> SSL_get_session_cb;
24683}
24684unsafe extern "C" {
24685    pub fn SSL_magic_pending_session_ptr() -> *mut SSL_SESSION;
24686}
24687unsafe extern "C" {
24688    pub fn SSL_CTX_set_resumption_across_names_enabled(
24689        ctx: *mut SSL_CTX,
24690        enabled: ::core::ffi::c_int,
24691    );
24692}
24693unsafe extern "C" {
24694    pub fn SSL_set_resumption_across_names_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
24695}
24696unsafe extern "C" {
24697    pub fn SSL_CTX_get_tlsext_ticket_keys(
24698        ctx: *mut SSL_CTX,
24699        out: *mut ::core::ffi::c_void,
24700        len: usize,
24701    ) -> ::core::ffi::c_int;
24702}
24703unsafe extern "C" {
24704    pub fn SSL_CTX_set_tlsext_ticket_keys(
24705        ctx: *mut SSL_CTX,
24706        in_: *const ::core::ffi::c_void,
24707        len: usize,
24708    ) -> ::core::ffi::c_int;
24709}
24710unsafe extern "C" {
24711    pub fn SSL_CTX_set_tlsext_ticket_key_cb(
24712        ctx: *mut SSL_CTX,
24713        callback: ::core::option::Option<
24714            unsafe extern "C" fn(
24715                ssl: *mut SSL,
24716                key_name: *mut u8,
24717                iv: *mut u8,
24718                ctx: *mut EVP_CIPHER_CTX,
24719                hmac_ctx: *mut HMAC_CTX,
24720                encrypt: ::core::ffi::c_int,
24721            ) -> ::core::ffi::c_int,
24722        >,
24723    ) -> ::core::ffi::c_int;
24724}
24725pub const ssl_ticket_aead_result_t_ssl_ticket_aead_success: ssl_ticket_aead_result_t = 0;
24726pub const ssl_ticket_aead_result_t_ssl_ticket_aead_retry: ssl_ticket_aead_result_t = 1;
24727pub const ssl_ticket_aead_result_t_ssl_ticket_aead_ignore_ticket: ssl_ticket_aead_result_t = 2;
24728pub const ssl_ticket_aead_result_t_ssl_ticket_aead_error: ssl_ticket_aead_result_t = 3;
24729pub type ssl_ticket_aead_result_t = ::core::ffi::c_uint;
24730#[repr(C)]
24731#[derive(Debug, Copy, Clone)]
24732pub struct ssl_ticket_aead_method_st {
24733    pub max_overhead: ::core::option::Option<unsafe extern "C" fn(ssl: *mut SSL) -> usize>,
24734    pub seal: ::core::option::Option<
24735        unsafe extern "C" fn(
24736            ssl: *mut SSL,
24737            out: *mut u8,
24738            out_len: *mut usize,
24739            max_out_len: usize,
24740            in_: *const u8,
24741            in_len: usize,
24742        ) -> ::core::ffi::c_int,
24743    >,
24744    pub open: ::core::option::Option<
24745        unsafe extern "C" fn(
24746            ssl: *mut SSL,
24747            out: *mut u8,
24748            out_len: *mut usize,
24749            max_out_len: usize,
24750            in_: *const u8,
24751            in_len: usize,
24752        ) -> ssl_ticket_aead_result_t,
24753    >,
24754}
24755unsafe extern "C" {
24756    pub fn SSL_CTX_set_ticket_aead_method(
24757        ctx: *mut SSL_CTX,
24758        aead_method: *const SSL_TICKET_AEAD_METHOD,
24759    );
24760}
24761unsafe extern "C" {
24762    pub fn SSL_process_tls13_new_session_ticket(
24763        ssl: *mut SSL,
24764        buf: *const u8,
24765        buf_len: usize,
24766    ) -> *mut SSL_SESSION;
24767}
24768unsafe extern "C" {
24769    pub fn SSL_CTX_set_num_tickets(ctx: *mut SSL_CTX, num_tickets: usize) -> ::core::ffi::c_int;
24770}
24771unsafe extern "C" {
24772    pub fn SSL_CTX_get_num_tickets(ctx: *const SSL_CTX) -> usize;
24773}
24774unsafe extern "C" {
24775    pub fn SSL_CTX_set1_group_ids(
24776        ctx: *mut SSL_CTX,
24777        group_ids: *const u16,
24778        num_group_ids: usize,
24779    ) -> ::core::ffi::c_int;
24780}
24781unsafe extern "C" {
24782    pub fn SSL_set1_group_ids(
24783        ssl: *mut SSL,
24784        group_ids: *const u16,
24785        num_group_ids: usize,
24786    ) -> ::core::ffi::c_int;
24787}
24788unsafe extern "C" {
24789    pub fn SSL_CTX_set1_group_ids_with_flags(
24790        ctx: *mut SSL_CTX,
24791        group_ids: *const u16,
24792        flags: *const u32,
24793        num_group_ids: usize,
24794    ) -> ::core::ffi::c_int;
24795}
24796unsafe extern "C" {
24797    pub fn SSL_set1_group_ids_with_flags(
24798        ssl: *mut SSL,
24799        group_ids: *const u16,
24800        flags: *const u32,
24801        num_group_ids: usize,
24802    ) -> ::core::ffi::c_int;
24803}
24804unsafe extern "C" {
24805    pub fn SSL_get_group_id(ssl: *const SSL) -> u16;
24806}
24807unsafe extern "C" {
24808    pub fn SSL_get_group_name(group_id: u16) -> *const ::core::ffi::c_char;
24809}
24810unsafe extern "C" {
24811    pub fn SSL_get_all_group_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
24812}
24813unsafe extern "C" {
24814    pub fn SSL_CTX_set1_groups(
24815        ctx: *mut SSL_CTX,
24816        groups: *const ::core::ffi::c_int,
24817        num_groups: usize,
24818    ) -> ::core::ffi::c_int;
24819}
24820unsafe extern "C" {
24821    pub fn SSL_set1_groups(
24822        ssl: *mut SSL,
24823        groups: *const ::core::ffi::c_int,
24824        num_groups: usize,
24825    ) -> ::core::ffi::c_int;
24826}
24827unsafe extern "C" {
24828    pub fn SSL_CTX_set1_groups_list(
24829        ctx: *mut SSL_CTX,
24830        groups: *const ::core::ffi::c_char,
24831    ) -> ::core::ffi::c_int;
24832}
24833unsafe extern "C" {
24834    pub fn SSL_set1_groups_list(
24835        ssl: *mut SSL,
24836        groups: *const ::core::ffi::c_char,
24837    ) -> ::core::ffi::c_int;
24838}
24839unsafe extern "C" {
24840    pub fn SSL_get_negotiated_group(ssl: *const SSL) -> ::core::ffi::c_int;
24841}
24842unsafe extern "C" {
24843    pub fn SSL_set1_client_key_shares(
24844        ssl: *mut SSL,
24845        group_ids: *const u16,
24846        num_group_ids: usize,
24847    ) -> ::core::ffi::c_int;
24848}
24849unsafe extern "C" {
24850    pub fn SSL_set1_server_supported_groups_hint(
24851        ssl: *mut SSL,
24852        server_groups: *const u16,
24853        num_server_groups: usize,
24854    ) -> ::core::ffi::c_int;
24855}
24856unsafe extern "C" {
24857    pub fn SSL_CTX_set_verify(
24858        ctx: *mut SSL_CTX,
24859        mode: ::core::ffi::c_int,
24860        callback: ::core::option::Option<
24861            unsafe extern "C" fn(
24862                ok: ::core::ffi::c_int,
24863                store_ctx: *mut X509_STORE_CTX,
24864            ) -> ::core::ffi::c_int,
24865        >,
24866    );
24867}
24868unsafe extern "C" {
24869    pub fn SSL_set_verify(
24870        ssl: *mut SSL,
24871        mode: ::core::ffi::c_int,
24872        callback: ::core::option::Option<
24873            unsafe extern "C" fn(
24874                ok: ::core::ffi::c_int,
24875                store_ctx: *mut X509_STORE_CTX,
24876            ) -> ::core::ffi::c_int,
24877        >,
24878    );
24879}
24880pub const ssl_verify_result_t_ssl_verify_ok: ssl_verify_result_t = 0;
24881pub const ssl_verify_result_t_ssl_verify_invalid: ssl_verify_result_t = 1;
24882pub const ssl_verify_result_t_ssl_verify_retry: ssl_verify_result_t = 2;
24883pub type ssl_verify_result_t = ::core::ffi::c_uint;
24884unsafe extern "C" {
24885    pub fn SSL_CTX_set_custom_verify(
24886        ctx: *mut SSL_CTX,
24887        mode: ::core::ffi::c_int,
24888        callback: ::core::option::Option<
24889            unsafe extern "C" fn(ssl: *mut SSL, out_alert: *mut u8) -> ssl_verify_result_t,
24890        >,
24891    );
24892}
24893unsafe extern "C" {
24894    pub fn SSL_set_custom_verify(
24895        ssl: *mut SSL,
24896        mode: ::core::ffi::c_int,
24897        callback: ::core::option::Option<
24898            unsafe extern "C" fn(ssl: *mut SSL, out_alert: *mut u8) -> ssl_verify_result_t,
24899        >,
24900    );
24901}
24902unsafe extern "C" {
24903    pub fn SSL_CTX_get_verify_mode(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
24904}
24905unsafe extern "C" {
24906    pub fn SSL_get_verify_mode(ssl: *const SSL) -> ::core::ffi::c_int;
24907}
24908unsafe extern "C" {
24909    pub fn SSL_CTX_get_verify_callback(
24910        ctx: *const SSL_CTX,
24911    ) -> ::core::option::Option<
24912        unsafe extern "C" fn(
24913            ctx: ::core::ffi::c_int,
24914            arg1: *mut X509_STORE_CTX,
24915        ) -> ::core::ffi::c_int,
24916    >;
24917}
24918unsafe extern "C" {
24919    pub fn SSL_get_verify_callback(
24920        ssl: *const SSL,
24921    ) -> ::core::option::Option<
24922        unsafe extern "C" fn(
24923            ssl: ::core::ffi::c_int,
24924            arg1: *mut X509_STORE_CTX,
24925        ) -> ::core::ffi::c_int,
24926    >;
24927}
24928unsafe extern "C" {
24929    pub fn SSL_set1_host(ssl: *mut SSL, hostname: *const ::core::ffi::c_char)
24930        -> ::core::ffi::c_int;
24931}
24932unsafe extern "C" {
24933    pub fn SSL_set_hostflags(ssl: *mut SSL, flags: ::core::ffi::c_uint);
24934}
24935unsafe extern "C" {
24936    pub fn SSL_CTX_set_verify_depth(ctx: *mut SSL_CTX, depth: ::core::ffi::c_int);
24937}
24938unsafe extern "C" {
24939    pub fn SSL_set_verify_depth(ssl: *mut SSL, depth: ::core::ffi::c_int);
24940}
24941unsafe extern "C" {
24942    pub fn SSL_CTX_get_verify_depth(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
24943}
24944unsafe extern "C" {
24945    pub fn SSL_get_verify_depth(ssl: *const SSL) -> ::core::ffi::c_int;
24946}
24947unsafe extern "C" {
24948    pub fn SSL_CTX_set1_param(
24949        ctx: *mut SSL_CTX,
24950        param: *const X509_VERIFY_PARAM,
24951    ) -> ::core::ffi::c_int;
24952}
24953unsafe extern "C" {
24954    pub fn SSL_set1_param(ssl: *mut SSL, param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_int;
24955}
24956unsafe extern "C" {
24957    pub fn SSL_CTX_get0_param(ctx: *mut SSL_CTX) -> *mut X509_VERIFY_PARAM;
24958}
24959unsafe extern "C" {
24960    pub fn SSL_get0_param(ssl: *mut SSL) -> *mut X509_VERIFY_PARAM;
24961}
24962unsafe extern "C" {
24963    pub fn SSL_CTX_set_purpose(
24964        ctx: *mut SSL_CTX,
24965        purpose: ::core::ffi::c_int,
24966    ) -> ::core::ffi::c_int;
24967}
24968unsafe extern "C" {
24969    pub fn SSL_set_purpose(ssl: *mut SSL, purpose: ::core::ffi::c_int) -> ::core::ffi::c_int;
24970}
24971unsafe extern "C" {
24972    pub fn SSL_CTX_set_trust(ctx: *mut SSL_CTX, trust: ::core::ffi::c_int) -> ::core::ffi::c_int;
24973}
24974unsafe extern "C" {
24975    pub fn SSL_set_trust(ssl: *mut SSL, trust: ::core::ffi::c_int) -> ::core::ffi::c_int;
24976}
24977unsafe extern "C" {
24978    pub fn SSL_CTX_set_cert_store(ctx: *mut SSL_CTX, store: *mut X509_STORE);
24979}
24980unsafe extern "C" {
24981    pub fn SSL_CTX_get_cert_store(ctx: *const SSL_CTX) -> *mut X509_STORE;
24982}
24983unsafe extern "C" {
24984    pub fn SSL_CTX_set_default_verify_paths(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
24985}
24986unsafe extern "C" {
24987    pub fn SSL_CTX_load_verify_locations(
24988        ctx: *mut SSL_CTX,
24989        ca_file: *const ::core::ffi::c_char,
24990        ca_dir: *const ::core::ffi::c_char,
24991    ) -> ::core::ffi::c_int;
24992}
24993unsafe extern "C" {
24994    pub fn SSL_get_verify_result(ssl: *const SSL) -> ::core::ffi::c_long;
24995}
24996unsafe extern "C" {
24997    pub fn SSL_alert_from_verify_result(result: ::core::ffi::c_long) -> ::core::ffi::c_int;
24998}
24999unsafe extern "C" {
25000    pub fn SSL_get_ex_data_X509_STORE_CTX_idx() -> ::core::ffi::c_int;
25001}
25002unsafe extern "C" {
25003    pub fn SSL_CTX_set_cert_verify_callback(
25004        ctx: *mut SSL_CTX,
25005        callback: ::core::option::Option<
25006            unsafe extern "C" fn(
25007                store_ctx: *mut X509_STORE_CTX,
25008                arg: *mut ::core::ffi::c_void,
25009            ) -> ::core::ffi::c_int,
25010        >,
25011        arg: *mut ::core::ffi::c_void,
25012    );
25013}
25014unsafe extern "C" {
25015    pub fn SSL_enable_signed_cert_timestamps(ssl: *mut SSL);
25016}
25017unsafe extern "C" {
25018    pub fn SSL_CTX_enable_signed_cert_timestamps(ctx: *mut SSL_CTX);
25019}
25020unsafe extern "C" {
25021    pub fn SSL_enable_ocsp_stapling(ssl: *mut SSL);
25022}
25023unsafe extern "C" {
25024    pub fn SSL_CTX_enable_ocsp_stapling(ctx: *mut SSL_CTX);
25025}
25026unsafe extern "C" {
25027    pub fn SSL_CTX_set0_verify_cert_store(
25028        ctx: *mut SSL_CTX,
25029        store: *mut X509_STORE,
25030    ) -> ::core::ffi::c_int;
25031}
25032unsafe extern "C" {
25033    pub fn SSL_CTX_set1_verify_cert_store(
25034        ctx: *mut SSL_CTX,
25035        store: *mut X509_STORE,
25036    ) -> ::core::ffi::c_int;
25037}
25038unsafe extern "C" {
25039    pub fn SSL_set0_verify_cert_store(ssl: *mut SSL, store: *mut X509_STORE) -> ::core::ffi::c_int;
25040}
25041unsafe extern "C" {
25042    pub fn SSL_set1_verify_cert_store(ssl: *mut SSL, store: *mut X509_STORE) -> ::core::ffi::c_int;
25043}
25044unsafe extern "C" {
25045    pub fn SSL_CTX_set_verify_algorithm_prefs(
25046        ctx: *mut SSL_CTX,
25047        prefs: *const u16,
25048        num_prefs: usize,
25049    ) -> ::core::ffi::c_int;
25050}
25051unsafe extern "C" {
25052    pub fn SSL_set_verify_algorithm_prefs(
25053        ssl: *mut SSL,
25054        prefs: *const u16,
25055        num_prefs: usize,
25056    ) -> ::core::ffi::c_int;
25057}
25058unsafe extern "C" {
25059    pub fn SSL_set_client_CA_list(ssl: *mut SSL, name_list: *mut stack_st_X509_NAME);
25060}
25061unsafe extern "C" {
25062    pub fn SSL_CTX_set_client_CA_list(ctx: *mut SSL_CTX, name_list: *mut stack_st_X509_NAME);
25063}
25064unsafe extern "C" {
25065    pub fn SSL_set0_client_CAs(ssl: *mut SSL, name_list: *mut stack_st_CRYPTO_BUFFER);
25066}
25067unsafe extern "C" {
25068    pub fn SSL_set0_CA_names(ssl: *mut SSL, name_list: *mut stack_st_CRYPTO_BUFFER);
25069}
25070unsafe extern "C" {
25071    pub fn SSL_CTX_set0_client_CAs(ctx: *mut SSL_CTX, name_list: *mut stack_st_CRYPTO_BUFFER);
25072}
25073unsafe extern "C" {
25074    pub fn SSL_get_client_CA_list(ssl: *const SSL) -> *mut stack_st_X509_NAME;
25075}
25076unsafe extern "C" {
25077    pub fn SSL_get0_server_requested_CAs(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
25078}
25079unsafe extern "C" {
25080    pub fn SSL_CTX_get_client_CA_list(ctx: *const SSL_CTX) -> *mut stack_st_X509_NAME;
25081}
25082unsafe extern "C" {
25083    pub fn SSL_add_client_CA(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
25084}
25085unsafe extern "C" {
25086    pub fn SSL_CTX_add_client_CA(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
25087}
25088unsafe extern "C" {
25089    pub fn SSL_load_client_CA_file(file: *const ::core::ffi::c_char) -> *mut stack_st_X509_NAME;
25090}
25091unsafe extern "C" {
25092    pub fn SSL_dup_CA_list(list: *mut stack_st_X509_NAME) -> *mut stack_st_X509_NAME;
25093}
25094unsafe extern "C" {
25095    pub fn SSL_add_file_cert_subjects_to_stack(
25096        out: *mut stack_st_X509_NAME,
25097        file: *const ::core::ffi::c_char,
25098    ) -> ::core::ffi::c_int;
25099}
25100unsafe extern "C" {
25101    pub fn SSL_add_bio_cert_subjects_to_stack(
25102        out: *mut stack_st_X509_NAME,
25103        bio: *mut BIO,
25104    ) -> ::core::ffi::c_int;
25105}
25106unsafe extern "C" {
25107    pub fn SSL_CREDENTIAL_set1_trust_anchor_id(
25108        cred: *mut SSL_CREDENTIAL,
25109        id: *const u8,
25110        id_len: usize,
25111    ) -> ::core::ffi::c_int;
25112}
25113unsafe extern "C" {
25114    pub fn SSL_CTX_set1_requested_trust_anchors(
25115        ctx: *mut SSL_CTX,
25116        ids: *const u8,
25117        ids_len: usize,
25118    ) -> ::core::ffi::c_int;
25119}
25120unsafe extern "C" {
25121    pub fn SSL_set1_requested_trust_anchors(
25122        ssl: *mut SSL,
25123        ids: *const u8,
25124        ids_len: usize,
25125    ) -> ::core::ffi::c_int;
25126}
25127unsafe extern "C" {
25128    pub fn SSL_peer_matched_trust_anchor(ssl: *const SSL) -> ::core::ffi::c_int;
25129}
25130unsafe extern "C" {
25131    pub fn SSL_get0_peer_available_trust_anchors(
25132        ssl: *const SSL,
25133        out: *mut *const u8,
25134        out_len: *mut usize,
25135    );
25136}
25137unsafe extern "C" {
25138    pub fn SSL_CTX_set1_available_trust_anchors(
25139        ctx: *mut SSL_CTX,
25140        ids: *const u8,
25141        ids_len: usize,
25142    ) -> ::core::ffi::c_int;
25143}
25144unsafe extern "C" {
25145    pub fn SSL_set1_available_trust_anchors(
25146        ssl: *mut SSL,
25147        ids: *const u8,
25148        ids_len: usize,
25149    ) -> ::core::ffi::c_int;
25150}
25151unsafe extern "C" {
25152    pub fn SSL_set_tlsext_host_name(
25153        ssl: *mut SSL,
25154        name: *const ::core::ffi::c_char,
25155    ) -> ::core::ffi::c_int;
25156}
25157unsafe extern "C" {
25158    pub fn SSL_get_servername(
25159        ssl: *const SSL,
25160        type_: ::core::ffi::c_int,
25161    ) -> *const ::core::ffi::c_char;
25162}
25163unsafe extern "C" {
25164    pub fn SSL_get_servername_type(ssl: *const SSL) -> ::core::ffi::c_int;
25165}
25166unsafe extern "C" {
25167    pub fn SSL_CTX_set_tlsext_servername_callback(
25168        ctx: *mut SSL_CTX,
25169        callback: ::core::option::Option<
25170            unsafe extern "C" fn(
25171                ssl: *mut SSL,
25172                out_alert: *mut ::core::ffi::c_int,
25173                arg: *mut ::core::ffi::c_void,
25174            ) -> ::core::ffi::c_int,
25175        >,
25176    ) -> ::core::ffi::c_int;
25177}
25178unsafe extern "C" {
25179    pub fn SSL_CTX_set_tlsext_servername_arg(
25180        ctx: *mut SSL_CTX,
25181        arg: *mut ::core::ffi::c_void,
25182    ) -> ::core::ffi::c_int;
25183}
25184unsafe extern "C" {
25185    pub fn SSL_set_SSL_CTX(ssl: *mut SSL, ctx: *mut SSL_CTX) -> *mut SSL_CTX;
25186}
25187unsafe extern "C" {
25188    pub fn SSL_CTX_set_alpn_protos(
25189        ctx: *mut SSL_CTX,
25190        protos: *const u8,
25191        protos_len: usize,
25192    ) -> ::core::ffi::c_int;
25193}
25194unsafe extern "C" {
25195    pub fn SSL_set_alpn_protos(
25196        ssl: *mut SSL,
25197        protos: *const u8,
25198        protos_len: usize,
25199    ) -> ::core::ffi::c_int;
25200}
25201unsafe extern "C" {
25202    pub fn SSL_CTX_set_alpn_select_cb(
25203        ctx: *mut SSL_CTX,
25204        cb: ::core::option::Option<
25205            unsafe extern "C" fn(
25206                ssl: *mut SSL,
25207                out: *mut *const u8,
25208                out_len: *mut u8,
25209                in_: *const u8,
25210                in_len: ::core::ffi::c_uint,
25211                arg: *mut ::core::ffi::c_void,
25212            ) -> ::core::ffi::c_int,
25213        >,
25214        arg: *mut ::core::ffi::c_void,
25215    );
25216}
25217unsafe extern "C" {
25218    pub fn SSL_get0_alpn_selected(
25219        ssl: *const SSL,
25220        out_data: *mut *const u8,
25221        out_len: *mut ::core::ffi::c_uint,
25222    );
25223}
25224unsafe extern "C" {
25225    pub fn SSL_CTX_set_allow_unknown_alpn_protos(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
25226}
25227unsafe extern "C" {
25228    pub fn SSL_add_application_settings(
25229        ssl: *mut SSL,
25230        proto: *const u8,
25231        proto_len: usize,
25232        settings: *const u8,
25233        settings_len: usize,
25234    ) -> ::core::ffi::c_int;
25235}
25236unsafe extern "C" {
25237    pub fn SSL_get0_peer_application_settings(
25238        ssl: *const SSL,
25239        out_data: *mut *const u8,
25240        out_len: *mut usize,
25241    );
25242}
25243unsafe extern "C" {
25244    pub fn SSL_has_application_settings(ssl: *const SSL) -> ::core::ffi::c_int;
25245}
25246unsafe extern "C" {
25247    pub fn SSL_set_alps_use_new_codepoint(ssl: *mut SSL, use_new: ::core::ffi::c_int);
25248}
25249pub type ssl_cert_compression_func_t = ::core::option::Option<
25250    unsafe extern "C" fn(
25251        ssl: *mut SSL,
25252        out: *mut CBB,
25253        in_: *const u8,
25254        in_len: usize,
25255    ) -> ::core::ffi::c_int,
25256>;
25257pub type ssl_cert_decompression_func_t = ::core::option::Option<
25258    unsafe extern "C" fn(
25259        ssl: *mut SSL,
25260        out: *mut *mut CRYPTO_BUFFER,
25261        uncompressed_len: usize,
25262        in_: *const u8,
25263        in_len: usize,
25264    ) -> ::core::ffi::c_int,
25265>;
25266unsafe extern "C" {
25267    pub fn SSL_CTX_add_cert_compression_alg(
25268        ctx: *mut SSL_CTX,
25269        alg_id: u16,
25270        compress: ssl_cert_compression_func_t,
25271        decompress: ssl_cert_decompression_func_t,
25272    ) -> ::core::ffi::c_int;
25273}
25274unsafe extern "C" {
25275    pub fn SSL_CTX_set_next_protos_advertised_cb(
25276        ctx: *mut SSL_CTX,
25277        cb: ::core::option::Option<
25278            unsafe extern "C" fn(
25279                ssl: *mut SSL,
25280                out: *mut *const u8,
25281                out_len: *mut ::core::ffi::c_uint,
25282                arg: *mut ::core::ffi::c_void,
25283            ) -> ::core::ffi::c_int,
25284        >,
25285        arg: *mut ::core::ffi::c_void,
25286    );
25287}
25288unsafe extern "C" {
25289    pub fn SSL_CTX_set_next_proto_select_cb(
25290        ctx: *mut SSL_CTX,
25291        cb: ::core::option::Option<
25292            unsafe extern "C" fn(
25293                ssl: *mut SSL,
25294                out: *mut *mut u8,
25295                out_len: *mut u8,
25296                in_: *const u8,
25297                in_len: ::core::ffi::c_uint,
25298                arg: *mut ::core::ffi::c_void,
25299            ) -> ::core::ffi::c_int,
25300        >,
25301        arg: *mut ::core::ffi::c_void,
25302    );
25303}
25304unsafe extern "C" {
25305    pub fn SSL_get0_next_proto_negotiated(
25306        ssl: *const SSL,
25307        out_data: *mut *const u8,
25308        out_len: *mut ::core::ffi::c_uint,
25309    );
25310}
25311unsafe extern "C" {
25312    pub fn SSL_select_next_proto(
25313        out: *mut *mut u8,
25314        out_len: *mut u8,
25315        peer: *const u8,
25316        peer_len: ::core::ffi::c_uint,
25317        supported: *const u8,
25318        supported_len: ::core::ffi::c_uint,
25319    ) -> ::core::ffi::c_int;
25320}
25321unsafe extern "C" {
25322    pub fn SSL_CTX_set_tls_channel_id_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
25323}
25324unsafe extern "C" {
25325    pub fn SSL_set_tls_channel_id_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
25326}
25327unsafe extern "C" {
25328    pub fn SSL_CTX_set1_tls_channel_id(
25329        ctx: *mut SSL_CTX,
25330        private_key: *mut EVP_PKEY,
25331    ) -> ::core::ffi::c_int;
25332}
25333unsafe extern "C" {
25334    pub fn SSL_set1_tls_channel_id(ssl: *mut SSL, private_key: *mut EVP_PKEY)
25335        -> ::core::ffi::c_int;
25336}
25337unsafe extern "C" {
25338    pub fn SSL_get_tls_channel_id(ssl: *mut SSL, out: *mut u8, max_out: usize) -> usize;
25339}
25340#[repr(C)]
25341#[derive(Debug, Copy, Clone)]
25342pub struct srtp_protection_profile_st {
25343    pub name: *const ::core::ffi::c_char,
25344    pub id: ::core::ffi::c_ulong,
25345}
25346#[repr(C)]
25347#[derive(Debug)]
25348pub struct stack_st_SRTP_PROTECTION_PROFILE {
25349    _unused: [u8; 0],
25350}
25351pub type sk_SRTP_PROTECTION_PROFILE_free_func =
25352    ::core::option::Option<unsafe extern "C" fn(arg1: *const SRTP_PROTECTION_PROFILE)>;
25353pub type sk_SRTP_PROTECTION_PROFILE_copy_func = ::core::option::Option<
25354    unsafe extern "C" fn(arg1: *const SRTP_PROTECTION_PROFILE) -> *const SRTP_PROTECTION_PROFILE,
25355>;
25356pub type sk_SRTP_PROTECTION_PROFILE_cmp_func = ::core::option::Option<
25357    unsafe extern "C" fn(
25358        arg1: *const *const SRTP_PROTECTION_PROFILE,
25359        arg2: *const *const SRTP_PROTECTION_PROFILE,
25360    ) -> ::core::ffi::c_int,
25361>;
25362pub type sk_SRTP_PROTECTION_PROFILE_delete_if_func = ::core::option::Option<
25363    unsafe extern "C" fn(
25364        arg1: *const SRTP_PROTECTION_PROFILE,
25365        arg2: *mut ::core::ffi::c_void,
25366    ) -> ::core::ffi::c_int,
25367>;
25368unsafe extern "C" {
25369    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_free_func__extern"]
25370    pub fn sk_SRTP_PROTECTION_PROFILE_call_free_func(
25371        free_func: OPENSSL_sk_free_func,
25372        ptr: *mut ::core::ffi::c_void,
25373    );
25374}
25375unsafe extern "C" {
25376    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_copy_func__extern"]
25377    pub fn sk_SRTP_PROTECTION_PROFILE_call_copy_func(
25378        copy_func: OPENSSL_sk_copy_func,
25379        ptr: *const ::core::ffi::c_void,
25380    ) -> *mut ::core::ffi::c_void;
25381}
25382unsafe extern "C" {
25383    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_cmp_func__extern"]
25384    pub fn sk_SRTP_PROTECTION_PROFILE_call_cmp_func(
25385        cmp_func: OPENSSL_sk_cmp_func,
25386        a: *const ::core::ffi::c_void,
25387        b: *const ::core::ffi::c_void,
25388    ) -> ::core::ffi::c_int;
25389}
25390unsafe extern "C" {
25391    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_delete_if_func__extern"]
25392    pub fn sk_SRTP_PROTECTION_PROFILE_call_delete_if_func(
25393        func: OPENSSL_sk_delete_if_func,
25394        obj: *mut ::core::ffi::c_void,
25395        data: *mut ::core::ffi::c_void,
25396    ) -> ::core::ffi::c_int;
25397}
25398unsafe extern "C" {
25399    #[link_name = "sk_SRTP_PROTECTION_PROFILE_new__extern"]
25400    pub fn sk_SRTP_PROTECTION_PROFILE_new(
25401        comp: sk_SRTP_PROTECTION_PROFILE_cmp_func,
25402    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25403}
25404unsafe extern "C" {
25405    #[link_name = "sk_SRTP_PROTECTION_PROFILE_new_null__extern"]
25406    pub fn sk_SRTP_PROTECTION_PROFILE_new_null() -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25407}
25408unsafe extern "C" {
25409    #[link_name = "sk_SRTP_PROTECTION_PROFILE_num__extern"]
25410    pub fn sk_SRTP_PROTECTION_PROFILE_num(sk: *const stack_st_SRTP_PROTECTION_PROFILE) -> usize;
25411}
25412unsafe extern "C" {
25413    #[link_name = "sk_SRTP_PROTECTION_PROFILE_zero__extern"]
25414    pub fn sk_SRTP_PROTECTION_PROFILE_zero(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25415}
25416unsafe extern "C" {
25417    #[link_name = "sk_SRTP_PROTECTION_PROFILE_value__extern"]
25418    pub fn sk_SRTP_PROTECTION_PROFILE_value(
25419        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25420        i: usize,
25421    ) -> *const SRTP_PROTECTION_PROFILE;
25422}
25423unsafe extern "C" {
25424    #[link_name = "sk_SRTP_PROTECTION_PROFILE_set__extern"]
25425    pub fn sk_SRTP_PROTECTION_PROFILE_set(
25426        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25427        i: usize,
25428        p: *const SRTP_PROTECTION_PROFILE,
25429    ) -> *const SRTP_PROTECTION_PROFILE;
25430}
25431unsafe extern "C" {
25432    #[link_name = "sk_SRTP_PROTECTION_PROFILE_free__extern"]
25433    pub fn sk_SRTP_PROTECTION_PROFILE_free(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25434}
25435unsafe extern "C" {
25436    #[link_name = "sk_SRTP_PROTECTION_PROFILE_pop_free__extern"]
25437    pub fn sk_SRTP_PROTECTION_PROFILE_pop_free(
25438        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25439        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25440    );
25441}
25442unsafe extern "C" {
25443    #[link_name = "sk_SRTP_PROTECTION_PROFILE_insert__extern"]
25444    pub fn sk_SRTP_PROTECTION_PROFILE_insert(
25445        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25446        p: *const SRTP_PROTECTION_PROFILE,
25447        where_: usize,
25448    ) -> usize;
25449}
25450unsafe extern "C" {
25451    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete__extern"]
25452    pub fn sk_SRTP_PROTECTION_PROFILE_delete(
25453        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25454        where_: usize,
25455    ) -> *const SRTP_PROTECTION_PROFILE;
25456}
25457unsafe extern "C" {
25458    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete_ptr__extern"]
25459    pub fn sk_SRTP_PROTECTION_PROFILE_delete_ptr(
25460        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25461        p: *const SRTP_PROTECTION_PROFILE,
25462    ) -> *const SRTP_PROTECTION_PROFILE;
25463}
25464unsafe extern "C" {
25465    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete_if__extern"]
25466    pub fn sk_SRTP_PROTECTION_PROFILE_delete_if(
25467        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25468        func: sk_SRTP_PROTECTION_PROFILE_delete_if_func,
25469        data: *mut ::core::ffi::c_void,
25470    );
25471}
25472unsafe extern "C" {
25473    #[link_name = "sk_SRTP_PROTECTION_PROFILE_find__extern"]
25474    pub fn sk_SRTP_PROTECTION_PROFILE_find(
25475        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25476        out_index: *mut usize,
25477        p: *const SRTP_PROTECTION_PROFILE,
25478    ) -> ::core::ffi::c_int;
25479}
25480unsafe extern "C" {
25481    #[link_name = "sk_SRTP_PROTECTION_PROFILE_shift__extern"]
25482    pub fn sk_SRTP_PROTECTION_PROFILE_shift(
25483        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25484    ) -> *const SRTP_PROTECTION_PROFILE;
25485}
25486unsafe extern "C" {
25487    #[link_name = "sk_SRTP_PROTECTION_PROFILE_push__extern"]
25488    pub fn sk_SRTP_PROTECTION_PROFILE_push(
25489        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25490        p: *const SRTP_PROTECTION_PROFILE,
25491    ) -> usize;
25492}
25493unsafe extern "C" {
25494    #[link_name = "sk_SRTP_PROTECTION_PROFILE_pop__extern"]
25495    pub fn sk_SRTP_PROTECTION_PROFILE_pop(
25496        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25497    ) -> *const SRTP_PROTECTION_PROFILE;
25498}
25499unsafe extern "C" {
25500    #[link_name = "sk_SRTP_PROTECTION_PROFILE_dup__extern"]
25501    pub fn sk_SRTP_PROTECTION_PROFILE_dup(
25502        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25503    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25504}
25505unsafe extern "C" {
25506    #[link_name = "sk_SRTP_PROTECTION_PROFILE_sort__extern"]
25507    pub fn sk_SRTP_PROTECTION_PROFILE_sort(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25508}
25509unsafe extern "C" {
25510    #[link_name = "sk_SRTP_PROTECTION_PROFILE_sort_and_dedup__extern"]
25511    pub fn sk_SRTP_PROTECTION_PROFILE_sort_and_dedup(
25512        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25513        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25514    );
25515}
25516unsafe extern "C" {
25517    #[link_name = "sk_SRTP_PROTECTION_PROFILE_is_sorted__extern"]
25518    pub fn sk_SRTP_PROTECTION_PROFILE_is_sorted(
25519        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25520    ) -> ::core::ffi::c_int;
25521}
25522unsafe extern "C" {
25523    #[link_name = "sk_SRTP_PROTECTION_PROFILE_set_cmp_func__extern"]
25524    pub fn sk_SRTP_PROTECTION_PROFILE_set_cmp_func(
25525        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25526        comp: sk_SRTP_PROTECTION_PROFILE_cmp_func,
25527    ) -> sk_SRTP_PROTECTION_PROFILE_cmp_func;
25528}
25529unsafe extern "C" {
25530    #[link_name = "sk_SRTP_PROTECTION_PROFILE_deep_copy__extern"]
25531    pub fn sk_SRTP_PROTECTION_PROFILE_deep_copy(
25532        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25533        copy_func: sk_SRTP_PROTECTION_PROFILE_copy_func,
25534        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25535    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25536}
25537unsafe extern "C" {
25538    pub fn SSL_CTX_set_srtp_profiles(
25539        ctx: *mut SSL_CTX,
25540        profiles: *const ::core::ffi::c_char,
25541    ) -> ::core::ffi::c_int;
25542}
25543unsafe extern "C" {
25544    pub fn SSL_set_srtp_profiles(
25545        ssl: *mut SSL,
25546        profiles: *const ::core::ffi::c_char,
25547    ) -> ::core::ffi::c_int;
25548}
25549unsafe extern "C" {
25550    pub fn SSL_get_srtp_profiles(ssl: *const SSL) -> *const stack_st_SRTP_PROTECTION_PROFILE;
25551}
25552unsafe extern "C" {
25553    pub fn SSL_get_selected_srtp_profile(ssl: *mut SSL) -> *const SRTP_PROTECTION_PROFILE;
25554}
25555unsafe extern "C" {
25556    pub fn SSL_CREDENTIAL_new_pre_shared_key(
25557        key: *const u8,
25558        key_len: usize,
25559        id: *const u8,
25560        id_len: usize,
25561        md: *const EVP_MD,
25562        context: *const u8,
25563        context_len: usize,
25564    ) -> *mut SSL_CREDENTIAL;
25565}
25566unsafe extern "C" {
25567    pub fn SSL_CTX_set_psk_client_callback(
25568        ctx: *mut SSL_CTX,
25569        cb: ::core::option::Option<
25570            unsafe extern "C" fn(
25571                ssl: *mut SSL,
25572                hint: *const ::core::ffi::c_char,
25573                identity: *mut ::core::ffi::c_char,
25574                max_identity_len: ::core::ffi::c_uint,
25575                psk: *mut u8,
25576                max_psk_len: ::core::ffi::c_uint,
25577            ) -> ::core::ffi::c_uint,
25578        >,
25579    );
25580}
25581unsafe extern "C" {
25582    pub fn SSL_set_psk_client_callback(
25583        ssl: *mut SSL,
25584        cb: ::core::option::Option<
25585            unsafe extern "C" fn(
25586                ssl: *mut SSL,
25587                hint: *const ::core::ffi::c_char,
25588                identity: *mut ::core::ffi::c_char,
25589                max_identity_len: ::core::ffi::c_uint,
25590                psk: *mut u8,
25591                max_psk_len: ::core::ffi::c_uint,
25592            ) -> ::core::ffi::c_uint,
25593        >,
25594    );
25595}
25596unsafe extern "C" {
25597    pub fn SSL_CTX_set_psk_server_callback(
25598        ctx: *mut SSL_CTX,
25599        cb: ::core::option::Option<
25600            unsafe extern "C" fn(
25601                ssl: *mut SSL,
25602                identity: *const ::core::ffi::c_char,
25603                psk: *mut u8,
25604                max_psk_len: ::core::ffi::c_uint,
25605            ) -> ::core::ffi::c_uint,
25606        >,
25607    );
25608}
25609unsafe extern "C" {
25610    pub fn SSL_set_psk_server_callback(
25611        ssl: *mut SSL,
25612        cb: ::core::option::Option<
25613            unsafe extern "C" fn(
25614                ssl: *mut SSL,
25615                identity: *const ::core::ffi::c_char,
25616                psk: *mut u8,
25617                max_psk_len: ::core::ffi::c_uint,
25618            ) -> ::core::ffi::c_uint,
25619        >,
25620    );
25621}
25622unsafe extern "C" {
25623    pub fn SSL_CTX_use_psk_identity_hint(
25624        ctx: *mut SSL_CTX,
25625        identity_hint: *const ::core::ffi::c_char,
25626    ) -> ::core::ffi::c_int;
25627}
25628unsafe extern "C" {
25629    pub fn SSL_use_psk_identity_hint(
25630        ssl: *mut SSL,
25631        identity_hint: *const ::core::ffi::c_char,
25632    ) -> ::core::ffi::c_int;
25633}
25634unsafe extern "C" {
25635    pub fn SSL_get_psk_identity_hint(ssl: *const SSL) -> *const ::core::ffi::c_char;
25636}
25637unsafe extern "C" {
25638    pub fn SSL_get_psk_identity(ssl: *const SSL) -> *const ::core::ffi::c_char;
25639}
25640unsafe extern "C" {
25641    pub fn SSL_CREDENTIAL_new_delegated() -> *mut SSL_CREDENTIAL;
25642}
25643unsafe extern "C" {
25644    pub fn SSL_CREDENTIAL_set1_delegated_credential(
25645        cred: *mut SSL_CREDENTIAL,
25646        dc: *mut CRYPTO_BUFFER,
25647    ) -> ::core::ffi::c_int;
25648}
25649unsafe extern "C" {
25650    pub fn SSL_CREDENTIAL_new_raw_public_key(pkey: *mut EVP_PKEY) -> *mut SSL_CREDENTIAL;
25651}
25652unsafe extern "C" {
25653    pub fn SSL_CREDENTIAL_new_raw_public_key_custom(
25654        pubkey: *mut EVP_PKEY,
25655        method: *const SSL_PRIVATE_KEY_METHOD,
25656    ) -> *mut SSL_CREDENTIAL;
25657}
25658unsafe extern "C" {
25659    pub fn SSL_CTX_set1_accepted_peer_cert_types(
25660        ctx: *mut SSL_CTX,
25661        values: *const u8,
25662        num_values: usize,
25663    ) -> ::core::ffi::c_int;
25664}
25665unsafe extern "C" {
25666    pub fn SSL_set1_accepted_peer_cert_types(
25667        ssl: *mut SSL,
25668        values: *const u8,
25669        num_values: usize,
25670    ) -> ::core::ffi::c_int;
25671}
25672unsafe extern "C" {
25673    pub fn SSL_CTX_set1_available_client_cert_types(
25674        ctx: *mut SSL_CTX,
25675        values: *const u8,
25676        num_values: usize,
25677    ) -> ::core::ffi::c_int;
25678}
25679unsafe extern "C" {
25680    pub fn SSL_set1_available_client_cert_types(
25681        ssl: *mut SSL,
25682        values: *const u8,
25683        num_values: usize,
25684    ) -> ::core::ffi::c_int;
25685}
25686unsafe extern "C" {
25687    pub fn SSL_get_peer_cert_type(ssl: *const SSL) -> ::core::ffi::c_int;
25688}
25689unsafe extern "C" {
25690    pub fn SSL_get0_peer_rpk(ssl: *const SSL) -> *mut EVP_PKEY;
25691}
25692unsafe extern "C" {
25693    pub fn SSL_spake2plusv1_register(
25694        out_w0: *mut u8,
25695        out_w1: *mut u8,
25696        out_registration_record: *mut u8,
25697        password: *const u8,
25698        password_len: usize,
25699        client_identity: *const u8,
25700        client_identity_len: usize,
25701        server_identity: *const u8,
25702        server_identity_len: usize,
25703    ) -> ::core::ffi::c_int;
25704}
25705unsafe extern "C" {
25706    pub fn SSL_CREDENTIAL_new_spake2plusv1_client(
25707        context: *const u8,
25708        context_len: usize,
25709        client_identity: *const u8,
25710        client_identity_len: usize,
25711        server_identity: *const u8,
25712        server_identity_len: usize,
25713        error_limit: u32,
25714        w0: *const u8,
25715        w0_len: usize,
25716        w1: *const u8,
25717        w1_len: usize,
25718    ) -> *mut SSL_CREDENTIAL;
25719}
25720unsafe extern "C" {
25721    pub fn SSL_CREDENTIAL_new_spake2plusv1_server(
25722        context: *const u8,
25723        context_len: usize,
25724        client_identity: *const u8,
25725        client_identity_len: usize,
25726        server_identity: *const u8,
25727        server_identity_len: usize,
25728        rate_limit: u32,
25729        w0: *const u8,
25730        w0_len: usize,
25731        registration_record: *const u8,
25732        registration_record_len: usize,
25733    ) -> *mut SSL_CREDENTIAL;
25734}
25735pub const ssl_encryption_level_t_ssl_encryption_initial: ssl_encryption_level_t = 0;
25736pub const ssl_encryption_level_t_ssl_encryption_early_data: ssl_encryption_level_t = 1;
25737pub const ssl_encryption_level_t_ssl_encryption_handshake: ssl_encryption_level_t = 2;
25738pub const ssl_encryption_level_t_ssl_encryption_application: ssl_encryption_level_t = 3;
25739pub type ssl_encryption_level_t = ::core::ffi::c_uint;
25740#[repr(C)]
25741#[derive(Debug, Copy, Clone)]
25742pub struct ssl_quic_method_st {
25743    pub set_read_secret: ::core::option::Option<
25744        unsafe extern "C" fn(
25745            ssl: *mut SSL,
25746            level: ssl_encryption_level_t,
25747            cipher: *const SSL_CIPHER,
25748            secret: *const u8,
25749            secret_len: usize,
25750        ) -> ::core::ffi::c_int,
25751    >,
25752    pub set_write_secret: ::core::option::Option<
25753        unsafe extern "C" fn(
25754            ssl: *mut SSL,
25755            level: ssl_encryption_level_t,
25756            cipher: *const SSL_CIPHER,
25757            secret: *const u8,
25758            secret_len: usize,
25759        ) -> ::core::ffi::c_int,
25760    >,
25761    pub add_handshake_data: ::core::option::Option<
25762        unsafe extern "C" fn(
25763            ssl: *mut SSL,
25764            level: ssl_encryption_level_t,
25765            data: *const u8,
25766            len: usize,
25767        ) -> ::core::ffi::c_int,
25768    >,
25769    pub flush_flight:
25770        ::core::option::Option<unsafe extern "C" fn(ssl: *mut SSL) -> ::core::ffi::c_int>,
25771    pub send_alert: ::core::option::Option<
25772        unsafe extern "C" fn(
25773            ssl: *mut SSL,
25774            level: ssl_encryption_level_t,
25775            alert: u8,
25776        ) -> ::core::ffi::c_int,
25777    >,
25778}
25779unsafe extern "C" {
25780    pub fn SSL_quic_max_handshake_flight_len(
25781        ssl: *const SSL,
25782        level: ssl_encryption_level_t,
25783    ) -> usize;
25784}
25785unsafe extern "C" {
25786    pub fn SSL_quic_read_level(ssl: *const SSL) -> ssl_encryption_level_t;
25787}
25788unsafe extern "C" {
25789    pub fn SSL_quic_write_level(ssl: *const SSL) -> ssl_encryption_level_t;
25790}
25791unsafe extern "C" {
25792    pub fn SSL_provide_quic_data(
25793        ssl: *mut SSL,
25794        level: ssl_encryption_level_t,
25795        data: *const u8,
25796        len: usize,
25797    ) -> ::core::ffi::c_int;
25798}
25799unsafe extern "C" {
25800    pub fn SSL_process_quic_post_handshake(ssl: *mut SSL) -> ::core::ffi::c_int;
25801}
25802unsafe extern "C" {
25803    pub fn SSL_CTX_set_quic_method(
25804        ctx: *mut SSL_CTX,
25805        quic_method: *const SSL_QUIC_METHOD,
25806    ) -> ::core::ffi::c_int;
25807}
25808unsafe extern "C" {
25809    pub fn SSL_set_quic_method(
25810        ssl: *mut SSL,
25811        quic_method: *const SSL_QUIC_METHOD,
25812    ) -> ::core::ffi::c_int;
25813}
25814unsafe extern "C" {
25815    pub fn SSL_set_quic_transport_params(
25816        ssl: *mut SSL,
25817        params: *const u8,
25818        params_len: usize,
25819    ) -> ::core::ffi::c_int;
25820}
25821unsafe extern "C" {
25822    pub fn SSL_get_peer_quic_transport_params(
25823        ssl: *const SSL,
25824        out_params: *mut *const u8,
25825        out_params_len: *mut usize,
25826    );
25827}
25828unsafe extern "C" {
25829    pub fn SSL_set_quic_use_legacy_codepoint(ssl: *mut SSL, use_legacy: ::core::ffi::c_int);
25830}
25831unsafe extern "C" {
25832    pub fn SSL_set_quic_early_data_context(
25833        ssl: *mut SSL,
25834        context: *const u8,
25835        context_len: usize,
25836    ) -> ::core::ffi::c_int;
25837}
25838unsafe extern "C" {
25839    pub fn SSL_CTX_set_early_data_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
25840}
25841unsafe extern "C" {
25842    pub fn SSL_set_early_data_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
25843}
25844unsafe extern "C" {
25845    pub fn SSL_in_early_data(ssl: *const SSL) -> ::core::ffi::c_int;
25846}
25847unsafe extern "C" {
25848    pub fn SSL_SESSION_early_data_capable(session: *const SSL_SESSION) -> ::core::ffi::c_int;
25849}
25850unsafe extern "C" {
25851    pub fn SSL_SESSION_copy_without_early_data(session: *mut SSL_SESSION) -> *mut SSL_SESSION;
25852}
25853unsafe extern "C" {
25854    pub fn SSL_early_data_accepted(ssl: *const SSL) -> ::core::ffi::c_int;
25855}
25856unsafe extern "C" {
25857    pub fn SSL_reset_early_data_reject(ssl: *mut SSL);
25858}
25859unsafe extern "C" {
25860    pub fn SSL_get_ticket_age_skew(ssl: *const SSL) -> i32;
25861}
25862pub const ssl_early_data_reason_t_ssl_early_data_unknown: ssl_early_data_reason_t = 0;
25863pub const ssl_early_data_reason_t_ssl_early_data_disabled: ssl_early_data_reason_t = 1;
25864pub const ssl_early_data_reason_t_ssl_early_data_accepted: ssl_early_data_reason_t = 2;
25865pub const ssl_early_data_reason_t_ssl_early_data_protocol_version: ssl_early_data_reason_t = 3;
25866pub const ssl_early_data_reason_t_ssl_early_data_peer_declined: ssl_early_data_reason_t = 4;
25867pub const ssl_early_data_reason_t_ssl_early_data_no_session_offered: ssl_early_data_reason_t = 5;
25868pub const ssl_early_data_reason_t_ssl_early_data_session_not_resumed: ssl_early_data_reason_t = 6;
25869pub const ssl_early_data_reason_t_ssl_early_data_unsupported_for_session: ssl_early_data_reason_t =
25870    7;
25871pub const ssl_early_data_reason_t_ssl_early_data_hello_retry_request: ssl_early_data_reason_t = 8;
25872pub const ssl_early_data_reason_t_ssl_early_data_alpn_mismatch: ssl_early_data_reason_t = 9;
25873pub const ssl_early_data_reason_t_ssl_early_data_channel_id: ssl_early_data_reason_t = 10;
25874pub const ssl_early_data_reason_t_ssl_early_data_ticket_age_skew: ssl_early_data_reason_t = 12;
25875pub const ssl_early_data_reason_t_ssl_early_data_quic_parameter_mismatch: ssl_early_data_reason_t =
25876    13;
25877pub const ssl_early_data_reason_t_ssl_early_data_alps_mismatch: ssl_early_data_reason_t = 14;
25878pub const ssl_early_data_reason_t_ssl_early_data_reason_max_value: ssl_early_data_reason_t = 14;
25879pub type ssl_early_data_reason_t = ::core::ffi::c_uint;
25880unsafe extern "C" {
25881    pub fn SSL_get_early_data_reason(ssl: *const SSL) -> ssl_early_data_reason_t;
25882}
25883unsafe extern "C" {
25884    pub fn SSL_early_data_reason_string(
25885        reason: ssl_early_data_reason_t,
25886    ) -> *const ::core::ffi::c_char;
25887}
25888unsafe extern "C" {
25889    pub fn SSL_set_enable_ech_grease(ssl: *mut SSL, enable: ::core::ffi::c_int);
25890}
25891unsafe extern "C" {
25892    pub fn SSL_set1_ech_config_list(
25893        ssl: *mut SSL,
25894        ech_config_list: *const u8,
25895        ech_config_list_len: usize,
25896    ) -> ::core::ffi::c_int;
25897}
25898unsafe extern "C" {
25899    pub fn SSL_get0_ech_name_override(
25900        ssl: *const SSL,
25901        out_name: *mut *const ::core::ffi::c_char,
25902        out_name_len: *mut usize,
25903    );
25904}
25905unsafe extern "C" {
25906    pub fn SSL_get0_ech_retry_configs(
25907        ssl: *const SSL,
25908        out_retry_configs: *mut *const u8,
25909        out_retry_configs_len: *mut usize,
25910    );
25911}
25912unsafe extern "C" {
25913    pub fn SSL_marshal_ech_config(
25914        out: *mut *mut u8,
25915        out_len: *mut usize,
25916        config_id: u8,
25917        key: *const EVP_HPKE_KEY,
25918        public_name: *const ::core::ffi::c_char,
25919        max_name_len: usize,
25920    ) -> ::core::ffi::c_int;
25921}
25922unsafe extern "C" {
25923    pub fn SSL_ECH_KEYS_new() -> *mut SSL_ECH_KEYS;
25924}
25925unsafe extern "C" {
25926    pub fn SSL_ECH_KEYS_up_ref(keys: *mut SSL_ECH_KEYS);
25927}
25928unsafe extern "C" {
25929    pub fn SSL_ECH_KEYS_free(keys: *mut SSL_ECH_KEYS);
25930}
25931unsafe extern "C" {
25932    pub fn SSL_ECH_KEYS_add(
25933        keys: *mut SSL_ECH_KEYS,
25934        is_retry_config: ::core::ffi::c_int,
25935        ech_config: *const u8,
25936        ech_config_len: usize,
25937        key: *const EVP_HPKE_KEY,
25938    ) -> ::core::ffi::c_int;
25939}
25940unsafe extern "C" {
25941    pub fn SSL_ECH_KEYS_has_duplicate_config_id(keys: *const SSL_ECH_KEYS) -> ::core::ffi::c_int;
25942}
25943unsafe extern "C" {
25944    pub fn SSL_ECH_KEYS_marshal_retry_configs(
25945        keys: *const SSL_ECH_KEYS,
25946        out: *mut *mut u8,
25947        out_len: *mut usize,
25948    ) -> ::core::ffi::c_int;
25949}
25950unsafe extern "C" {
25951    pub fn SSL_CTX_set1_ech_keys(ctx: *mut SSL_CTX, keys: *mut SSL_ECH_KEYS) -> ::core::ffi::c_int;
25952}
25953unsafe extern "C" {
25954    pub fn SSL_ech_accepted(ssl: *const SSL) -> ::core::ffi::c_int;
25955}
25956unsafe extern "C" {
25957    pub fn SSL_alert_type_string_long(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
25958}
25959unsafe extern "C" {
25960    pub fn SSL_alert_desc_string_long(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
25961}
25962unsafe extern "C" {
25963    pub fn SSL_send_fatal_alert(ssl: *mut SSL, alert: u8) -> ::core::ffi::c_int;
25964}
25965unsafe extern "C" {
25966    pub fn SSL_set_ex_data(
25967        ssl: *mut SSL,
25968        idx: ::core::ffi::c_int,
25969        data: *mut ::core::ffi::c_void,
25970    ) -> ::core::ffi::c_int;
25971}
25972unsafe extern "C" {
25973    pub fn SSL_get_ex_data(ssl: *const SSL, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
25974}
25975unsafe extern "C" {
25976    pub fn SSL_get_ex_new_index(
25977        argl: ::core::ffi::c_long,
25978        argp: *mut ::core::ffi::c_void,
25979        unused: *mut CRYPTO_EX_unused,
25980        dup_unused: CRYPTO_EX_dup,
25981        free_func: CRYPTO_EX_free,
25982    ) -> ::core::ffi::c_int;
25983}
25984unsafe extern "C" {
25985    pub fn SSL_SESSION_set_ex_data(
25986        session: *mut SSL_SESSION,
25987        idx: ::core::ffi::c_int,
25988        data: *mut ::core::ffi::c_void,
25989    ) -> ::core::ffi::c_int;
25990}
25991unsafe extern "C" {
25992    pub fn SSL_SESSION_get_ex_data(
25993        session: *const SSL_SESSION,
25994        idx: ::core::ffi::c_int,
25995    ) -> *mut ::core::ffi::c_void;
25996}
25997unsafe extern "C" {
25998    pub fn SSL_SESSION_get_ex_new_index(
25999        argl: ::core::ffi::c_long,
26000        argp: *mut ::core::ffi::c_void,
26001        unused: *mut CRYPTO_EX_unused,
26002        dup_unused: CRYPTO_EX_dup,
26003        free_func: CRYPTO_EX_free,
26004    ) -> ::core::ffi::c_int;
26005}
26006unsafe extern "C" {
26007    pub fn SSL_CTX_set_ex_data(
26008        ctx: *mut SSL_CTX,
26009        idx: ::core::ffi::c_int,
26010        data: *mut ::core::ffi::c_void,
26011    ) -> ::core::ffi::c_int;
26012}
26013unsafe extern "C" {
26014    pub fn SSL_CTX_get_ex_data(
26015        ctx: *const SSL_CTX,
26016        idx: ::core::ffi::c_int,
26017    ) -> *mut ::core::ffi::c_void;
26018}
26019unsafe extern "C" {
26020    pub fn SSL_CTX_get_ex_new_index(
26021        argl: ::core::ffi::c_long,
26022        argp: *mut ::core::ffi::c_void,
26023        unused: *mut CRYPTO_EX_unused,
26024        dup_unused: CRYPTO_EX_dup,
26025        free_func: CRYPTO_EX_free,
26026    ) -> ::core::ffi::c_int;
26027}
26028unsafe extern "C" {
26029    pub fn SSL_CREDENTIAL_set_ex_data(
26030        cred: *mut SSL_CREDENTIAL,
26031        idx: ::core::ffi::c_int,
26032        data: *mut ::core::ffi::c_void,
26033    ) -> ::core::ffi::c_int;
26034}
26035unsafe extern "C" {
26036    pub fn SSL_CREDENTIAL_get_ex_data(
26037        cred: *const SSL_CREDENTIAL,
26038        idx: ::core::ffi::c_int,
26039    ) -> *mut ::core::ffi::c_void;
26040}
26041unsafe extern "C" {
26042    pub fn SSL_CREDENTIAL_get_ex_new_index(
26043        argl: ::core::ffi::c_long,
26044        argp: *mut ::core::ffi::c_void,
26045        unused: *mut CRYPTO_EX_unused,
26046        dup_unused: CRYPTO_EX_dup,
26047        free_func: CRYPTO_EX_free,
26048    ) -> ::core::ffi::c_int;
26049}
26050unsafe extern "C" {
26051    pub fn SSL_get_ivs(
26052        ssl: *const SSL,
26053        out_read_iv: *mut *const u8,
26054        out_write_iv: *mut *const u8,
26055        out_iv_len: *mut usize,
26056    ) -> ::core::ffi::c_int;
26057}
26058unsafe extern "C" {
26059    pub fn SSL_get_key_block_len(ssl: *const SSL) -> usize;
26060}
26061unsafe extern "C" {
26062    pub fn SSL_generate_key_block(
26063        ssl: *const SSL,
26064        out: *mut u8,
26065        out_len: usize,
26066    ) -> ::core::ffi::c_int;
26067}
26068unsafe extern "C" {
26069    pub fn SSL_get_read_sequence(ssl: *const SSL) -> u64;
26070}
26071unsafe extern "C" {
26072    pub fn SSL_get_write_sequence(ssl: *const SSL) -> u64;
26073}
26074unsafe extern "C" {
26075    pub fn SSL_CTX_set_record_protocol_version(
26076        ctx: *mut SSL_CTX,
26077        version: ::core::ffi::c_int,
26078    ) -> ::core::ffi::c_int;
26079}
26080unsafe extern "C" {
26081    pub fn SSL_is_dtls_handshake_idle(ssl: *const SSL) -> ::core::ffi::c_int;
26082}
26083unsafe extern "C" {
26084    pub fn SSL_get_dtls_handshake_read_seq(ssl: *const SSL) -> u32;
26085}
26086unsafe extern "C" {
26087    pub fn SSL_get_dtls_handshake_write_seq(ssl: *const SSL) -> u32;
26088}
26089unsafe extern "C" {
26090    pub fn SSL_get_dtls_read_epoch(ssl: *const SSL) -> u16;
26091}
26092unsafe extern "C" {
26093    pub fn SSL_get_dtls_write_epoch(ssl: *const SSL) -> u16;
26094}
26095unsafe extern "C" {
26096    pub fn SSL_get_dtls_read_sequence(ssl: *const SSL, epoch: u16) -> u64;
26097}
26098unsafe extern "C" {
26099    pub fn SSL_get_dtls_write_sequence(ssl: *const SSL, epoch: u16) -> u64;
26100}
26101unsafe extern "C" {
26102    pub fn SSL_get_dtls_read_traffic_secret(
26103        ssl: *const SSL,
26104        out_data: *mut *const u8,
26105        out_len: *mut usize,
26106        epoch: u16,
26107    ) -> ::core::ffi::c_int;
26108}
26109unsafe extern "C" {
26110    pub fn SSL_get_dtls_write_traffic_secret(
26111        ssl: *const SSL,
26112        out_data: *mut *const u8,
26113        out_len: *mut usize,
26114        epoch: u16,
26115    ) -> ::core::ffi::c_int;
26116}
26117unsafe extern "C" {
26118    pub fn SSL_serialize_capabilities(ssl: *const SSL, out: *mut CBB) -> ::core::ffi::c_int;
26119}
26120unsafe extern "C" {
26121    pub fn SSL_request_handshake_hints(
26122        ssl: *mut SSL,
26123        client_hello: *const u8,
26124        client_hello_len: usize,
26125        capabilities: *const u8,
26126        capabilities_len: usize,
26127    ) -> ::core::ffi::c_int;
26128}
26129unsafe extern "C" {
26130    pub fn SSL_serialize_handshake_hints(ssl: *const SSL, out: *mut CBB) -> ::core::ffi::c_int;
26131}
26132unsafe extern "C" {
26133    pub fn SSL_set_handshake_hints(
26134        ssl: *mut SSL,
26135        hints: *const u8,
26136        hints_len: usize,
26137    ) -> ::core::ffi::c_int;
26138}
26139unsafe extern "C" {
26140    pub fn SSL_CTX_set_msg_callback(
26141        ctx: *mut SSL_CTX,
26142        cb: ::core::option::Option<
26143            unsafe extern "C" fn(
26144                is_write: ::core::ffi::c_int,
26145                version: ::core::ffi::c_int,
26146                content_type: ::core::ffi::c_int,
26147                buf: *const ::core::ffi::c_void,
26148                len: usize,
26149                ssl: *mut SSL,
26150                arg: *mut ::core::ffi::c_void,
26151            ),
26152        >,
26153    );
26154}
26155unsafe extern "C" {
26156    pub fn SSL_CTX_set_msg_callback_arg(ctx: *mut SSL_CTX, arg: *mut ::core::ffi::c_void);
26157}
26158unsafe extern "C" {
26159    pub fn SSL_set_msg_callback(
26160        ssl: *mut SSL,
26161        cb: ::core::option::Option<
26162            unsafe extern "C" fn(
26163                write_p: ::core::ffi::c_int,
26164                version: ::core::ffi::c_int,
26165                content_type: ::core::ffi::c_int,
26166                buf: *const ::core::ffi::c_void,
26167                len: usize,
26168                ssl: *mut SSL,
26169                arg: *mut ::core::ffi::c_void,
26170            ),
26171        >,
26172    );
26173}
26174unsafe extern "C" {
26175    pub fn SSL_set_msg_callback_arg(ssl: *mut SSL, arg: *mut ::core::ffi::c_void);
26176}
26177unsafe extern "C" {
26178    pub fn SSL_CTX_set_keylog_callback(
26179        ctx: *mut SSL_CTX,
26180        cb: ::core::option::Option<
26181            unsafe extern "C" fn(ssl: *const SSL, line: *const ::core::ffi::c_char),
26182        >,
26183    );
26184}
26185unsafe extern "C" {
26186    pub fn SSL_CTX_get_keylog_callback(
26187        ctx: *const SSL_CTX,
26188    ) -> ::core::option::Option<
26189        unsafe extern "C" fn(ctx: *const SSL, arg1: *const ::core::ffi::c_char),
26190    >;
26191}
26192unsafe extern "C" {
26193    pub fn SSL_CTX_set_current_time_cb(
26194        ctx: *mut SSL_CTX,
26195        cb: ::core::option::Option<unsafe extern "C" fn(ssl: *const SSL, out_clock: *mut timeval)>,
26196    );
26197}
26198unsafe extern "C" {
26199    pub fn SSL_set_shed_handshake_config(ssl: *mut SSL, enable: ::core::ffi::c_int);
26200}
26201pub const ssl_renegotiate_mode_t_ssl_renegotiate_never: ssl_renegotiate_mode_t = 0;
26202pub const ssl_renegotiate_mode_t_ssl_renegotiate_once: ssl_renegotiate_mode_t = 1;
26203pub const ssl_renegotiate_mode_t_ssl_renegotiate_freely: ssl_renegotiate_mode_t = 2;
26204pub const ssl_renegotiate_mode_t_ssl_renegotiate_ignore: ssl_renegotiate_mode_t = 3;
26205pub const ssl_renegotiate_mode_t_ssl_renegotiate_explicit: ssl_renegotiate_mode_t = 4;
26206pub type ssl_renegotiate_mode_t = ::core::ffi::c_uint;
26207unsafe extern "C" {
26208    pub fn SSL_set_renegotiate_mode(ssl: *mut SSL, mode: ssl_renegotiate_mode_t);
26209}
26210unsafe extern "C" {
26211    pub fn SSL_renegotiate(ssl: *mut SSL) -> ::core::ffi::c_int;
26212}
26213unsafe extern "C" {
26214    pub fn SSL_renegotiate_pending(ssl: *mut SSL) -> ::core::ffi::c_int;
26215}
26216unsafe extern "C" {
26217    pub fn SSL_total_renegotiations(ssl: *const SSL) -> ::core::ffi::c_int;
26218}
26219unsafe extern "C" {
26220    pub fn SSL_CTX_get_max_cert_list(ctx: *const SSL_CTX) -> usize;
26221}
26222unsafe extern "C" {
26223    pub fn SSL_CTX_set_max_cert_list(ctx: *mut SSL_CTX, max_cert_list: usize);
26224}
26225unsafe extern "C" {
26226    pub fn SSL_get_max_cert_list(ssl: *const SSL) -> usize;
26227}
26228unsafe extern "C" {
26229    pub fn SSL_set_max_cert_list(ssl: *mut SSL, max_cert_list: usize);
26230}
26231unsafe extern "C" {
26232    pub fn SSL_CTX_set_max_send_fragment(
26233        ctx: *mut SSL_CTX,
26234        max_send_fragment: usize,
26235    ) -> ::core::ffi::c_int;
26236}
26237unsafe extern "C" {
26238    pub fn SSL_set_max_send_fragment(ssl: *mut SSL, max_send_fragment: usize)
26239        -> ::core::ffi::c_int;
26240}
26241#[repr(C)]
26242#[derive(Debug, Copy, Clone)]
26243pub struct ssl_early_callback_ctx {
26244    pub ssl: *mut SSL,
26245    pub client_hello: *const u8,
26246    pub client_hello_len: usize,
26247    pub version: u16,
26248    pub random: *const u8,
26249    pub random_len: usize,
26250    pub session_id: *const u8,
26251    pub session_id_len: usize,
26252    pub dtls_cookie: *const u8,
26253    pub dtls_cookie_len: usize,
26254    pub cipher_suites: *const u8,
26255    pub cipher_suites_len: usize,
26256    pub compression_methods: *const u8,
26257    pub compression_methods_len: usize,
26258    pub extensions: *const u8,
26259    pub extensions_len: usize,
26260}
26261pub const ssl_select_cert_result_t_ssl_select_cert_success: ssl_select_cert_result_t = 1;
26262pub const ssl_select_cert_result_t_ssl_select_cert_retry: ssl_select_cert_result_t = 0;
26263pub const ssl_select_cert_result_t_ssl_select_cert_error: ssl_select_cert_result_t = -1;
26264pub const ssl_select_cert_result_t_ssl_select_cert_disable_ech: ssl_select_cert_result_t = -2;
26265pub type ssl_select_cert_result_t = ::core::ffi::c_int;
26266unsafe extern "C" {
26267    pub fn SSL_early_callback_ctx_extension_get(
26268        client_hello: *const SSL_CLIENT_HELLO,
26269        extension_type: u16,
26270        out_data: *mut *const u8,
26271        out_len: *mut usize,
26272    ) -> ::core::ffi::c_int;
26273}
26274unsafe extern "C" {
26275    pub fn SSL_CTX_set_select_certificate_cb(
26276        ctx: *mut SSL_CTX,
26277        cb: ::core::option::Option<
26278            unsafe extern "C" fn(arg1: *const SSL_CLIENT_HELLO) -> ssl_select_cert_result_t,
26279        >,
26280    );
26281}
26282unsafe extern "C" {
26283    pub fn SSL_CTX_set_dos_protection_cb(
26284        ctx: *mut SSL_CTX,
26285        cb: ::core::option::Option<
26286            unsafe extern "C" fn(arg1: *const SSL_CLIENT_HELLO) -> ::core::ffi::c_int,
26287        >,
26288    );
26289}
26290unsafe extern "C" {
26291    pub fn SSL_CTX_set_reverify_on_resume(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26292}
26293unsafe extern "C" {
26294    pub fn SSL_CTX_set_info_callback(
26295        ctx: *mut SSL_CTX,
26296        cb: ::core::option::Option<
26297            unsafe extern "C" fn(
26298                ssl: *const SSL,
26299                type_: ::core::ffi::c_int,
26300                value: ::core::ffi::c_int,
26301            ),
26302        >,
26303    );
26304}
26305unsafe extern "C" {
26306    pub fn SSL_CTX_get_info_callback(
26307        ctx: *mut SSL_CTX,
26308    ) -> ::core::option::Option<
26309        unsafe extern "C" fn(ctx: *const SSL, arg1: ::core::ffi::c_int, arg2: ::core::ffi::c_int),
26310    >;
26311}
26312unsafe extern "C" {
26313    pub fn SSL_set_info_callback(
26314        ssl: *mut SSL,
26315        cb: ::core::option::Option<
26316            unsafe extern "C" fn(
26317                ssl: *const SSL,
26318                type_: ::core::ffi::c_int,
26319                value: ::core::ffi::c_int,
26320            ),
26321        >,
26322    );
26323}
26324unsafe extern "C" {
26325    pub fn SSL_get_info_callback(
26326        ssl: *const SSL,
26327    ) -> ::core::option::Option<
26328        unsafe extern "C" fn(ssl: *const SSL, arg1: ::core::ffi::c_int, arg2: ::core::ffi::c_int),
26329    >;
26330}
26331unsafe extern "C" {
26332    pub fn SSL_state_string_long(ssl: *const SSL) -> *const ::core::ffi::c_char;
26333}
26334unsafe extern "C" {
26335    pub fn SSL_get_shutdown(ssl: *const SSL) -> ::core::ffi::c_int;
26336}
26337unsafe extern "C" {
26338    pub fn SSL_get_peer_signature_algorithm(ssl: *const SSL) -> u16;
26339}
26340unsafe extern "C" {
26341    pub fn SSL_get_client_random(ssl: *const SSL, out: *mut u8, max_out: usize) -> usize;
26342}
26343unsafe extern "C" {
26344    pub fn SSL_get_server_random(ssl: *const SSL, out: *mut u8, max_out: usize) -> usize;
26345}
26346unsafe extern "C" {
26347    pub fn SSL_get_signature_algorithm_used(ssl: *const SSL) -> u16;
26348}
26349unsafe extern "C" {
26350    pub fn SSL_get_pending_cipher(ssl: *const SSL) -> *const SSL_CIPHER;
26351}
26352unsafe extern "C" {
26353    pub fn SSL_set_retain_only_sha256_of_client_certs(ssl: *mut SSL, enable: ::core::ffi::c_int);
26354}
26355unsafe extern "C" {
26356    pub fn SSL_CTX_set_retain_only_sha256_of_client_certs(
26357        ctx: *mut SSL_CTX,
26358        enable: ::core::ffi::c_int,
26359    );
26360}
26361unsafe extern "C" {
26362    pub fn SSL_CTX_set_grease_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26363}
26364unsafe extern "C" {
26365    pub fn SSL_CTX_set_grease_sigalgs_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26366}
26367unsafe extern "C" {
26368    pub fn SSL_CTX_set_permute_extensions(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26369}
26370unsafe extern "C" {
26371    pub fn SSL_set_permute_extensions(ssl: *mut SSL, enabled: ::core::ffi::c_int);
26372}
26373unsafe extern "C" {
26374    pub fn SSL_max_seal_overhead(ssl: *const SSL) -> usize;
26375}
26376unsafe extern "C" {
26377    pub fn SSL_CTX_set_false_start_allowed_without_alpn(
26378        ctx: *mut SSL_CTX,
26379        allowed: ::core::ffi::c_int,
26380    );
26381}
26382unsafe extern "C" {
26383    pub fn SSL_used_hello_retry_request(ssl: *const SSL) -> ::core::ffi::c_int;
26384}
26385unsafe extern "C" {
26386    pub fn SSL_set_jdk11_workaround(ssl: *mut SSL, enable: ::core::ffi::c_int);
26387}
26388unsafe extern "C" {
26389    pub fn SSL_parse_client_hello(
26390        ssl: *const SSL,
26391        out: *mut SSL_CLIENT_HELLO,
26392        in_: *const u8,
26393        len: usize,
26394    ) -> ::core::ffi::c_int;
26395}
26396unsafe extern "C" {
26397    pub fn SSL_library_init() -> ::core::ffi::c_int;
26398}
26399unsafe extern "C" {
26400    pub fn SSL_CIPHER_description(
26401        cipher: *const SSL_CIPHER,
26402        buf: *mut ::core::ffi::c_char,
26403        len: ::core::ffi::c_int,
26404    ) -> *const ::core::ffi::c_char;
26405}
26406unsafe extern "C" {
26407    pub fn SSL_CIPHER_get_version(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
26408}
26409unsafe extern "C" {
26410    pub fn SSL_CIPHER_get_id(cipher: *const SSL_CIPHER) -> u32;
26411}
26412unsafe extern "C" {
26413    pub fn SSL_CIPHER_get_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
26414}
26415pub type COMP_METHOD = ::core::ffi::c_void;
26416pub type SSL_COMP = ssl_comp_st;
26417#[repr(C)]
26418#[derive(Debug)]
26419pub struct stack_st_SSL_COMP {
26420    _unused: [u8; 0],
26421}
26422unsafe extern "C" {
26423    pub fn SSL_COMP_get_compression_methods() -> *mut stack_st_SSL_COMP;
26424}
26425unsafe extern "C" {
26426    pub fn SSL_COMP_add_compression_method(
26427        id: ::core::ffi::c_int,
26428        cm: *mut COMP_METHOD,
26429    ) -> ::core::ffi::c_int;
26430}
26431unsafe extern "C" {
26432    pub fn SSL_COMP_get_name(comp: *const COMP_METHOD) -> *const ::core::ffi::c_char;
26433}
26434unsafe extern "C" {
26435    pub fn SSL_COMP_get0_name(comp: *const SSL_COMP) -> *const ::core::ffi::c_char;
26436}
26437unsafe extern "C" {
26438    pub fn SSL_COMP_get_id(comp: *const SSL_COMP) -> ::core::ffi::c_int;
26439}
26440unsafe extern "C" {
26441    pub fn SSL_COMP_free_compression_methods();
26442}
26443unsafe extern "C" {
26444    pub fn SSLv23_method() -> *const SSL_METHOD;
26445}
26446unsafe extern "C" {
26447    pub fn TLSv1_method() -> *const SSL_METHOD;
26448}
26449unsafe extern "C" {
26450    pub fn TLSv1_1_method() -> *const SSL_METHOD;
26451}
26452unsafe extern "C" {
26453    pub fn TLSv1_2_method() -> *const SSL_METHOD;
26454}
26455unsafe extern "C" {
26456    pub fn DTLSv1_method() -> *const SSL_METHOD;
26457}
26458unsafe extern "C" {
26459    pub fn DTLSv1_2_method() -> *const SSL_METHOD;
26460}
26461unsafe extern "C" {
26462    pub fn TLS_server_method() -> *const SSL_METHOD;
26463}
26464unsafe extern "C" {
26465    pub fn TLS_client_method() -> *const SSL_METHOD;
26466}
26467unsafe extern "C" {
26468    pub fn SSLv23_server_method() -> *const SSL_METHOD;
26469}
26470unsafe extern "C" {
26471    pub fn SSLv23_client_method() -> *const SSL_METHOD;
26472}
26473unsafe extern "C" {
26474    pub fn TLSv1_server_method() -> *const SSL_METHOD;
26475}
26476unsafe extern "C" {
26477    pub fn TLSv1_client_method() -> *const SSL_METHOD;
26478}
26479unsafe extern "C" {
26480    pub fn TLSv1_1_server_method() -> *const SSL_METHOD;
26481}
26482unsafe extern "C" {
26483    pub fn TLSv1_1_client_method() -> *const SSL_METHOD;
26484}
26485unsafe extern "C" {
26486    pub fn TLSv1_2_server_method() -> *const SSL_METHOD;
26487}
26488unsafe extern "C" {
26489    pub fn TLSv1_2_client_method() -> *const SSL_METHOD;
26490}
26491unsafe extern "C" {
26492    pub fn DTLS_server_method() -> *const SSL_METHOD;
26493}
26494unsafe extern "C" {
26495    pub fn DTLS_client_method() -> *const SSL_METHOD;
26496}
26497unsafe extern "C" {
26498    pub fn DTLSv1_server_method() -> *const SSL_METHOD;
26499}
26500unsafe extern "C" {
26501    pub fn DTLSv1_client_method() -> *const SSL_METHOD;
26502}
26503unsafe extern "C" {
26504    pub fn DTLSv1_2_server_method() -> *const SSL_METHOD;
26505}
26506unsafe extern "C" {
26507    pub fn DTLSv1_2_client_method() -> *const SSL_METHOD;
26508}
26509unsafe extern "C" {
26510    pub fn SSL_clear(ssl: *mut SSL) -> ::core::ffi::c_int;
26511}
26512unsafe extern "C" {
26513    pub fn SSL_CTX_set_tmp_rsa_callback(
26514        ctx: *mut SSL_CTX,
26515        cb: ::core::option::Option<
26516            unsafe extern "C" fn(
26517                ssl: *mut SSL,
26518                is_export: ::core::ffi::c_int,
26519                keylength: ::core::ffi::c_int,
26520            ) -> *mut RSA,
26521        >,
26522    );
26523}
26524unsafe extern "C" {
26525    pub fn SSL_set_tmp_rsa_callback(
26526        ssl: *mut SSL,
26527        cb: ::core::option::Option<
26528            unsafe extern "C" fn(
26529                ssl: *mut SSL,
26530                is_export: ::core::ffi::c_int,
26531                keylength: ::core::ffi::c_int,
26532            ) -> *mut RSA,
26533        >,
26534    );
26535}
26536unsafe extern "C" {
26537    pub fn SSL_CTX_sess_connect(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26538}
26539unsafe extern "C" {
26540    pub fn SSL_CTX_sess_connect_good(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26541}
26542unsafe extern "C" {
26543    pub fn SSL_CTX_sess_connect_renegotiate(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26544}
26545unsafe extern "C" {
26546    pub fn SSL_CTX_sess_accept(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26547}
26548unsafe extern "C" {
26549    pub fn SSL_CTX_sess_accept_renegotiate(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26550}
26551unsafe extern "C" {
26552    pub fn SSL_CTX_sess_accept_good(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26553}
26554unsafe extern "C" {
26555    pub fn SSL_CTX_sess_hits(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26556}
26557unsafe extern "C" {
26558    pub fn SSL_CTX_sess_cb_hits(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26559}
26560unsafe extern "C" {
26561    pub fn SSL_CTX_sess_misses(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26562}
26563unsafe extern "C" {
26564    pub fn SSL_CTX_sess_timeouts(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26565}
26566unsafe extern "C" {
26567    pub fn SSL_CTX_sess_cache_full(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26568}
26569unsafe extern "C" {
26570    pub fn SSL_cutthrough_complete(ssl: *const SSL) -> ::core::ffi::c_int;
26571}
26572unsafe extern "C" {
26573    pub fn SSL_num_renegotiations(ssl: *const SSL) -> ::core::ffi::c_int;
26574}
26575unsafe extern "C" {
26576    pub fn SSL_CTX_need_tmp_RSA(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26577}
26578unsafe extern "C" {
26579    pub fn SSL_need_tmp_RSA(ssl: *const SSL) -> ::core::ffi::c_int;
26580}
26581unsafe extern "C" {
26582    pub fn SSL_CTX_set_tmp_rsa(ctx: *mut SSL_CTX, rsa: *const RSA) -> ::core::ffi::c_int;
26583}
26584unsafe extern "C" {
26585    pub fn SSL_set_tmp_rsa(ssl: *mut SSL, rsa: *const RSA) -> ::core::ffi::c_int;
26586}
26587unsafe extern "C" {
26588    pub fn SSL_CTX_get_read_ahead(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26589}
26590unsafe extern "C" {
26591    pub fn SSL_CTX_set_read_ahead(ctx: *mut SSL_CTX, yes: ::core::ffi::c_int)
26592        -> ::core::ffi::c_int;
26593}
26594unsafe extern "C" {
26595    pub fn SSL_get_read_ahead(ssl: *const SSL) -> ::core::ffi::c_int;
26596}
26597unsafe extern "C" {
26598    pub fn SSL_set_read_ahead(ssl: *mut SSL, yes: ::core::ffi::c_int) -> ::core::ffi::c_int;
26599}
26600unsafe extern "C" {
26601    pub fn SSL_set_state(ssl: *mut SSL, state: ::core::ffi::c_int);
26602}
26603unsafe extern "C" {
26604    pub fn SSL_get_shared_ciphers(
26605        ssl: *const SSL,
26606        buf: *mut ::core::ffi::c_char,
26607        len: ::core::ffi::c_int,
26608    ) -> *mut ::core::ffi::c_char;
26609}
26610unsafe extern "C" {
26611    pub fn SSL_get_shared_sigalgs(
26612        ssl: *mut SSL,
26613        idx: ::core::ffi::c_int,
26614        psign: *mut ::core::ffi::c_int,
26615        phash: *mut ::core::ffi::c_int,
26616        psignandhash: *mut ::core::ffi::c_int,
26617        rsig: *mut u8,
26618        rhash: *mut u8,
26619    ) -> ::core::ffi::c_int;
26620}
26621unsafe extern "C" {
26622    pub fn i2d_SSL_SESSION(in_: *const SSL_SESSION, pp: *mut *mut u8) -> ::core::ffi::c_int;
26623}
26624unsafe extern "C" {
26625    pub fn d2i_SSL_SESSION(
26626        out: *mut *mut SSL_SESSION,
26627        inp: *mut *const u8,
26628        len: ::core::ffi::c_long,
26629    ) -> *mut SSL_SESSION;
26630}
26631unsafe extern "C" {
26632    pub fn i2d_SSL_SESSION_bio(bio: *mut BIO, session: *const SSL_SESSION) -> ::core::ffi::c_int;
26633}
26634unsafe extern "C" {
26635    pub fn d2i_SSL_SESSION_bio(bio: *mut BIO, out: *mut *mut SSL_SESSION) -> *mut SSL_SESSION;
26636}
26637unsafe extern "C" {
26638    pub fn ERR_load_SSL_strings();
26639}
26640unsafe extern "C" {
26641    pub fn SSL_load_error_strings();
26642}
26643unsafe extern "C" {
26644    pub fn SSL_CTX_set_tlsext_use_srtp(
26645        ctx: *mut SSL_CTX,
26646        profiles: *const ::core::ffi::c_char,
26647    ) -> ::core::ffi::c_int;
26648}
26649unsafe extern "C" {
26650    pub fn SSL_set_tlsext_use_srtp(
26651        ssl: *mut SSL,
26652        profiles: *const ::core::ffi::c_char,
26653    ) -> ::core::ffi::c_int;
26654}
26655unsafe extern "C" {
26656    pub fn SSL_get_current_compression(ssl: *mut SSL) -> *const COMP_METHOD;
26657}
26658unsafe extern "C" {
26659    pub fn SSL_get_current_expansion(ssl: *mut SSL) -> *const COMP_METHOD;
26660}
26661unsafe extern "C" {
26662    pub fn SSL_get_server_tmp_key(ssl: *mut SSL, out_key: *mut *mut EVP_PKEY)
26663        -> ::core::ffi::c_int;
26664}
26665unsafe extern "C" {
26666    pub fn SSL_CTX_set_tmp_dh(ctx: *mut SSL_CTX, dh: *const DH) -> ::core::ffi::c_int;
26667}
26668unsafe extern "C" {
26669    pub fn SSL_set_tmp_dh(ssl: *mut SSL, dh: *const DH) -> ::core::ffi::c_int;
26670}
26671unsafe extern "C" {
26672    pub fn SSL_CTX_set_tmp_dh_callback(
26673        ctx: *mut SSL_CTX,
26674        cb: ::core::option::Option<
26675            unsafe extern "C" fn(
26676                ssl: *mut SSL,
26677                is_export: ::core::ffi::c_int,
26678                keylength: ::core::ffi::c_int,
26679            ) -> *mut DH,
26680        >,
26681    );
26682}
26683unsafe extern "C" {
26684    pub fn SSL_set_tmp_dh_callback(
26685        ssl: *mut SSL,
26686        cb: ::core::option::Option<
26687            unsafe extern "C" fn(
26688                ssl: *mut SSL,
26689                is_export: ::core::ffi::c_int,
26690                keylength: ::core::ffi::c_int,
26691            ) -> *mut DH,
26692        >,
26693    );
26694}
26695unsafe extern "C" {
26696    pub fn SSL_CTX_set1_sigalgs(
26697        ctx: *mut SSL_CTX,
26698        values: *const ::core::ffi::c_int,
26699        num_values: usize,
26700    ) -> ::core::ffi::c_int;
26701}
26702unsafe extern "C" {
26703    pub fn SSL_set1_sigalgs(
26704        ssl: *mut SSL,
26705        values: *const ::core::ffi::c_int,
26706        num_values: usize,
26707    ) -> ::core::ffi::c_int;
26708}
26709unsafe extern "C" {
26710    pub fn SSL_CTX_set1_sigalgs_list(
26711        ctx: *mut SSL_CTX,
26712        str_: *const ::core::ffi::c_char,
26713    ) -> ::core::ffi::c_int;
26714}
26715unsafe extern "C" {
26716    pub fn SSL_set1_sigalgs_list(
26717        ssl: *mut SSL,
26718        str_: *const ::core::ffi::c_char,
26719    ) -> ::core::ffi::c_int;
26720}
26721#[repr(C)]
26722#[derive(Debug, Copy, Clone)]
26723pub struct ssl_comp_st {
26724    pub id: ::core::ffi::c_int,
26725    pub name: *const ::core::ffi::c_char,
26726    pub method: *mut ::core::ffi::c_char,
26727}
26728pub type sk_SSL_COMP_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut SSL_COMP)>;
26729pub type sk_SSL_COMP_copy_func =
26730    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_COMP) -> *mut SSL_COMP>;
26731pub type sk_SSL_COMP_cmp_func = ::core::option::Option<
26732    unsafe extern "C" fn(
26733        arg1: *const *const SSL_COMP,
26734        arg2: *const *const SSL_COMP,
26735    ) -> ::core::ffi::c_int,
26736>;
26737pub type sk_SSL_COMP_delete_if_func = ::core::option::Option<
26738    unsafe extern "C" fn(arg1: *mut SSL_COMP, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
26739>;
26740unsafe extern "C" {
26741    #[link_name = "sk_SSL_COMP_call_free_func__extern"]
26742    pub fn sk_SSL_COMP_call_free_func(
26743        free_func: OPENSSL_sk_free_func,
26744        ptr: *mut ::core::ffi::c_void,
26745    );
26746}
26747unsafe extern "C" {
26748    #[link_name = "sk_SSL_COMP_call_copy_func__extern"]
26749    pub fn sk_SSL_COMP_call_copy_func(
26750        copy_func: OPENSSL_sk_copy_func,
26751        ptr: *const ::core::ffi::c_void,
26752    ) -> *mut ::core::ffi::c_void;
26753}
26754unsafe extern "C" {
26755    #[link_name = "sk_SSL_COMP_call_cmp_func__extern"]
26756    pub fn sk_SSL_COMP_call_cmp_func(
26757        cmp_func: OPENSSL_sk_cmp_func,
26758        a: *const ::core::ffi::c_void,
26759        b: *const ::core::ffi::c_void,
26760    ) -> ::core::ffi::c_int;
26761}
26762unsafe extern "C" {
26763    #[link_name = "sk_SSL_COMP_call_delete_if_func__extern"]
26764    pub fn sk_SSL_COMP_call_delete_if_func(
26765        func: OPENSSL_sk_delete_if_func,
26766        obj: *mut ::core::ffi::c_void,
26767        data: *mut ::core::ffi::c_void,
26768    ) -> ::core::ffi::c_int;
26769}
26770unsafe extern "C" {
26771    #[link_name = "sk_SSL_COMP_new__extern"]
26772    pub fn sk_SSL_COMP_new(comp: sk_SSL_COMP_cmp_func) -> *mut stack_st_SSL_COMP;
26773}
26774unsafe extern "C" {
26775    #[link_name = "sk_SSL_COMP_new_null__extern"]
26776    pub fn sk_SSL_COMP_new_null() -> *mut stack_st_SSL_COMP;
26777}
26778unsafe extern "C" {
26779    #[link_name = "sk_SSL_COMP_num__extern"]
26780    pub fn sk_SSL_COMP_num(sk: *const stack_st_SSL_COMP) -> usize;
26781}
26782unsafe extern "C" {
26783    #[link_name = "sk_SSL_COMP_zero__extern"]
26784    pub fn sk_SSL_COMP_zero(sk: *mut stack_st_SSL_COMP);
26785}
26786unsafe extern "C" {
26787    #[link_name = "sk_SSL_COMP_value__extern"]
26788    pub fn sk_SSL_COMP_value(sk: *const stack_st_SSL_COMP, i: usize) -> *mut SSL_COMP;
26789}
26790unsafe extern "C" {
26791    #[link_name = "sk_SSL_COMP_set__extern"]
26792    pub fn sk_SSL_COMP_set(sk: *mut stack_st_SSL_COMP, i: usize, p: *mut SSL_COMP)
26793        -> *mut SSL_COMP;
26794}
26795unsafe extern "C" {
26796    #[link_name = "sk_SSL_COMP_free__extern"]
26797    pub fn sk_SSL_COMP_free(sk: *mut stack_st_SSL_COMP);
26798}
26799unsafe extern "C" {
26800    #[link_name = "sk_SSL_COMP_pop_free__extern"]
26801    pub fn sk_SSL_COMP_pop_free(sk: *mut stack_st_SSL_COMP, free_func: sk_SSL_COMP_free_func);
26802}
26803unsafe extern "C" {
26804    #[link_name = "sk_SSL_COMP_insert__extern"]
26805    pub fn sk_SSL_COMP_insert(sk: *mut stack_st_SSL_COMP, p: *mut SSL_COMP, where_: usize)
26806        -> usize;
26807}
26808unsafe extern "C" {
26809    #[link_name = "sk_SSL_COMP_delete__extern"]
26810    pub fn sk_SSL_COMP_delete(sk: *mut stack_st_SSL_COMP, where_: usize) -> *mut SSL_COMP;
26811}
26812unsafe extern "C" {
26813    #[link_name = "sk_SSL_COMP_delete_ptr__extern"]
26814    pub fn sk_SSL_COMP_delete_ptr(sk: *mut stack_st_SSL_COMP, p: *const SSL_COMP) -> *mut SSL_COMP;
26815}
26816unsafe extern "C" {
26817    #[link_name = "sk_SSL_COMP_delete_if__extern"]
26818    pub fn sk_SSL_COMP_delete_if(
26819        sk: *mut stack_st_SSL_COMP,
26820        func: sk_SSL_COMP_delete_if_func,
26821        data: *mut ::core::ffi::c_void,
26822    );
26823}
26824unsafe extern "C" {
26825    #[link_name = "sk_SSL_COMP_find__extern"]
26826    pub fn sk_SSL_COMP_find(
26827        sk: *const stack_st_SSL_COMP,
26828        out_index: *mut usize,
26829        p: *const SSL_COMP,
26830    ) -> ::core::ffi::c_int;
26831}
26832unsafe extern "C" {
26833    #[link_name = "sk_SSL_COMP_shift__extern"]
26834    pub fn sk_SSL_COMP_shift(sk: *mut stack_st_SSL_COMP) -> *mut SSL_COMP;
26835}
26836unsafe extern "C" {
26837    #[link_name = "sk_SSL_COMP_push__extern"]
26838    pub fn sk_SSL_COMP_push(sk: *mut stack_st_SSL_COMP, p: *mut SSL_COMP) -> usize;
26839}
26840unsafe extern "C" {
26841    #[link_name = "sk_SSL_COMP_pop__extern"]
26842    pub fn sk_SSL_COMP_pop(sk: *mut stack_st_SSL_COMP) -> *mut SSL_COMP;
26843}
26844unsafe extern "C" {
26845    #[link_name = "sk_SSL_COMP_dup__extern"]
26846    pub fn sk_SSL_COMP_dup(sk: *const stack_st_SSL_COMP) -> *mut stack_st_SSL_COMP;
26847}
26848unsafe extern "C" {
26849    #[link_name = "sk_SSL_COMP_sort__extern"]
26850    pub fn sk_SSL_COMP_sort(sk: *mut stack_st_SSL_COMP);
26851}
26852unsafe extern "C" {
26853    #[link_name = "sk_SSL_COMP_sort_and_dedup__extern"]
26854    pub fn sk_SSL_COMP_sort_and_dedup(sk: *mut stack_st_SSL_COMP, free_func: sk_SSL_COMP_free_func);
26855}
26856unsafe extern "C" {
26857    #[link_name = "sk_SSL_COMP_is_sorted__extern"]
26858    pub fn sk_SSL_COMP_is_sorted(sk: *const stack_st_SSL_COMP) -> ::core::ffi::c_int;
26859}
26860unsafe extern "C" {
26861    #[link_name = "sk_SSL_COMP_set_cmp_func__extern"]
26862    pub fn sk_SSL_COMP_set_cmp_func(
26863        sk: *mut stack_st_SSL_COMP,
26864        comp: sk_SSL_COMP_cmp_func,
26865    ) -> sk_SSL_COMP_cmp_func;
26866}
26867unsafe extern "C" {
26868    #[link_name = "sk_SSL_COMP_deep_copy__extern"]
26869    pub fn sk_SSL_COMP_deep_copy(
26870        sk: *const stack_st_SSL_COMP,
26871        copy_func: sk_SSL_COMP_copy_func,
26872        free_func: sk_SSL_COMP_free_func,
26873    ) -> *mut stack_st_SSL_COMP;
26874}
26875unsafe extern "C" {
26876    pub fn SSL_cache_hit(ssl: *mut SSL) -> ::core::ffi::c_int;
26877}
26878unsafe extern "C" {
26879    pub fn SSL_get_default_timeout(ssl: *const SSL) -> ::core::ffi::c_long;
26880}
26881unsafe extern "C" {
26882    pub fn SSL_get_version(ssl: *const SSL) -> *const ::core::ffi::c_char;
26883}
26884unsafe extern "C" {
26885    pub fn SSL_get_all_version_names(out: *mut *const ::core::ffi::c_char, max_out: usize)
26886        -> usize;
26887}
26888unsafe extern "C" {
26889    pub fn SSL_get_cipher_list(
26890        ssl: *const SSL,
26891        n: ::core::ffi::c_int,
26892    ) -> *const ::core::ffi::c_char;
26893}
26894unsafe extern "C" {
26895    pub fn SSL_CTX_set_client_cert_cb(
26896        ctx: *mut SSL_CTX,
26897        cb: ::core::option::Option<
26898            unsafe extern "C" fn(
26899                ssl: *mut SSL,
26900                out_x509: *mut *mut X509,
26901                out_pkey: *mut *mut EVP_PKEY,
26902            ) -> ::core::ffi::c_int,
26903        >,
26904    );
26905}
26906unsafe extern "C" {
26907    pub fn SSL_want(ssl: *const SSL) -> ::core::ffi::c_int;
26908}
26909unsafe extern "C" {
26910    pub fn SSL_get_finished(ssl: *const SSL, buf: *mut ::core::ffi::c_void, count: usize) -> usize;
26911}
26912unsafe extern "C" {
26913    pub fn SSL_get_peer_finished(
26914        ssl: *const SSL,
26915        buf: *mut ::core::ffi::c_void,
26916        count: usize,
26917    ) -> usize;
26918}
26919unsafe extern "C" {
26920    pub fn SSL_alert_type_string(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
26921}
26922unsafe extern "C" {
26923    pub fn SSL_alert_desc_string(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
26924}
26925unsafe extern "C" {
26926    pub fn SSL_state_string(ssl: *const SSL) -> *const ::core::ffi::c_char;
26927}
26928#[repr(C)]
26929#[derive(Debug)]
26930pub struct ssl_conf_ctx_st {
26931    _unused: [u8; 0],
26932}
26933pub type SSL_CONF_CTX = ssl_conf_ctx_st;
26934unsafe extern "C" {
26935    pub fn SSL_state(ssl: *const SSL) -> ::core::ffi::c_int;
26936}
26937unsafe extern "C" {
26938    pub fn SSL_set_shutdown(ssl: *mut SSL, mode: ::core::ffi::c_int);
26939}
26940unsafe extern "C" {
26941    pub fn SSL_CTX_set_tmp_ecdh(ctx: *mut SSL_CTX, ec_key: *const EC_KEY) -> ::core::ffi::c_int;
26942}
26943unsafe extern "C" {
26944    pub fn SSL_set_tmp_ecdh(ssl: *mut SSL, ec_key: *const EC_KEY) -> ::core::ffi::c_int;
26945}
26946unsafe extern "C" {
26947    pub fn SSL_add_dir_cert_subjects_to_stack(
26948        out: *mut stack_st_X509_NAME,
26949        dir: *const ::core::ffi::c_char,
26950    ) -> ::core::ffi::c_int;
26951}
26952unsafe extern "C" {
26953    pub fn SSL_CTX_enable_tls_channel_id(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
26954}
26955unsafe extern "C" {
26956    pub fn SSL_enable_tls_channel_id(ssl: *mut SSL) -> ::core::ffi::c_int;
26957}
26958unsafe extern "C" {
26959    pub fn BIO_f_ssl() -> *const BIO_METHOD;
26960}
26961unsafe extern "C" {
26962    pub fn BIO_set_ssl(
26963        bio: *mut BIO,
26964        ssl: *mut SSL,
26965        take_owership: ::core::ffi::c_int,
26966    ) -> ::core::ffi::c_long;
26967}
26968unsafe extern "C" {
26969    pub fn SSL_get_session(ssl: *const SSL) -> *mut SSL_SESSION;
26970}
26971unsafe extern "C" {
26972    pub fn SSL_get1_session(ssl: *mut SSL) -> *mut SSL_SESSION;
26973}
26974unsafe extern "C" {
26975    pub fn OPENSSL_init_ssl(
26976        opts: u64,
26977        settings: *const OPENSSL_INIT_SETTINGS,
26978    ) -> ::core::ffi::c_int;
26979}
26980unsafe extern "C" {
26981    pub fn SSL_set_tlsext_status_type(
26982        ssl: *mut SSL,
26983        type_: ::core::ffi::c_int,
26984    ) -> ::core::ffi::c_int;
26985}
26986unsafe extern "C" {
26987    pub fn SSL_get_tlsext_status_type(ssl: *const SSL) -> ::core::ffi::c_int;
26988}
26989unsafe extern "C" {
26990    pub fn SSL_set_tlsext_status_ocsp_resp(
26991        ssl: *mut SSL,
26992        resp: *mut u8,
26993        resp_len: usize,
26994    ) -> ::core::ffi::c_int;
26995}
26996unsafe extern "C" {
26997    pub fn SSL_get_tlsext_status_ocsp_resp(ssl: *const SSL, out: *mut *const u8) -> usize;
26998}
26999unsafe extern "C" {
27000    pub fn SSL_CTX_set_tlsext_status_cb(
27001        ctx: *mut SSL_CTX,
27002        callback: ::core::option::Option<
27003            unsafe extern "C" fn(
27004                ssl: *mut SSL,
27005                arg: *mut ::core::ffi::c_void,
27006            ) -> ::core::ffi::c_int,
27007        >,
27008    ) -> ::core::ffi::c_int;
27009}
27010unsafe extern "C" {
27011    pub fn SSL_CTX_set_tlsext_status_arg(
27012        ctx: *mut SSL_CTX,
27013        arg: *mut ::core::ffi::c_void,
27014    ) -> ::core::ffi::c_int;
27015}
27016unsafe extern "C" {
27017    pub fn SSL_get_curve_id(ssl: *const SSL) -> u16;
27018}
27019unsafe extern "C" {
27020    pub fn SSL_get_curve_name(curve_id: u16) -> *const ::core::ffi::c_char;
27021}
27022unsafe extern "C" {
27023    pub fn SSL_get_all_curve_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
27024}
27025unsafe extern "C" {
27026    pub fn SSL_CTX_set1_curves(
27027        ctx: *mut SSL_CTX,
27028        curves: *const ::core::ffi::c_int,
27029        num_curves: usize,
27030    ) -> ::core::ffi::c_int;
27031}
27032unsafe extern "C" {
27033    pub fn SSL_set1_curves(
27034        ssl: *mut SSL,
27035        curves: *const ::core::ffi::c_int,
27036        num_curves: usize,
27037    ) -> ::core::ffi::c_int;
27038}
27039unsafe extern "C" {
27040    pub fn SSL_CTX_set1_curves_list(
27041        ctx: *mut SSL_CTX,
27042        curves: *const ::core::ffi::c_char,
27043    ) -> ::core::ffi::c_int;
27044}
27045unsafe extern "C" {
27046    pub fn SSL_set1_curves_list(
27047        ssl: *mut SSL,
27048        curves: *const ::core::ffi::c_char,
27049    ) -> ::core::ffi::c_int;
27050}
27051unsafe extern "C" {
27052    pub fn SSL_CTX_check_private_key(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
27053}
27054unsafe extern "C" {
27055    pub fn SSL_check_private_key(ssl: *const SSL) -> ::core::ffi::c_int;
27056}
27057unsafe extern "C" {
27058    pub fn SSL_CTX_get_security_level(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
27059}
27060unsafe extern "C" {
27061    pub fn SSL_CTX_set0_buffer_pool(ctx: *mut SSL_CTX, pool: *mut CRYPTO_BUFFER_POOL);
27062}
27063pub const ssl_compliance_policy_t_ssl_compliance_policy_none: ssl_compliance_policy_t = 0;
27064pub const ssl_compliance_policy_t_ssl_compliance_policy_fips_202205: ssl_compliance_policy_t = 1;
27065pub const ssl_compliance_policy_t_ssl_compliance_policy_wpa3_192_202304: ssl_compliance_policy_t =
27066    2;
27067pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa_202407: ssl_compliance_policy_t = 3;
27068pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa1_202603: ssl_compliance_policy_t = 4;
27069pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa2_202603: ssl_compliance_policy_t = 5;
27070pub type ssl_compliance_policy_t = ::core::ffi::c_uint;
27071unsafe extern "C" {
27072    pub fn SSL_CTX_set_compliance_policy(
27073        ctx: *mut SSL_CTX,
27074        policy: ssl_compliance_policy_t,
27075    ) -> ::core::ffi::c_int;
27076}
27077unsafe extern "C" {
27078    pub fn SSL_CTX_get_compliance_policy(ctx: *const SSL_CTX) -> ssl_compliance_policy_t;
27079}
27080unsafe extern "C" {
27081    pub fn SSL_set_compliance_policy(
27082        ssl: *mut SSL,
27083        policy: ssl_compliance_policy_t,
27084    ) -> ::core::ffi::c_int;
27085}
27086unsafe extern "C" {
27087    pub fn SSL_get_compliance_policy(ssl: *const SSL) -> ssl_compliance_policy_t;
27088}
27089unsafe extern "C" {
27090    pub fn SSL_set_server_padding_request(ssl: *mut SSL, num_bytes: u16);
27091}
27092unsafe extern "C" {
27093    pub fn SSL_set_server_padding_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
27094}
27095unsafe extern "C" {
27096    pub fn SSL_server_sent_requested_padding(ssl: *const SSL) -> ::core::ffi::c_int;
27097}
27098unsafe extern "C" {
27099    pub fn CRYPTO_tls1_prf(
27100        digest: *const EVP_MD,
27101        out: *mut u8,
27102        out_len: usize,
27103        secret: *const u8,
27104        secret_len: usize,
27105        label: *const u8,
27106        label_len: usize,
27107        seed1: *const u8,
27108        seed1_len: usize,
27109        seed2: *const u8,
27110        seed2_len: usize,
27111    ) -> ::core::ffi::c_int;
27112}
27113unsafe extern "C" {
27114    pub fn TRUST_TOKEN_experiment_v1() -> *const TRUST_TOKEN_METHOD;
27115}
27116unsafe extern "C" {
27117    pub fn TRUST_TOKEN_experiment_v2_voprf() -> *const TRUST_TOKEN_METHOD;
27118}
27119unsafe extern "C" {
27120    pub fn TRUST_TOKEN_experiment_v2_pmb() -> *const TRUST_TOKEN_METHOD;
27121}
27122unsafe extern "C" {
27123    pub fn TRUST_TOKEN_pst_v1_voprf() -> *const TRUST_TOKEN_METHOD;
27124}
27125unsafe extern "C" {
27126    pub fn TRUST_TOKEN_pst_v1_pmb() -> *const TRUST_TOKEN_METHOD;
27127}
27128#[repr(C)]
27129#[derive(Debug, Copy, Clone)]
27130pub struct trust_token_st {
27131    pub data: *mut u8,
27132    pub len: usize,
27133}
27134#[repr(C)]
27135#[derive(Debug)]
27136pub struct stack_st_TRUST_TOKEN {
27137    _unused: [u8; 0],
27138}
27139pub type sk_TRUST_TOKEN_free_func =
27140    ::core::option::Option<unsafe extern "C" fn(arg1: *mut TRUST_TOKEN)>;
27141pub type sk_TRUST_TOKEN_copy_func =
27142    ::core::option::Option<unsafe extern "C" fn(arg1: *const TRUST_TOKEN) -> *mut TRUST_TOKEN>;
27143pub type sk_TRUST_TOKEN_cmp_func = ::core::option::Option<
27144    unsafe extern "C" fn(
27145        arg1: *const *const TRUST_TOKEN,
27146        arg2: *const *const TRUST_TOKEN,
27147    ) -> ::core::ffi::c_int,
27148>;
27149pub type sk_TRUST_TOKEN_delete_if_func = ::core::option::Option<
27150    unsafe extern "C" fn(
27151        arg1: *mut TRUST_TOKEN,
27152        arg2: *mut ::core::ffi::c_void,
27153    ) -> ::core::ffi::c_int,
27154>;
27155unsafe extern "C" {
27156    #[link_name = "sk_TRUST_TOKEN_call_free_func__extern"]
27157    pub fn sk_TRUST_TOKEN_call_free_func(
27158        free_func: OPENSSL_sk_free_func,
27159        ptr: *mut ::core::ffi::c_void,
27160    );
27161}
27162unsafe extern "C" {
27163    #[link_name = "sk_TRUST_TOKEN_call_copy_func__extern"]
27164    pub fn sk_TRUST_TOKEN_call_copy_func(
27165        copy_func: OPENSSL_sk_copy_func,
27166        ptr: *const ::core::ffi::c_void,
27167    ) -> *mut ::core::ffi::c_void;
27168}
27169unsafe extern "C" {
27170    #[link_name = "sk_TRUST_TOKEN_call_cmp_func__extern"]
27171    pub fn sk_TRUST_TOKEN_call_cmp_func(
27172        cmp_func: OPENSSL_sk_cmp_func,
27173        a: *const ::core::ffi::c_void,
27174        b: *const ::core::ffi::c_void,
27175    ) -> ::core::ffi::c_int;
27176}
27177unsafe extern "C" {
27178    #[link_name = "sk_TRUST_TOKEN_call_delete_if_func__extern"]
27179    pub fn sk_TRUST_TOKEN_call_delete_if_func(
27180        func: OPENSSL_sk_delete_if_func,
27181        obj: *mut ::core::ffi::c_void,
27182        data: *mut ::core::ffi::c_void,
27183    ) -> ::core::ffi::c_int;
27184}
27185unsafe extern "C" {
27186    #[link_name = "sk_TRUST_TOKEN_new__extern"]
27187    pub fn sk_TRUST_TOKEN_new(comp: sk_TRUST_TOKEN_cmp_func) -> *mut stack_st_TRUST_TOKEN;
27188}
27189unsafe extern "C" {
27190    #[link_name = "sk_TRUST_TOKEN_new_null__extern"]
27191    pub fn sk_TRUST_TOKEN_new_null() -> *mut stack_st_TRUST_TOKEN;
27192}
27193unsafe extern "C" {
27194    #[link_name = "sk_TRUST_TOKEN_num__extern"]
27195    pub fn sk_TRUST_TOKEN_num(sk: *const stack_st_TRUST_TOKEN) -> usize;
27196}
27197unsafe extern "C" {
27198    #[link_name = "sk_TRUST_TOKEN_zero__extern"]
27199    pub fn sk_TRUST_TOKEN_zero(sk: *mut stack_st_TRUST_TOKEN);
27200}
27201unsafe extern "C" {
27202    #[link_name = "sk_TRUST_TOKEN_value__extern"]
27203    pub fn sk_TRUST_TOKEN_value(sk: *const stack_st_TRUST_TOKEN, i: usize) -> *mut TRUST_TOKEN;
27204}
27205unsafe extern "C" {
27206    #[link_name = "sk_TRUST_TOKEN_set__extern"]
27207    pub fn sk_TRUST_TOKEN_set(
27208        sk: *mut stack_st_TRUST_TOKEN,
27209        i: usize,
27210        p: *mut TRUST_TOKEN,
27211    ) -> *mut TRUST_TOKEN;
27212}
27213unsafe extern "C" {
27214    #[link_name = "sk_TRUST_TOKEN_free__extern"]
27215    pub fn sk_TRUST_TOKEN_free(sk: *mut stack_st_TRUST_TOKEN);
27216}
27217unsafe extern "C" {
27218    #[link_name = "sk_TRUST_TOKEN_pop_free__extern"]
27219    pub fn sk_TRUST_TOKEN_pop_free(
27220        sk: *mut stack_st_TRUST_TOKEN,
27221        free_func: sk_TRUST_TOKEN_free_func,
27222    );
27223}
27224unsafe extern "C" {
27225    #[link_name = "sk_TRUST_TOKEN_insert__extern"]
27226    pub fn sk_TRUST_TOKEN_insert(
27227        sk: *mut stack_st_TRUST_TOKEN,
27228        p: *mut TRUST_TOKEN,
27229        where_: usize,
27230    ) -> usize;
27231}
27232unsafe extern "C" {
27233    #[link_name = "sk_TRUST_TOKEN_delete__extern"]
27234    pub fn sk_TRUST_TOKEN_delete(sk: *mut stack_st_TRUST_TOKEN, where_: usize) -> *mut TRUST_TOKEN;
27235}
27236unsafe extern "C" {
27237    #[link_name = "sk_TRUST_TOKEN_delete_ptr__extern"]
27238    pub fn sk_TRUST_TOKEN_delete_ptr(
27239        sk: *mut stack_st_TRUST_TOKEN,
27240        p: *const TRUST_TOKEN,
27241    ) -> *mut TRUST_TOKEN;
27242}
27243unsafe extern "C" {
27244    #[link_name = "sk_TRUST_TOKEN_delete_if__extern"]
27245    pub fn sk_TRUST_TOKEN_delete_if(
27246        sk: *mut stack_st_TRUST_TOKEN,
27247        func: sk_TRUST_TOKEN_delete_if_func,
27248        data: *mut ::core::ffi::c_void,
27249    );
27250}
27251unsafe extern "C" {
27252    #[link_name = "sk_TRUST_TOKEN_find__extern"]
27253    pub fn sk_TRUST_TOKEN_find(
27254        sk: *const stack_st_TRUST_TOKEN,
27255        out_index: *mut usize,
27256        p: *const TRUST_TOKEN,
27257    ) -> ::core::ffi::c_int;
27258}
27259unsafe extern "C" {
27260    #[link_name = "sk_TRUST_TOKEN_shift__extern"]
27261    pub fn sk_TRUST_TOKEN_shift(sk: *mut stack_st_TRUST_TOKEN) -> *mut TRUST_TOKEN;
27262}
27263unsafe extern "C" {
27264    #[link_name = "sk_TRUST_TOKEN_push__extern"]
27265    pub fn sk_TRUST_TOKEN_push(sk: *mut stack_st_TRUST_TOKEN, p: *mut TRUST_TOKEN) -> usize;
27266}
27267unsafe extern "C" {
27268    #[link_name = "sk_TRUST_TOKEN_pop__extern"]
27269    pub fn sk_TRUST_TOKEN_pop(sk: *mut stack_st_TRUST_TOKEN) -> *mut TRUST_TOKEN;
27270}
27271unsafe extern "C" {
27272    #[link_name = "sk_TRUST_TOKEN_dup__extern"]
27273    pub fn sk_TRUST_TOKEN_dup(sk: *const stack_st_TRUST_TOKEN) -> *mut stack_st_TRUST_TOKEN;
27274}
27275unsafe extern "C" {
27276    #[link_name = "sk_TRUST_TOKEN_sort__extern"]
27277    pub fn sk_TRUST_TOKEN_sort(sk: *mut stack_st_TRUST_TOKEN);
27278}
27279unsafe extern "C" {
27280    #[link_name = "sk_TRUST_TOKEN_sort_and_dedup__extern"]
27281    pub fn sk_TRUST_TOKEN_sort_and_dedup(
27282        sk: *mut stack_st_TRUST_TOKEN,
27283        free_func: sk_TRUST_TOKEN_free_func,
27284    );
27285}
27286unsafe extern "C" {
27287    #[link_name = "sk_TRUST_TOKEN_is_sorted__extern"]
27288    pub fn sk_TRUST_TOKEN_is_sorted(sk: *const stack_st_TRUST_TOKEN) -> ::core::ffi::c_int;
27289}
27290unsafe extern "C" {
27291    #[link_name = "sk_TRUST_TOKEN_set_cmp_func__extern"]
27292    pub fn sk_TRUST_TOKEN_set_cmp_func(
27293        sk: *mut stack_st_TRUST_TOKEN,
27294        comp: sk_TRUST_TOKEN_cmp_func,
27295    ) -> sk_TRUST_TOKEN_cmp_func;
27296}
27297unsafe extern "C" {
27298    #[link_name = "sk_TRUST_TOKEN_deep_copy__extern"]
27299    pub fn sk_TRUST_TOKEN_deep_copy(
27300        sk: *const stack_st_TRUST_TOKEN,
27301        copy_func: sk_TRUST_TOKEN_copy_func,
27302        free_func: sk_TRUST_TOKEN_free_func,
27303    ) -> *mut stack_st_TRUST_TOKEN;
27304}
27305unsafe extern "C" {
27306    pub fn TRUST_TOKEN_new(data: *const u8, len: usize) -> *mut TRUST_TOKEN;
27307}
27308unsafe extern "C" {
27309    pub fn TRUST_TOKEN_free(token: *mut TRUST_TOKEN);
27310}
27311unsafe extern "C" {
27312    pub fn TRUST_TOKEN_generate_key(
27313        method: *const TRUST_TOKEN_METHOD,
27314        out_priv_key: *mut u8,
27315        out_priv_key_len: *mut usize,
27316        max_priv_key_len: usize,
27317        out_pub_key: *mut u8,
27318        out_pub_key_len: *mut usize,
27319        max_pub_key_len: usize,
27320        id: u32,
27321    ) -> ::core::ffi::c_int;
27322}
27323unsafe extern "C" {
27324    pub fn TRUST_TOKEN_derive_key_from_secret(
27325        method: *const TRUST_TOKEN_METHOD,
27326        out_priv_key: *mut u8,
27327        out_priv_key_len: *mut usize,
27328        max_priv_key_len: usize,
27329        out_pub_key: *mut u8,
27330        out_pub_key_len: *mut usize,
27331        max_pub_key_len: usize,
27332        id: u32,
27333        secret: *const u8,
27334        secret_len: usize,
27335    ) -> ::core::ffi::c_int;
27336}
27337unsafe extern "C" {
27338    pub fn TRUST_TOKEN_CLIENT_new(
27339        method: *const TRUST_TOKEN_METHOD,
27340        max_batchsize: usize,
27341    ) -> *mut TRUST_TOKEN_CLIENT;
27342}
27343unsafe extern "C" {
27344    pub fn TRUST_TOKEN_CLIENT_free(ctx: *mut TRUST_TOKEN_CLIENT);
27345}
27346unsafe extern "C" {
27347    pub fn TRUST_TOKEN_CLIENT_dup_for_testing(
27348        ctx: *const TRUST_TOKEN_CLIENT,
27349    ) -> *mut TRUST_TOKEN_CLIENT;
27350}
27351unsafe extern "C" {
27352    pub fn TRUST_TOKEN_CLIENT_add_key(
27353        ctx: *mut TRUST_TOKEN_CLIENT,
27354        out_key_index: *mut usize,
27355        key: *const u8,
27356        key_len: usize,
27357    ) -> ::core::ffi::c_int;
27358}
27359unsafe extern "C" {
27360    pub fn TRUST_TOKEN_CLIENT_set_srr_key(
27361        ctx: *mut TRUST_TOKEN_CLIENT,
27362        key: *mut EVP_PKEY,
27363    ) -> ::core::ffi::c_int;
27364}
27365unsafe extern "C" {
27366    pub fn TRUST_TOKEN_CLIENT_begin_issuance(
27367        ctx: *mut TRUST_TOKEN_CLIENT,
27368        out: *mut *mut u8,
27369        out_len: *mut usize,
27370        count: usize,
27371    ) -> ::core::ffi::c_int;
27372}
27373unsafe extern "C" {
27374    pub fn TRUST_TOKEN_CLIENT_begin_issuance_over_message(
27375        ctx: *mut TRUST_TOKEN_CLIENT,
27376        out: *mut *mut u8,
27377        out_len: *mut usize,
27378        count: usize,
27379        msg: *const u8,
27380        msg_len: usize,
27381    ) -> ::core::ffi::c_int;
27382}
27383unsafe extern "C" {
27384    pub fn TRUST_TOKEN_CLIENT_finish_issuance(
27385        ctx: *mut TRUST_TOKEN_CLIENT,
27386        out_key_index: *mut usize,
27387        response: *const u8,
27388        response_len: usize,
27389    ) -> *mut stack_st_TRUST_TOKEN;
27390}
27391unsafe extern "C" {
27392    pub fn TRUST_TOKEN_CLIENT_begin_redemption(
27393        ctx: *mut TRUST_TOKEN_CLIENT,
27394        out: *mut *mut u8,
27395        out_len: *mut usize,
27396        token: *const TRUST_TOKEN,
27397        data: *const u8,
27398        data_len: usize,
27399        time: u64,
27400    ) -> ::core::ffi::c_int;
27401}
27402unsafe extern "C" {
27403    pub fn TRUST_TOKEN_CLIENT_finish_redemption(
27404        ctx: *mut TRUST_TOKEN_CLIENT,
27405        out_rr: *mut *mut u8,
27406        out_rr_len: *mut usize,
27407        out_sig: *mut *mut u8,
27408        out_sig_len: *mut usize,
27409        response: *const u8,
27410        response_len: usize,
27411    ) -> ::core::ffi::c_int;
27412}
27413unsafe extern "C" {
27414    pub fn TRUST_TOKEN_ISSUER_new(
27415        method: *const TRUST_TOKEN_METHOD,
27416        max_batchsize: usize,
27417    ) -> *mut TRUST_TOKEN_ISSUER;
27418}
27419unsafe extern "C" {
27420    pub fn TRUST_TOKEN_ISSUER_free(ctx: *mut TRUST_TOKEN_ISSUER);
27421}
27422unsafe extern "C" {
27423    pub fn TRUST_TOKEN_ISSUER_add_key(
27424        ctx: *mut TRUST_TOKEN_ISSUER,
27425        key: *const u8,
27426        key_len: usize,
27427    ) -> ::core::ffi::c_int;
27428}
27429unsafe extern "C" {
27430    pub fn TRUST_TOKEN_ISSUER_set_srr_key(
27431        ctx: *mut TRUST_TOKEN_ISSUER,
27432        key: *mut EVP_PKEY,
27433    ) -> ::core::ffi::c_int;
27434}
27435unsafe extern "C" {
27436    pub fn TRUST_TOKEN_ISSUER_issue(
27437        ctx: *const TRUST_TOKEN_ISSUER,
27438        out: *mut *mut u8,
27439        out_len: *mut usize,
27440        out_tokens_issued: *mut usize,
27441        request: *const u8,
27442        request_len: usize,
27443        public_metadata: u32,
27444        private_metadata: u8,
27445        max_issuance: usize,
27446    ) -> ::core::ffi::c_int;
27447}
27448unsafe extern "C" {
27449    pub fn TRUST_TOKEN_ISSUER_redeem(
27450        ctx: *const TRUST_TOKEN_ISSUER,
27451        out_public: *mut u32,
27452        out_private: *mut u8,
27453        out_token: *mut *mut TRUST_TOKEN,
27454        out_client_data: *mut *mut u8,
27455        out_client_data_len: *mut usize,
27456        request: *const u8,
27457        request_len: usize,
27458    ) -> ::core::ffi::c_int;
27459}
27460unsafe extern "C" {
27461    pub fn TRUST_TOKEN_ISSUER_redeem_over_message(
27462        ctx: *const TRUST_TOKEN_ISSUER,
27463        out_public: *mut u32,
27464        out_private: *mut u8,
27465        out_token: *mut *mut TRUST_TOKEN,
27466        out_client_data: *mut *mut u8,
27467        out_client_data_len: *mut usize,
27468        request: *const u8,
27469        request_len: usize,
27470        msg: *const u8,
27471        msg_len: usize,
27472    ) -> ::core::ffi::c_int;
27473}
27474unsafe extern "C" {
27475    pub fn TRUST_TOKEN_decode_private_metadata(
27476        method: *const TRUST_TOKEN_METHOD,
27477        out_value: *mut u8,
27478        key: *const u8,
27479        key_len: usize,
27480        nonce: *const u8,
27481        nonce_len: usize,
27482        encrypted_bit: u8,
27483    ) -> ::core::ffi::c_int;
27484}
27485pub type __builtin_va_list = [__va_list_tag; 1usize];
27486#[repr(C)]
27487#[derive(Debug, Copy, Clone)]
27488pub struct __va_list_tag {
27489    pub gp_offset: ::core::ffi::c_uint,
27490    pub fp_offset: ::core::ffi::c_uint,
27491    pub overflow_arg_area: *mut ::core::ffi::c_void,
27492    pub reg_save_area: *mut ::core::ffi::c_void,
27493}
27494#[repr(C)]
27495#[derive(Debug, Copy, Clone)]
27496pub struct CRYPTO_dynlock_value {
27497    pub _address: u8,
27498}
27499
27500// LINT.ThenChange(
27501//    //third_party/boringssl/src/include/openssl/aead.h |
27502//    //third_party/boringssl/src/include/openssl/aes.h |
27503//    //third_party/boringssl/src/include/openssl/asn1.h |
27504//    //third_party/boringssl/src/include/openssl/asn1t.h |
27505//    //third_party/boringssl/src/include/openssl/base.h |
27506//    //third_party/boringssl/src/include/openssl/base64.h |
27507//    //third_party/boringssl/src/include/openssl/bio.h |
27508//    //third_party/boringssl/src/include/openssl/blake2.h |
27509//    //third_party/boringssl/src/include/openssl/blowfish.h |
27510//    //third_party/boringssl/src/include/openssl/bn.h |
27511//    //third_party/boringssl/src/include/openssl/buf.h |
27512//    //third_party/boringssl/src/include/openssl/buffer.h |
27513//    //third_party/boringssl/src/include/openssl/bytestring.h |
27514//    //third_party/boringssl/src/include/openssl/cast.h |
27515//    //third_party/boringssl/src/include/openssl/chacha.h |
27516//    //third_party/boringssl/src/include/openssl/cipher.h |
27517//    //third_party/boringssl/src/include/openssl/cmac.h |
27518//    //third_party/boringssl/src/include/openssl/conf.h |
27519//    //third_party/boringssl/src/include/openssl/cpu.h |
27520//    //third_party/boringssl/src/include/openssl/crypto.h |
27521//    //third_party/boringssl/src/include/openssl/ctrdrbg.h |
27522//    //third_party/boringssl/src/include/openssl/curve25519.h |
27523//    //third_party/boringssl/src/include/openssl/des.h |
27524//    //third_party/boringssl/src/include/openssl/dh.h |
27525//    //third_party/boringssl/src/include/openssl/digest.h |
27526//    //third_party/boringssl/src/include/openssl/dsa.h |
27527//    //third_party/boringssl/src/include/openssl/dtls1.h |
27528//    //third_party/boringssl/src/include/openssl/e_os2.h |
27529//    //third_party/boringssl/src/include/openssl/ec.h |
27530//    //third_party/boringssl/src/include/openssl/ec_key.h |
27531//    //third_party/boringssl/src/include/openssl/ecdh.h |
27532//    //third_party/boringssl/src/include/openssl/ecdsa.h |
27533//    //third_party/boringssl/src/include/openssl/engine.h |
27534//    //third_party/boringssl/src/include/openssl/err.h |
27535//    //third_party/boringssl/src/include/openssl/evp.h |
27536//    //third_party/boringssl/src/include/openssl/evp_errors.h |
27537//    //third_party/boringssl/src/include/openssl/ex_data.h |
27538//    //third_party/boringssl/src/include/openssl/hkdf.h |
27539//    //third_party/boringssl/src/include/openssl/hmac.h |
27540//    //third_party/boringssl/src/include/openssl/hpke.h |
27541//    //third_party/boringssl/src/include/openssl/hrss.h |
27542//    //third_party/boringssl/src/include/openssl/is_boringssl.h |
27543//    //third_party/boringssl/src/include/openssl/kdf.h |
27544//    //third_party/boringssl/src/include/openssl/lhash.h |
27545//    //third_party/boringssl/src/include/openssl/md4.h |
27546//    //third_party/boringssl/src/include/openssl/md5.h |
27547//    //third_party/boringssl/src/include/openssl/mem.h |
27548//    //third_party/boringssl/src/include/openssl/mldsa.h |
27549//    //third_party/boringssl/src/include/openssl/mlkem.h |
27550//    //third_party/boringssl/src/include/openssl/nid.h |
27551//    //third_party/boringssl/src/include/openssl/obj.h |
27552//    //third_party/boringssl/src/include/openssl/obj_mac.h |
27553//    //third_party/boringssl/src/include/openssl/objects.h |
27554//    //third_party/boringssl/src/include/openssl/opensslconf.h |
27555//    //third_party/boringssl/src/include/openssl/opensslv.h |
27556//    //third_party/boringssl/src/include/openssl/ossl_typ.h |
27557//    //third_party/boringssl/src/include/openssl/pem.h |
27558//    //third_party/boringssl/src/include/openssl/pkcs12.h |
27559//    //third_party/boringssl/src/include/openssl/pkcs7.h |
27560//    //third_party/boringssl/src/include/openssl/pkcs8.h |
27561//    //third_party/boringssl/src/include/openssl/poly1305.h |
27562//    //third_party/boringssl/src/include/openssl/pool.h |
27563//    //third_party/boringssl/src/include/openssl/rand.h |
27564//    //third_party/boringssl/src/include/openssl/rc4.h |
27565//    //third_party/boringssl/src/include/openssl/ripemd.h |
27566//    //third_party/boringssl/src/include/openssl/rsa.h |
27567//    //third_party/boringssl/src/include/openssl/safestack.h |
27568//    //third_party/boringssl/src/include/openssl/sha.h |
27569//    //third_party/boringssl/src/include/openssl/sha2.h |
27570//    //third_party/boringssl/src/include/openssl/siphash.h |
27571//    //third_party/boringssl/src/include/openssl/slhdsa.h |
27572//    //third_party/boringssl/src/include/openssl/span.h |
27573//    //third_party/boringssl/src/include/openssl/srtp.h |
27574//    //third_party/boringssl/src/include/openssl/ssl.h |
27575//    //third_party/boringssl/src/include/openssl/ssl3.h |
27576//    //third_party/boringssl/src/include/openssl/stack.h |
27577//    //third_party/boringssl/src/include/openssl/target.h |
27578//    //third_party/boringssl/src/include/openssl/thread.h |
27579//    //third_party/boringssl/src/include/openssl/tls1.h |
27580//    //third_party/boringssl/src/include/openssl/tls_prf.h |
27581//    //third_party/boringssl/src/include/openssl/trust_token.h |
27582//    //third_party/boringssl/src/include/openssl/x509.h |
27583//    //third_party/boringssl/src/include/openssl/x509_vfy.h |
27584//    //third_party/boringssl/src/include/openssl/x509v3.h |
27585//    //third_party/boringssl/src/include/openssl/x509v3_errors.h |
27586//    //third_party/boringssl/src/rust/bssl-sys/wrapper.h
27587//)