diff --git a/rust/boringssl-sys/bindgen.sh b/rust/boringssl-sys/bindgen.sh
index 146e02e..219c72f 100755
--- a/rust/boringssl-sys/bindgen.sh
+++ b/rust/boringssl-sys/bindgen.sh
@@ -27,7 +27,7 @@
 # Whitelist BoringSSL-related symbols so we don't get non-BoringSSL symbols such
 # as platform-specific symbols (specific to the platform that is running
 # 'bindgen') and other C standard library symbols.
-WHITELIST="(ERR|BIO|CRYPTO|RAND|V_ASN1|ASN1|B_ASN1|CBS_ASN1|CAST|EVP|CBS|CBB|CIPHER|OPENSSL|SSLEAY|DH|DES|DIGEST|DSA|NID|EC|ECDSA|ECDH|ED25519|X25519|PKCS5_PBKDF2|SHA|SHA1|SHA224|SHA256|SHA384|SHA512|HMAC)_.*"
+WHITELIST="(ERR|BIO|CRYPTO|RAND|V_ASN1|ASN1|B_ASN1|CBS_ASN1|CAST|EVP|CBS|CBB|CIPHER|OPENSSL|SSLEAY|DH|DES|DIGEST|DSA|NID|EC|ECDSA|ECDH|ED25519|X25519|PKCS5_PBKDF2|SHA|SHA1|SHA224|SHA256|SHA384|SHA512|HMAC|RSA|BN)_.*"
 # NOTE(joshlf) on --target: Currently, we just pass x86_64 since none of the
 # symbols we're linking against are architecture-specific (they may be
 # word-size-specific, but Fuchsia only targets 64-bit platforms). If this ever
diff --git a/rust/boringssl-sys/src/lib.rs b/rust/boringssl-sys/src/lib.rs
index 140605f..62a42c7 100644
--- a/rust/boringssl-sys/src/lib.rs
+++ b/rust/boringssl-sys/src/lib.rs
@@ -19,52 +19,29 @@
     storage: Storage,
     align: [Align; 0],
 }
-
 impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
 where
     Storage: AsRef<[u8]> + AsMut<[u8]>,
 {
     #[inline]
     pub fn new(storage: Storage) -> Self {
-        Self {
-            storage,
-            align: [],
-        }
+        Self { storage, align: [] }
     }
-
     #[inline]
     pub fn get_bit(&self, index: usize) -> bool {
         debug_assert!(index / 8 < self.storage.as_ref().len());
-
         let byte_index = index / 8;
         let byte = self.storage.as_ref()[byte_index];
-
-        let bit_index =
-            if cfg!(target_endian = "big") {
-                7 - (index % 8)
-            } else {
-                index % 8
-            };
-
+        let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
         let mask = 1 << bit_index;
-
         byte & mask == mask
     }
-
     #[inline]
     pub fn set_bit(&mut self, index: usize, val: bool) {
         debug_assert!(index / 8 < self.storage.as_ref().len());
-
         let byte_index = index / 8;
         let byte = &mut self.storage.as_mut()[byte_index];
-
-        let bit_index =
-            if cfg!(target_endian = "big") {
-                7 - (index % 8)
-            } else {
-                index % 8
-            };
-
+        let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
         let mask = 1 << bit_index;
         if val {
             *byte |= mask;
@@ -72,47 +49,12105 @@
             *byte &= !mask;
         }
     }
-
     #[inline]
     pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
         debug_assert!(bit_width <= 64);
         debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
         debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
-
         let mut val = 0;
-
         for i in 0..(bit_width as usize) {
             if self.get_bit(i + bit_offset) {
                 let index =
-                    if cfg!(target_endian = "big") {
-                        bit_width as usize - 1 - i
-                    } else {
-                        i
-                    };
+                    if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i };
                 val |= 1 << index;
             }
         }
-
         val
     }
-
     #[inline]
     pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
         debug_assert!(bit_width <= 64);
         debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
         debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
-
         for i in 0..(bit_width as usize) {
             let mask = 1 << i;
             let val_bit_is_set = val & mask == mask;
-            let index =
-                if cfg!(target_endian = "big") {
-                    bit_width as usize - 1 - i
-                } else {
-                    i
-                };
+            let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i };
             self.set_bit(index + bit_offset, val_bit_is_set);
         }
     }
 }
- pub const OPENSSL_VERSION_NUMBER : u32 = 269484159 ; pub const SSLEAY_VERSION_NUMBER : u32 = 269484159 ; pub const EVP_AEAD_MAX_KEY_LENGTH : u32 = 80 ; pub const EVP_AEAD_MAX_NONCE_LENGTH : u32 = 24 ; pub const EVP_AEAD_MAX_OVERHEAD : u32 = 64 ; pub const EVP_AEAD_DEFAULT_TAG_LENGTH : u32 = 0 ; pub const ERR_FLAG_STRING : u32 = 1 ; pub const ERR_R_FATAL : u32 = 64 ; pub const ERR_R_MALLOC_FAILURE : u32 = 65 ; pub const ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED : u32 = 66 ; pub const ERR_R_PASSED_NULL_PARAMETER : u32 = 67 ; pub const ERR_R_INTERNAL_ERROR : u32 = 68 ; pub const ERR_R_OVERFLOW : u32 = 69 ; pub const ERR_ERROR_STRING_BUF_LEN : u32 = 120 ; pub const ERR_TXT_STRING : u32 = 1 ; pub const ERR_NUM_ERRORS : u32 = 16 ; pub const CRYPTO_LOCK : u32 = 1 ; pub const CRYPTO_UNLOCK : u32 = 2 ; pub const CRYPTO_READ : u32 = 4 ; pub const CRYPTO_WRITE : u32 = 8 ; pub const BIO_RR_CONNECT : u32 = 2 ; pub const BIO_RR_ACCEPT : u32 = 3 ; pub const BIO_CB_FREE : u32 = 1 ; pub const BIO_CB_READ : u32 = 2 ; pub const BIO_CB_WRITE : u32 = 3 ; pub const BIO_CB_PUTS : u32 = 4 ; pub const BIO_CB_GETS : u32 = 5 ; pub const BIO_CB_CTRL : u32 = 6 ; pub const BIO_CB_RETURN : u32 = 128 ; pub const BIO_NOCLOSE : u32 = 0 ; pub const BIO_CLOSE : u32 = 1 ; pub const BIO_CTRL_DGRAM_QUERY_MTU : u32 = 40 ; pub const BIO_CTRL_DGRAM_SET_MTU : u32 = 42 ; pub const BIO_CTRL_DGRAM_MTU_EXCEEDED : u32 = 43 ; pub const BIO_CTRL_DGRAM_GET_PEER : u32 = 46 ; pub const BIO_CTRL_DGRAM_GET_FALLBACK_MTU : u32 = 47 ; pub const BIO_CTRL_RESET : u32 = 1 ; pub const BIO_CTRL_EOF : u32 = 2 ; pub const BIO_CTRL_INFO : u32 = 3 ; pub const BIO_CTRL_GET_CLOSE : u32 = 8 ; pub const BIO_CTRL_SET_CLOSE : u32 = 9 ; pub const BIO_CTRL_PENDING : u32 = 10 ; pub const BIO_CTRL_FLUSH : u32 = 11 ; pub const BIO_CTRL_WPENDING : u32 = 13 ; pub const BIO_CTRL_SET_CALLBACK : u32 = 14 ; pub const BIO_CTRL_GET_CALLBACK : u32 = 15 ; pub const BIO_CTRL_SET : u32 = 4 ; pub const BIO_CTRL_GET : u32 = 5 ; pub const BIO_CTRL_PUSH : u32 = 6 ; pub const BIO_CTRL_POP : u32 = 7 ; pub const BIO_CTRL_DUP : u32 = 12 ; pub const BIO_CTRL_SET_FILENAME : u32 = 30 ; pub const BIO_FLAGS_READ : u32 = 1 ; pub const BIO_FLAGS_WRITE : u32 = 2 ; pub const BIO_FLAGS_IO_SPECIAL : u32 = 4 ; pub const BIO_FLAGS_RWS : u32 = 7 ; pub const BIO_FLAGS_SHOULD_RETRY : u32 = 8 ; pub const BIO_FLAGS_BASE64_NO_NL : u32 = 256 ; pub const BIO_FLAGS_MEM_RDONLY : u32 = 512 ; pub const BIO_TYPE_NONE : u32 = 0 ; pub const BIO_TYPE_MEM : u32 = 1025 ; pub const BIO_TYPE_FILE : u32 = 1026 ; pub const BIO_TYPE_FD : u32 = 1284 ; pub const BIO_TYPE_SOCKET : u32 = 1285 ; pub const BIO_TYPE_NULL : u32 = 1030 ; pub const BIO_TYPE_SSL : u32 = 519 ; pub const BIO_TYPE_MD : u32 = 520 ; pub const BIO_TYPE_BUFFER : u32 = 521 ; pub const BIO_TYPE_CIPHER : u32 = 522 ; pub const BIO_TYPE_BASE64 : u32 = 523 ; pub const BIO_TYPE_CONNECT : u32 = 1292 ; pub const BIO_TYPE_ACCEPT : u32 = 1293 ; pub const BIO_TYPE_PROXY_CLIENT : u32 = 526 ; pub const BIO_TYPE_PROXY_SERVER : u32 = 527 ; pub const BIO_TYPE_NBIO_TEST : u32 = 528 ; pub const BIO_TYPE_NULL_FILTER : u32 = 529 ; pub const BIO_TYPE_BER : u32 = 530 ; pub const BIO_TYPE_BIO : u32 = 1043 ; pub const BIO_TYPE_LINEBUFFER : u32 = 532 ; pub const BIO_TYPE_DGRAM : u32 = 1301 ; pub const BIO_TYPE_ASN1 : u32 = 534 ; pub const BIO_TYPE_COMP : u32 = 535 ; pub const BIO_TYPE_DESCRIPTOR : u32 = 256 ; pub const BIO_TYPE_FILTER : u32 = 512 ; pub const BIO_TYPE_SOURCE_SINK : u32 = 1024 ; pub const BIO_TYPE_START : u32 = 128 ; pub const BIO_C_SET_CONNECT : u32 = 100 ; pub const BIO_C_DO_STATE_MACHINE : u32 = 101 ; pub const BIO_C_SET_NBIO : u32 = 102 ; pub const BIO_C_SET_PROXY_PARAM : u32 = 103 ; pub const BIO_C_SET_FD : u32 = 104 ; pub const BIO_C_GET_FD : u32 = 105 ; pub const BIO_C_SET_FILE_PTR : u32 = 106 ; pub const BIO_C_GET_FILE_PTR : u32 = 107 ; pub const BIO_C_SET_FILENAME : u32 = 108 ; pub const BIO_C_SET_SSL : u32 = 109 ; pub const BIO_C_GET_SSL : u32 = 110 ; pub const BIO_C_SET_MD : u32 = 111 ; pub const BIO_C_GET_MD : u32 = 112 ; pub const BIO_C_GET_CIPHER_STATUS : u32 = 113 ; pub const BIO_C_SET_BUF_MEM : u32 = 114 ; pub const BIO_C_GET_BUF_MEM_PTR : u32 = 115 ; pub const BIO_C_GET_BUFF_NUM_LINES : u32 = 116 ; pub const BIO_C_SET_BUFF_SIZE : u32 = 117 ; pub const BIO_C_SET_ACCEPT : u32 = 118 ; pub const BIO_C_SSL_MODE : u32 = 119 ; pub const BIO_C_GET_MD_CTX : u32 = 120 ; pub const BIO_C_GET_PROXY_PARAM : u32 = 121 ; pub const BIO_C_SET_BUFF_READ_DATA : u32 = 122 ; pub const BIO_C_GET_ACCEPT : u32 = 124 ; pub const BIO_C_SET_SSL_RENEGOTIATE_BYTES : u32 = 125 ; pub const BIO_C_GET_SSL_NUM_RENEGOTIATES : u32 = 126 ; pub const BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT : u32 = 127 ; pub const BIO_C_FILE_SEEK : u32 = 128 ; pub const BIO_C_GET_CIPHER_CTX : u32 = 129 ; pub const BIO_C_SET_BUF_MEM_EOF_RETURN : u32 = 130 ; pub const BIO_C_SET_BIND_MODE : u32 = 131 ; pub const BIO_C_GET_BIND_MODE : u32 = 132 ; pub const BIO_C_FILE_TELL : u32 = 133 ; pub const BIO_C_GET_SOCKS : u32 = 134 ; pub const BIO_C_SET_SOCKS : u32 = 135 ; pub const BIO_C_SET_WRITE_BUF_SIZE : u32 = 136 ; pub const BIO_C_GET_WRITE_BUF_SIZE : u32 = 137 ; pub const BIO_C_GET_WRITE_GUARANTEE : u32 = 140 ; pub const BIO_C_GET_READ_REQUEST : u32 = 141 ; pub const BIO_C_SHUTDOWN_WR : u32 = 142 ; pub const BIO_C_NREAD0 : u32 = 143 ; pub const BIO_C_NREAD : u32 = 144 ; pub const BIO_C_NWRITE0 : u32 = 145 ; pub const BIO_C_NWRITE : u32 = 146 ; pub const BIO_C_RESET_READ_REQUEST : u32 = 147 ; pub const BIO_C_SET_MD_CTX : u32 = 148 ; pub const BIO_C_SET_PREFIX : u32 = 149 ; pub const BIO_C_GET_PREFIX : u32 = 150 ; pub const BIO_C_SET_SUFFIX : u32 = 151 ; pub const BIO_C_GET_SUFFIX : u32 = 152 ; pub const BIO_C_SET_EX_ARG : u32 = 153 ; pub const BIO_C_GET_EX_ARG : u32 = 154 ; pub const BIO_R_BAD_FOPEN_MODE : u32 = 100 ; pub const BIO_R_BROKEN_PIPE : u32 = 101 ; pub const BIO_R_CONNECT_ERROR : u32 = 102 ; pub const BIO_R_ERROR_SETTING_NBIO : u32 = 103 ; pub const BIO_R_INVALID_ARGUMENT : u32 = 104 ; pub const BIO_R_IN_USE : u32 = 105 ; pub const BIO_R_KEEPALIVE : u32 = 106 ; pub const BIO_R_NBIO_CONNECT_ERROR : u32 = 107 ; pub const BIO_R_NO_HOSTNAME_SPECIFIED : u32 = 108 ; pub const BIO_R_NO_PORT_SPECIFIED : u32 = 109 ; pub const BIO_R_NO_SUCH_FILE : u32 = 110 ; pub const BIO_R_NULL_PARAMETER : u32 = 111 ; pub const BIO_R_SYS_LIB : u32 = 112 ; pub const BIO_R_UNABLE_TO_CREATE_SOCKET : u32 = 113 ; pub const BIO_R_UNINITIALIZED : u32 = 114 ; pub const BIO_R_UNSUPPORTED_METHOD : u32 = 115 ; pub const BIO_R_WRITE_TO_READ_ONLY_BIO : u32 = 116 ; pub const V_ASN1_UNIVERSAL : u32 = 0 ; pub const V_ASN1_APPLICATION : u32 = 64 ; pub const V_ASN1_CONTEXT_SPECIFIC : u32 = 128 ; pub const V_ASN1_PRIVATE : u32 = 192 ; pub const V_ASN1_CONSTRUCTED : u32 = 32 ; pub const V_ASN1_PRIMITIVE_TAG : u32 = 31 ; pub const V_ASN1_APP_CHOOSE : i32 = -2 ; pub const V_ASN1_OTHER : i32 = -3 ; pub const V_ASN1_ANY : i32 = -4 ; pub const V_ASN1_NEG : u32 = 256 ; pub const V_ASN1_MAX_UNIVERSAL : u32 = 255 ; pub const V_ASN1_UNDEF : i32 = -1 ; pub const V_ASN1_EOC : u32 = 0 ; pub const V_ASN1_BOOLEAN : u32 = 1 ; pub const V_ASN1_INTEGER : u32 = 2 ; pub const V_ASN1_NEG_INTEGER : u32 = 258 ; pub const V_ASN1_BIT_STRING : u32 = 3 ; pub const V_ASN1_OCTET_STRING : u32 = 4 ; pub const V_ASN1_NULL : u32 = 5 ; pub const V_ASN1_OBJECT : u32 = 6 ; pub const V_ASN1_OBJECT_DESCRIPTOR : u32 = 7 ; pub const V_ASN1_EXTERNAL : u32 = 8 ; pub const V_ASN1_REAL : u32 = 9 ; pub const V_ASN1_ENUMERATED : u32 = 10 ; pub const V_ASN1_NEG_ENUMERATED : u32 = 266 ; pub const V_ASN1_UTF8STRING : u32 = 12 ; pub const V_ASN1_SEQUENCE : u32 = 16 ; pub const V_ASN1_SET : u32 = 17 ; pub const V_ASN1_NUMERICSTRING : u32 = 18 ; pub const V_ASN1_PRINTABLESTRING : u32 = 19 ; pub const V_ASN1_T61STRING : u32 = 20 ; pub const V_ASN1_TELETEXSTRING : u32 = 20 ; pub const V_ASN1_VIDEOTEXSTRING : u32 = 21 ; pub const V_ASN1_IA5STRING : u32 = 22 ; pub const V_ASN1_UTCTIME : u32 = 23 ; pub const V_ASN1_GENERALIZEDTIME : u32 = 24 ; pub const V_ASN1_GRAPHICSTRING : u32 = 25 ; pub const V_ASN1_ISO64STRING : u32 = 26 ; pub const V_ASN1_VISIBLESTRING : u32 = 26 ; pub const V_ASN1_GENERALSTRING : u32 = 27 ; pub const V_ASN1_UNIVERSALSTRING : u32 = 28 ; pub const V_ASN1_BMPSTRING : u32 = 30 ; pub const B_ASN1_NUMERICSTRING : u32 = 1 ; pub const B_ASN1_PRINTABLESTRING : u32 = 2 ; pub const B_ASN1_T61STRING : u32 = 4 ; pub const B_ASN1_TELETEXSTRING : u32 = 4 ; pub const B_ASN1_VIDEOTEXSTRING : u32 = 8 ; pub const B_ASN1_IA5STRING : u32 = 16 ; pub const B_ASN1_GRAPHICSTRING : u32 = 32 ; pub const B_ASN1_ISO64STRING : u32 = 64 ; pub const B_ASN1_VISIBLESTRING : u32 = 64 ; pub const B_ASN1_GENERALSTRING : u32 = 128 ; pub const B_ASN1_UNIVERSALSTRING : u32 = 256 ; pub const B_ASN1_OCTET_STRING : u32 = 512 ; pub const B_ASN1_BIT_STRING : u32 = 1024 ; pub const B_ASN1_BMPSTRING : u32 = 2048 ; pub const B_ASN1_UNKNOWN : u32 = 4096 ; pub const B_ASN1_UTF8STRING : u32 = 8192 ; pub const B_ASN1_UTCTIME : u32 = 16384 ; pub const B_ASN1_GENERALIZEDTIME : u32 = 32768 ; pub const B_ASN1_SEQUENCE : u32 = 65536 ; pub const ASN1_OBJECT_FLAG_DYNAMIC : u32 = 1 ; pub const ASN1_OBJECT_FLAG_DYNAMIC_STRINGS : u32 = 4 ; pub const ASN1_OBJECT_FLAG_DYNAMIC_DATA : u32 = 8 ; pub const ASN1_STRING_FLAG_BITS_LEFT : u32 = 8 ; pub const ASN1_STRING_FLAG_NDEF : u32 = 16 ; pub const ASN1_STRING_FLAG_MSTRING : u32 = 64 ; pub const ASN1_STRFLGS_ESC_2253 : u32 = 1 ; pub const ASN1_STRFLGS_ESC_CTRL : u32 = 2 ; pub const ASN1_STRFLGS_ESC_MSB : u32 = 4 ; pub const ASN1_STRFLGS_ESC_QUOTE : u32 = 8 ; pub const ASN1_STRFLGS_UTF8_CONVERT : u32 = 16 ; pub const ASN1_STRFLGS_IGNORE_TYPE : u32 = 32 ; pub const ASN1_STRFLGS_SHOW_TYPE : u32 = 64 ; pub const ASN1_STRFLGS_DUMP_ALL : u32 = 128 ; pub const ASN1_STRFLGS_DUMP_UNKNOWN : u32 = 256 ; pub const ASN1_STRFLGS_DUMP_DER : u32 = 512 ; pub const ASN1_STRFLGS_RFC2253 : u32 = 791 ; pub const B_ASN1_TIME : u32 = 49152 ; pub const B_ASN1_PRINTABLE : u32 = 81175 ; pub const B_ASN1_DIRECTORYSTRING : u32 = 10502 ; pub const B_ASN1_DISPLAYTEXT : u32 = 10320 ; pub const ASN1_R_ASN1_LENGTH_MISMATCH : u32 = 100 ; pub const ASN1_R_AUX_ERROR : u32 = 101 ; pub const ASN1_R_BAD_GET_ASN1_OBJECT_CALL : u32 = 102 ; pub const ASN1_R_BAD_OBJECT_HEADER : u32 = 103 ; pub const ASN1_R_BMPSTRING_IS_WRONG_LENGTH : u32 = 104 ; pub const ASN1_R_BN_LIB : u32 = 105 ; pub const ASN1_R_BOOLEAN_IS_WRONG_LENGTH : u32 = 106 ; pub const ASN1_R_BUFFER_TOO_SMALL : u32 = 107 ; pub const ASN1_R_CONTEXT_NOT_INITIALISED : u32 = 108 ; pub const ASN1_R_DECODE_ERROR : u32 = 109 ; pub const ASN1_R_DEPTH_EXCEEDED : u32 = 110 ; pub const ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED : u32 = 111 ; pub const ASN1_R_ENCODE_ERROR : u32 = 112 ; pub const ASN1_R_ERROR_GETTING_TIME : u32 = 113 ; pub const ASN1_R_EXPECTING_AN_ASN1_SEQUENCE : u32 = 114 ; pub const ASN1_R_EXPECTING_AN_INTEGER : u32 = 115 ; pub const ASN1_R_EXPECTING_AN_OBJECT : u32 = 116 ; pub const ASN1_R_EXPECTING_A_BOOLEAN : u32 = 117 ; pub const ASN1_R_EXPECTING_A_TIME : u32 = 118 ; pub const ASN1_R_EXPLICIT_LENGTH_MISMATCH : u32 = 119 ; pub const ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED : u32 = 120 ; pub const ASN1_R_FIELD_MISSING : u32 = 121 ; pub const ASN1_R_FIRST_NUM_TOO_LARGE : u32 = 122 ; pub const ASN1_R_HEADER_TOO_LONG : u32 = 123 ; pub const ASN1_R_ILLEGAL_BITSTRING_FORMAT : u32 = 124 ; pub const ASN1_R_ILLEGAL_BOOLEAN : u32 = 125 ; pub const ASN1_R_ILLEGAL_CHARACTERS : u32 = 126 ; pub const ASN1_R_ILLEGAL_FORMAT : u32 = 127 ; pub const ASN1_R_ILLEGAL_HEX : u32 = 128 ; pub const ASN1_R_ILLEGAL_IMPLICIT_TAG : u32 = 129 ; pub const ASN1_R_ILLEGAL_INTEGER : u32 = 130 ; pub const ASN1_R_ILLEGAL_NESTED_TAGGING : u32 = 131 ; pub const ASN1_R_ILLEGAL_NULL : u32 = 132 ; pub const ASN1_R_ILLEGAL_NULL_VALUE : u32 = 133 ; pub const ASN1_R_ILLEGAL_OBJECT : u32 = 134 ; pub const ASN1_R_ILLEGAL_OPTIONAL_ANY : u32 = 135 ; pub const ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE : u32 = 136 ; pub const ASN1_R_ILLEGAL_TAGGED_ANY : u32 = 137 ; pub const ASN1_R_ILLEGAL_TIME_VALUE : u32 = 138 ; pub const ASN1_R_INTEGER_NOT_ASCII_FORMAT : u32 = 139 ; pub const ASN1_R_INTEGER_TOO_LARGE_FOR_LONG : u32 = 140 ; pub const ASN1_R_INVALID_BIT_STRING_BITS_LEFT : u32 = 141 ; pub const ASN1_R_INVALID_BMPSTRING : u32 = 142 ; pub const ASN1_R_INVALID_DIGIT : u32 = 143 ; pub const ASN1_R_INVALID_MODIFIER : u32 = 144 ; pub const ASN1_R_INVALID_NUMBER : u32 = 145 ; pub const ASN1_R_INVALID_OBJECT_ENCODING : u32 = 146 ; pub const ASN1_R_INVALID_SEPARATOR : u32 = 147 ; pub const ASN1_R_INVALID_TIME_FORMAT : u32 = 148 ; pub const ASN1_R_INVALID_UNIVERSALSTRING : u32 = 149 ; pub const ASN1_R_INVALID_UTF8STRING : u32 = 150 ; pub const ASN1_R_LIST_ERROR : u32 = 151 ; pub const ASN1_R_MISSING_ASN1_EOS : u32 = 152 ; pub const ASN1_R_MISSING_EOC : u32 = 153 ; pub const ASN1_R_MISSING_SECOND_NUMBER : u32 = 154 ; pub const ASN1_R_MISSING_VALUE : u32 = 155 ; pub const ASN1_R_MSTRING_NOT_UNIVERSAL : u32 = 156 ; pub const ASN1_R_MSTRING_WRONG_TAG : u32 = 157 ; pub const ASN1_R_NESTED_ASN1_ERROR : u32 = 158 ; pub const ASN1_R_NESTED_ASN1_STRING : u32 = 159 ; pub const ASN1_R_NON_HEX_CHARACTERS : u32 = 160 ; pub const ASN1_R_NOT_ASCII_FORMAT : u32 = 161 ; pub const ASN1_R_NOT_ENOUGH_DATA : u32 = 162 ; pub const ASN1_R_NO_MATCHING_CHOICE_TYPE : u32 = 163 ; pub const ASN1_R_NULL_IS_WRONG_LENGTH : u32 = 164 ; pub const ASN1_R_OBJECT_NOT_ASCII_FORMAT : u32 = 165 ; pub const ASN1_R_ODD_NUMBER_OF_CHARS : u32 = 166 ; pub const ASN1_R_SECOND_NUMBER_TOO_LARGE : u32 = 167 ; pub const ASN1_R_SEQUENCE_LENGTH_MISMATCH : u32 = 168 ; pub const ASN1_R_SEQUENCE_NOT_CONSTRUCTED : u32 = 169 ; pub const ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG : u32 = 170 ; pub const ASN1_R_SHORT_LINE : u32 = 171 ; pub const ASN1_R_STREAMING_NOT_SUPPORTED : u32 = 172 ; pub const ASN1_R_STRING_TOO_LONG : u32 = 173 ; pub const ASN1_R_STRING_TOO_SHORT : u32 = 174 ; pub const ASN1_R_TAG_VALUE_TOO_HIGH : u32 = 175 ; pub const ASN1_R_TIME_NOT_ASCII_FORMAT : u32 = 176 ; pub const ASN1_R_TOO_LONG : u32 = 177 ; pub const ASN1_R_TYPE_NOT_CONSTRUCTED : u32 = 178 ; pub const ASN1_R_TYPE_NOT_PRIMITIVE : u32 = 179 ; pub const ASN1_R_UNEXPECTED_EOC : u32 = 180 ; pub const ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH : u32 = 181 ; pub const ASN1_R_UNKNOWN_FORMAT : u32 = 182 ; pub const ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM : u32 = 183 ; pub const ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM : u32 = 184 ; pub const ASN1_R_UNKNOWN_TAG : u32 = 185 ; pub const ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE : u32 = 186 ; pub const ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE : u32 = 187 ; pub const ASN1_R_UNSUPPORTED_TYPE : u32 = 188 ; pub const ASN1_R_WRONG_PUBLIC_KEY_TYPE : u32 = 189 ; pub const ASN1_R_WRONG_TAG : u32 = 190 ; pub const ASN1_R_WRONG_TYPE : u32 = 191 ; pub const ASN1_R_NESTED_TOO_DEEP : u32 = 192 ; pub const ASN1_TFLG_OPTIONAL : u32 = 1 ; pub const ASN1_TFLG_SET_OF : u32 = 2 ; pub const ASN1_TFLG_SEQUENCE_OF : u32 = 4 ; pub const ASN1_TFLG_SET_ORDER : u32 = 6 ; pub const ASN1_TFLG_SK_MASK : u32 = 6 ; pub const ASN1_TFLG_IMPTAG : u32 = 8 ; pub const ASN1_TFLG_EXPTAG : u32 = 16 ; pub const ASN1_TFLG_TAG_MASK : u32 = 24 ; pub const ASN1_TFLG_UNIVERSAL : u32 = 0 ; pub const ASN1_TFLG_APPLICATION : u32 = 64 ; pub const ASN1_TFLG_CONTEXT : u32 = 128 ; pub const ASN1_TFLG_PRIVATE : u32 = 192 ; pub const ASN1_TFLG_TAG_CLASS : u32 = 192 ; pub const ASN1_TFLG_ADB_MASK : u32 = 768 ; pub const ASN1_TFLG_ADB_OID : u32 = 256 ; pub const ASN1_TFLG_ADB_INT : u32 = 512 ; pub const ASN1_TFLG_COMBINE : u32 = 1024 ; pub const ASN1_TFLG_NDEF : u32 = 2048 ; pub const ASN1_ITYPE_PRIMITIVE : u32 = 0 ; pub const ASN1_ITYPE_SEQUENCE : u32 = 1 ; pub const ASN1_ITYPE_CHOICE : u32 = 2 ; pub const ASN1_ITYPE_COMPAT : u32 = 3 ; pub const ASN1_ITYPE_EXTERN : u32 = 4 ; pub const ASN1_ITYPE_MSTRING : u32 = 5 ; pub const ASN1_ITYPE_NDEF_SEQUENCE : u32 = 6 ; pub const ASN1_AFLG_REFCOUNT : u32 = 1 ; pub const ASN1_AFLG_ENCODING : u32 = 2 ; pub const ASN1_AFLG_BROKEN : u32 = 4 ; pub const ASN1_OP_NEW_PRE : u32 = 0 ; pub const ASN1_OP_NEW_POST : u32 = 1 ; pub const ASN1_OP_FREE_PRE : u32 = 2 ; pub const ASN1_OP_FREE_POST : u32 = 3 ; pub const ASN1_OP_D2I_PRE : u32 = 4 ; pub const ASN1_OP_D2I_POST : u32 = 5 ; pub const ASN1_OP_I2D_PRE : u32 = 6 ; pub const ASN1_OP_I2D_POST : u32 = 7 ; pub const ASN1_OP_PRINT_PRE : u32 = 8 ; pub const ASN1_OP_PRINT_POST : u32 = 9 ; pub const ASN1_OP_STREAM_PRE : u32 = 10 ; pub const ASN1_OP_STREAM_POST : u32 = 11 ; pub const ASN1_OP_DETACHED_PRE : u32 = 12 ; pub const ASN1_OP_DETACHED_POST : u32 = 13 ; pub const CBS_ASN1_BOOLEAN : u32 = 1 ; pub const CBS_ASN1_INTEGER : u32 = 2 ; pub const CBS_ASN1_BITSTRING : u32 = 3 ; pub const CBS_ASN1_OCTETSTRING : u32 = 4 ; pub const CBS_ASN1_NULL : u32 = 5 ; pub const CBS_ASN1_OBJECT : u32 = 6 ; pub const CBS_ASN1_ENUMERATED : u32 = 10 ; pub const CBS_ASN1_UTF8STRING : u32 = 12 ; pub const CBS_ASN1_NUMERICSTRING : u32 = 18 ; pub const CBS_ASN1_PRINTABLESTRING : u32 = 19 ; pub const CBS_ASN1_T61STRING : u32 = 20 ; pub const CBS_ASN1_VIDEOTEXSTRING : u32 = 21 ; pub const CBS_ASN1_IA5STRING : u32 = 22 ; pub const CBS_ASN1_UTCTIME : u32 = 23 ; pub const CBS_ASN1_GENERALIZEDTIME : u32 = 24 ; pub const CBS_ASN1_GRAPHICSTRING : u32 = 25 ; pub const CBS_ASN1_VISIBLESTRING : u32 = 26 ; pub const CBS_ASN1_GENERALSTRING : u32 = 27 ; pub const CBS_ASN1_UNIVERSALSTRING : u32 = 28 ; pub const CBS_ASN1_BMPSTRING : u32 = 30 ; pub const CBS_ASN1_TAG_SHIFT : u32 = 24 ; pub const CBS_ASN1_CONSTRUCTED : u32 = 536870912 ; pub const CBS_ASN1_UNIVERSAL : u32 = 0 ; pub const CBS_ASN1_APPLICATION : u32 = 1073741824 ; pub const CBS_ASN1_CONTEXT_SPECIFIC : u32 = 2147483648 ; pub const CBS_ASN1_PRIVATE : u32 = 3221225472 ; pub const CBS_ASN1_CLASS_MASK : u32 = 3221225472 ; pub const CBS_ASN1_TAG_NUMBER_MASK : u32 = 536870911 ; pub const CAST_ENCRYPT : u32 = 1 ; pub const CAST_DECRYPT : u32 = 0 ; pub const CAST_BLOCK : u32 = 8 ; pub const CAST_KEY_LENGTH : u32 = 16 ; pub const EVP_CIPH_STREAM_CIPHER : u32 = 0 ; pub const EVP_CIPH_ECB_MODE : u32 = 1 ; pub const EVP_CIPH_CBC_MODE : u32 = 2 ; pub const EVP_CIPH_CFB_MODE : u32 = 3 ; pub const EVP_CIPH_OFB_MODE : u32 = 4 ; pub const EVP_CIPH_CTR_MODE : u32 = 5 ; pub const EVP_CIPH_GCM_MODE : u32 = 6 ; pub const EVP_CIPH_XTS_MODE : u32 = 7 ; pub const EVP_CIPH_VARIABLE_LENGTH : u32 = 64 ; pub const EVP_CIPH_ALWAYS_CALL_INIT : u32 = 128 ; pub const EVP_CIPH_CUSTOM_IV : u32 = 256 ; pub const EVP_CIPH_CTRL_INIT : u32 = 512 ; pub const EVP_CIPH_FLAG_CUSTOM_CIPHER : u32 = 1024 ; pub const EVP_CIPH_FLAG_AEAD_CIPHER : u32 = 2048 ; pub const EVP_CIPH_CUSTOM_COPY : u32 = 4096 ; pub const EVP_CIPH_CCM_MODE : i32 = -1 ; pub const EVP_CIPH_OCB_MODE : i32 = -2 ; pub const EVP_CIPH_WRAP_MODE : i32 = -3 ; pub const EVP_CIPHER_CTX_FLAG_WRAP_ALLOW : u32 = 0 ; pub const EVP_CIPH_NO_PADDING : u32 = 2048 ; pub const EVP_CTRL_INIT : u32 = 0 ; pub const EVP_CTRL_SET_KEY_LENGTH : u32 = 1 ; pub const EVP_CTRL_GET_RC2_KEY_BITS : u32 = 2 ; pub const EVP_CTRL_SET_RC2_KEY_BITS : u32 = 3 ; pub const EVP_CTRL_GET_RC5_ROUNDS : u32 = 4 ; pub const EVP_CTRL_SET_RC5_ROUNDS : u32 = 5 ; pub const EVP_CTRL_RAND_KEY : u32 = 6 ; pub const EVP_CTRL_PBE_PRF_NID : u32 = 7 ; pub const EVP_CTRL_COPY : u32 = 8 ; pub const EVP_CTRL_AEAD_SET_IVLEN : u32 = 9 ; pub const EVP_CTRL_AEAD_GET_TAG : u32 = 16 ; pub const EVP_CTRL_AEAD_SET_TAG : u32 = 17 ; pub const EVP_CTRL_AEAD_SET_IV_FIXED : u32 = 18 ; pub const EVP_CTRL_GCM_IV_GEN : u32 = 19 ; pub const EVP_CTRL_AEAD_SET_MAC_KEY : u32 = 23 ; pub const EVP_CTRL_GCM_SET_IV_INV : u32 = 24 ; pub const EVP_GCM_TLS_FIXED_IV_LEN : u32 = 4 ; pub const EVP_GCM_TLS_EXPLICIT_IV_LEN : u32 = 8 ; pub const EVP_GCM_TLS_TAG_LEN : u32 = 16 ; pub const EVP_CTRL_GCM_SET_IVLEN : u32 = 9 ; pub const EVP_CTRL_GCM_GET_TAG : u32 = 16 ; pub const EVP_CTRL_GCM_SET_TAG : u32 = 17 ; pub const EVP_CTRL_GCM_SET_IV_FIXED : u32 = 18 ; pub const EVP_MAX_KEY_LENGTH : u32 = 64 ; pub const EVP_MAX_IV_LENGTH : u32 = 16 ; pub const EVP_MAX_BLOCK_LENGTH : u32 = 32 ; pub const CIPHER_R_AES_KEY_SETUP_FAILED : u32 = 100 ; pub const CIPHER_R_BAD_DECRYPT : u32 = 101 ; pub const CIPHER_R_BAD_KEY_LENGTH : u32 = 102 ; pub const CIPHER_R_BUFFER_TOO_SMALL : u32 = 103 ; pub const CIPHER_R_CTRL_NOT_IMPLEMENTED : u32 = 104 ; pub const CIPHER_R_CTRL_OPERATION_NOT_IMPLEMENTED : u32 = 105 ; pub const CIPHER_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH : u32 = 106 ; pub const CIPHER_R_INITIALIZATION_ERROR : u32 = 107 ; pub const CIPHER_R_INPUT_NOT_INITIALIZED : u32 = 108 ; pub const CIPHER_R_INVALID_AD_SIZE : u32 = 109 ; pub const CIPHER_R_INVALID_KEY_LENGTH : u32 = 110 ; pub const CIPHER_R_INVALID_NONCE_SIZE : u32 = 111 ; pub const CIPHER_R_INVALID_OPERATION : u32 = 112 ; pub const CIPHER_R_IV_TOO_LARGE : u32 = 113 ; pub const CIPHER_R_NO_CIPHER_SET : u32 = 114 ; pub const CIPHER_R_OUTPUT_ALIASES_INPUT : u32 = 115 ; pub const CIPHER_R_TAG_TOO_LARGE : u32 = 116 ; pub const CIPHER_R_TOO_LARGE : u32 = 117 ; pub const CIPHER_R_UNSUPPORTED_AD_SIZE : u32 = 118 ; pub const CIPHER_R_UNSUPPORTED_INPUT_SIZE : u32 = 119 ; pub const CIPHER_R_UNSUPPORTED_KEY_SIZE : u32 = 120 ; pub const CIPHER_R_UNSUPPORTED_NONCE_SIZE : u32 = 121 ; pub const CIPHER_R_UNSUPPORTED_TAG_SIZE : u32 = 122 ; pub const CIPHER_R_WRONG_FINAL_BLOCK_LENGTH : u32 = 123 ; pub const CIPHER_R_NO_DIRECTION_SET : u32 = 124 ; pub const CIPHER_R_INVALID_NONCE : u32 = 125 ; pub const RAND_MAX : u32 = 2147483647 ; pub const OPENSSL_VERSION_TEXT : & 'static [ u8 ; 38usize ] = b"OpenSSL 1.1.0 (compatible; BoringSSL)\0" ; pub const OPENSSL_VERSION : u32 = 0 ; pub const OPENSSL_CFLAGS : u32 = 1 ; pub const OPENSSL_BUILT_ON : u32 = 2 ; pub const OPENSSL_PLATFORM : u32 = 3 ; pub const OPENSSL_DIR : u32 = 4 ; pub const SSLEAY_VERSION : u32 = 0 ; pub const SSLEAY_CFLAGS : u32 = 1 ; pub const SSLEAY_BUILT_ON : u32 = 2 ; pub const SSLEAY_PLATFORM : u32 = 3 ; pub const SSLEAY_DIR : u32 = 4 ; pub const OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS : u32 = 0 ; pub const OPENSSL_INIT_LOAD_CRYPTO_STRINGS : u32 = 0 ; pub const OPENSSL_INIT_ADD_ALL_CIPHERS : u32 = 0 ; pub const OPENSSL_INIT_ADD_ALL_DIGESTS : u32 = 0 ; pub const OPENSSL_INIT_NO_ADD_ALL_CIPHERS : u32 = 0 ; pub const OPENSSL_INIT_NO_ADD_ALL_DIGESTS : u32 = 0 ; pub const OPENSSL_INIT_LOAD_CONFIG : u32 = 0 ; pub const OPENSSL_INIT_NO_LOAD_CONFIG : u32 = 0 ; pub const X25519_PRIVATE_KEY_LEN : u32 = 32 ; pub const X25519_PUBLIC_VALUE_LEN : u32 = 32 ; pub const X25519_SHARED_KEY_LEN : u32 = 32 ; pub const ED25519_PRIVATE_KEY_LEN : u32 = 64 ; pub const ED25519_PUBLIC_KEY_LEN : u32 = 32 ; pub const ED25519_SIGNATURE_LEN : u32 = 64 ; pub const DES_ENCRYPT : u32 = 1 ; pub const DES_DECRYPT : u32 = 0 ; pub const DES_CBC_MODE : u32 = 0 ; pub const DES_PCBC_MODE : u32 = 1 ; pub const DH_GENERATOR_2 : u32 = 2 ; pub const DH_GENERATOR_5 : u32 = 5 ; pub const DH_CHECK_P_NOT_PRIME : u32 = 1 ; pub const DH_CHECK_P_NOT_SAFE_PRIME : u32 = 2 ; pub const DH_CHECK_UNABLE_TO_CHECK_GENERATOR : u32 = 4 ; pub const DH_CHECK_NOT_SUITABLE_GENERATOR : u32 = 8 ; pub const DH_CHECK_Q_NOT_PRIME : u32 = 16 ; pub const DH_CHECK_INVALID_Q_VALUE : u32 = 32 ; pub const DH_CHECK_INVALID_J_VALUE : u32 = 64 ; pub const DH_NOT_SUITABLE_GENERATOR : u32 = 8 ; pub const DH_UNABLE_TO_CHECK_GENERATOR : u32 = 4 ; pub const DH_CHECK_PUBKEY_TOO_SMALL : u32 = 1 ; pub const DH_CHECK_PUBKEY_TOO_LARGE : u32 = 2 ; pub const DH_CHECK_PUBKEY_INVALID : u32 = 4 ; pub const DH_R_BAD_GENERATOR : u32 = 100 ; pub const DH_R_INVALID_PUBKEY : u32 = 101 ; pub const DH_R_MODULUS_TOO_LARGE : u32 = 102 ; pub const DH_R_NO_PRIVATE_VALUE : u32 = 103 ; pub const DH_R_DECODE_ERROR : u32 = 104 ; pub const DH_R_ENCODE_ERROR : u32 = 105 ; pub const EVP_MAX_MD_SIZE : u32 = 64 ; pub const EVP_MAX_MD_BLOCK_SIZE : u32 = 128 ; pub const EVP_MD_FLAG_PKEY_DIGEST : u32 = 1 ; pub const EVP_MD_FLAG_DIGALGID_ABSENT : u32 = 2 ; pub const DIGEST_R_INPUT_NOT_INITIALIZED : u32 = 100 ; pub const DIGEST_R_DECODE_ERROR : u32 = 101 ; pub const DIGEST_R_UNKNOWN_HASH : u32 = 102 ; pub const DSA_R_BAD_Q_VALUE : u32 = 100 ; pub const DSA_R_MISSING_PARAMETERS : u32 = 101 ; pub const DSA_R_MODULUS_TOO_LARGE : u32 = 102 ; pub const DSA_R_NEED_NEW_SETUP_VALUES : u32 = 103 ; pub const DSA_R_BAD_VERSION : u32 = 104 ; pub const DSA_R_DECODE_ERROR : u32 = 105 ; pub const DSA_R_ENCODE_ERROR : u32 = 106 ; pub const OPENSSL_EC_NAMED_CURVE : u32 = 0 ; pub const EC_R_BUFFER_TOO_SMALL : u32 = 100 ; pub const EC_R_COORDINATES_OUT_OF_RANGE : u32 = 101 ; pub const EC_R_D2I_ECPKPARAMETERS_FAILURE : u32 = 102 ; pub const EC_R_EC_GROUP_NEW_BY_NAME_FAILURE : u32 = 103 ; pub const EC_R_GROUP2PKPARAMETERS_FAILURE : u32 = 104 ; pub const EC_R_I2D_ECPKPARAMETERS_FAILURE : u32 = 105 ; pub const EC_R_INCOMPATIBLE_OBJECTS : u32 = 106 ; pub const EC_R_INVALID_COMPRESSED_POINT : u32 = 107 ; pub const EC_R_INVALID_COMPRESSION_BIT : u32 = 108 ; pub const EC_R_INVALID_ENCODING : u32 = 109 ; pub const EC_R_INVALID_FIELD : u32 = 110 ; pub const EC_R_INVALID_FORM : u32 = 111 ; pub const EC_R_INVALID_GROUP_ORDER : u32 = 112 ; pub const EC_R_INVALID_PRIVATE_KEY : u32 = 113 ; pub const EC_R_MISSING_PARAMETERS : u32 = 114 ; pub const EC_R_MISSING_PRIVATE_KEY : u32 = 115 ; pub const EC_R_NON_NAMED_CURVE : u32 = 116 ; pub const EC_R_NOT_INITIALIZED : u32 = 117 ; pub const EC_R_PKPARAMETERS2GROUP_FAILURE : u32 = 118 ; pub const EC_R_POINT_AT_INFINITY : u32 = 119 ; pub const EC_R_POINT_IS_NOT_ON_CURVE : u32 = 120 ; pub const EC_R_SLOT_FULL : u32 = 121 ; pub const EC_R_UNDEFINED_GENERATOR : u32 = 122 ; pub const EC_R_UNKNOWN_GROUP : u32 = 123 ; pub const EC_R_UNKNOWN_ORDER : u32 = 124 ; pub const EC_R_WRONG_ORDER : u32 = 125 ; pub const EC_R_BIGNUM_OUT_OF_RANGE : u32 = 126 ; pub const EC_R_WRONG_CURVE_PARAMETERS : u32 = 127 ; pub const EC_R_DECODE_ERROR : u32 = 128 ; pub const EC_R_ENCODE_ERROR : u32 = 129 ; pub const EC_R_GROUP_MISMATCH : u32 = 130 ; pub const EC_R_INVALID_COFACTOR : u32 = 131 ; pub const EC_R_PUBLIC_KEY_VALIDATION_FAILED : u32 = 132 ; pub const EC_R_INVALID_SCALAR : u32 = 133 ; pub const EC_PKEY_NO_PARAMETERS : u32 = 1 ; pub const EC_PKEY_NO_PUBKEY : u32 = 2 ; pub const ECDSA_FLAG_OPAQUE : u32 = 1 ; pub const ECDH_R_KDF_FAILED : u32 = 100 ; pub const ECDH_R_NO_PRIVATE_VALUE : u32 = 101 ; pub const ECDH_R_POINT_ARITHMETIC_FAILURE : u32 = 102 ; pub const ECDH_R_UNKNOWN_DIGEST_LENGTH : u32 = 103 ; pub const ECDSA_R_BAD_SIGNATURE : u32 = 100 ; pub const ECDSA_R_MISSING_PARAMETERS : u32 = 101 ; pub const ECDSA_R_NEED_NEW_SETUP_VALUES : u32 = 102 ; pub const ECDSA_R_NOT_IMPLEMENTED : u32 = 103 ; pub const ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED : u32 = 104 ; pub const ECDSA_R_ENCODE_ERROR : u32 = 105 ; pub const NID_undef : u32 = 0 ; pub const NID_rsadsi : u32 = 1 ; pub const NID_pkcs : u32 = 2 ; pub const NID_md2 : u32 = 3 ; pub const NID_md5 : u32 = 4 ; pub const NID_rc4 : u32 = 5 ; pub const NID_rsaEncryption : u32 = 6 ; pub const NID_md2WithRSAEncryption : u32 = 7 ; pub const NID_md5WithRSAEncryption : u32 = 8 ; pub const NID_pbeWithMD2AndDES_CBC : u32 = 9 ; pub const NID_pbeWithMD5AndDES_CBC : u32 = 10 ; pub const NID_X500 : u32 = 11 ; pub const NID_X509 : u32 = 12 ; pub const NID_commonName : u32 = 13 ; pub const NID_countryName : u32 = 14 ; pub const NID_localityName : u32 = 15 ; pub const NID_stateOrProvinceName : u32 = 16 ; pub const NID_organizationName : u32 = 17 ; pub const NID_organizationalUnitName : u32 = 18 ; pub const NID_rsa : u32 = 19 ; pub const NID_pkcs7 : u32 = 20 ; pub const NID_pkcs7_data : u32 = 21 ; pub const NID_pkcs7_signed : u32 = 22 ; pub const NID_pkcs7_enveloped : u32 = 23 ; pub const NID_pkcs7_signedAndEnveloped : u32 = 24 ; pub const NID_pkcs7_digest : u32 = 25 ; pub const NID_pkcs7_encrypted : u32 = 26 ; pub const NID_pkcs3 : u32 = 27 ; pub const NID_dhKeyAgreement : u32 = 28 ; pub const NID_des_ecb : u32 = 29 ; pub const NID_des_cfb64 : u32 = 30 ; pub const NID_des_cbc : u32 = 31 ; pub const NID_des_ede_ecb : u32 = 32 ; pub const NID_des_ede3_ecb : u32 = 33 ; pub const NID_idea_cbc : u32 = 34 ; pub const NID_idea_cfb64 : u32 = 35 ; pub const NID_idea_ecb : u32 = 36 ; pub const NID_rc2_cbc : u32 = 37 ; pub const NID_rc2_ecb : u32 = 38 ; pub const NID_rc2_cfb64 : u32 = 39 ; pub const NID_rc2_ofb64 : u32 = 40 ; pub const NID_sha : u32 = 41 ; pub const NID_shaWithRSAEncryption : u32 = 42 ; pub const NID_des_ede_cbc : u32 = 43 ; pub const NID_des_ede3_cbc : u32 = 44 ; pub const NID_des_ofb64 : u32 = 45 ; pub const NID_idea_ofb64 : u32 = 46 ; pub const NID_pkcs9 : u32 = 47 ; pub const NID_pkcs9_emailAddress : u32 = 48 ; pub const NID_pkcs9_unstructuredName : u32 = 49 ; pub const NID_pkcs9_contentType : u32 = 50 ; pub const NID_pkcs9_messageDigest : u32 = 51 ; pub const NID_pkcs9_signingTime : u32 = 52 ; pub const NID_pkcs9_countersignature : u32 = 53 ; pub const NID_pkcs9_challengePassword : u32 = 54 ; pub const NID_pkcs9_unstructuredAddress : u32 = 55 ; pub const NID_pkcs9_extCertAttributes : u32 = 56 ; pub const NID_netscape : u32 = 57 ; pub const NID_netscape_cert_extension : u32 = 58 ; pub const NID_netscape_data_type : u32 = 59 ; pub const NID_des_ede_cfb64 : u32 = 60 ; pub const NID_des_ede3_cfb64 : u32 = 61 ; pub const NID_des_ede_ofb64 : u32 = 62 ; pub const NID_des_ede3_ofb64 : u32 = 63 ; pub const NID_sha1 : u32 = 64 ; pub const NID_sha1WithRSAEncryption : u32 = 65 ; pub const NID_dsaWithSHA : u32 = 66 ; pub const NID_dsa_2 : u32 = 67 ; pub const NID_pbeWithSHA1AndRC2_CBC : u32 = 68 ; pub const NID_id_pbkdf2 : u32 = 69 ; pub const NID_dsaWithSHA1_2 : u32 = 70 ; pub const NID_netscape_cert_type : u32 = 71 ; pub const NID_netscape_base_url : u32 = 72 ; pub const NID_netscape_revocation_url : u32 = 73 ; pub const NID_netscape_ca_revocation_url : u32 = 74 ; pub const NID_netscape_renewal_url : u32 = 75 ; pub const NID_netscape_ca_policy_url : u32 = 76 ; pub const NID_netscape_ssl_server_name : u32 = 77 ; pub const NID_netscape_comment : u32 = 78 ; pub const NID_netscape_cert_sequence : u32 = 79 ; pub const NID_desx_cbc : u32 = 80 ; pub const NID_id_ce : u32 = 81 ; pub const NID_subject_key_identifier : u32 = 82 ; pub const NID_key_usage : u32 = 83 ; pub const NID_private_key_usage_period : u32 = 84 ; pub const NID_subject_alt_name : u32 = 85 ; pub const NID_issuer_alt_name : u32 = 86 ; pub const NID_basic_constraints : u32 = 87 ; pub const NID_crl_number : u32 = 88 ; pub const NID_certificate_policies : u32 = 89 ; pub const NID_authority_key_identifier : u32 = 90 ; pub const NID_bf_cbc : u32 = 91 ; pub const NID_bf_ecb : u32 = 92 ; pub const NID_bf_cfb64 : u32 = 93 ; pub const NID_bf_ofb64 : u32 = 94 ; pub const NID_mdc2 : u32 = 95 ; pub const NID_mdc2WithRSA : u32 = 96 ; pub const NID_rc4_40 : u32 = 97 ; pub const NID_rc2_40_cbc : u32 = 98 ; pub const NID_givenName : u32 = 99 ; pub const NID_surname : u32 = 100 ; pub const NID_initials : u32 = 101 ; pub const NID_crl_distribution_points : u32 = 103 ; pub const NID_md5WithRSA : u32 = 104 ; pub const NID_serialNumber : u32 = 105 ; pub const NID_title : u32 = 106 ; pub const NID_description : u32 = 107 ; pub const NID_cast5_cbc : u32 = 108 ; pub const NID_cast5_ecb : u32 = 109 ; pub const NID_cast5_cfb64 : u32 = 110 ; pub const NID_cast5_ofb64 : u32 = 111 ; pub const NID_pbeWithMD5AndCast5_CBC : u32 = 112 ; pub const NID_dsaWithSHA1 : u32 = 113 ; pub const NID_md5_sha1 : u32 = 114 ; pub const NID_sha1WithRSA : u32 = 115 ; pub const NID_dsa : u32 = 116 ; pub const NID_ripemd160 : u32 = 117 ; pub const NID_ripemd160WithRSA : u32 = 119 ; pub const NID_rc5_cbc : u32 = 120 ; pub const NID_rc5_ecb : u32 = 121 ; pub const NID_rc5_cfb64 : u32 = 122 ; pub const NID_rc5_ofb64 : u32 = 123 ; pub const NID_zlib_compression : u32 = 125 ; pub const NID_ext_key_usage : u32 = 126 ; pub const NID_id_pkix : u32 = 127 ; pub const NID_id_kp : u32 = 128 ; pub const NID_server_auth : u32 = 129 ; pub const NID_client_auth : u32 = 130 ; pub const NID_code_sign : u32 = 131 ; pub const NID_email_protect : u32 = 132 ; pub const NID_time_stamp : u32 = 133 ; pub const NID_ms_code_ind : u32 = 134 ; pub const NID_ms_code_com : u32 = 135 ; pub const NID_ms_ctl_sign : u32 = 136 ; pub const NID_ms_sgc : u32 = 137 ; pub const NID_ms_efs : u32 = 138 ; pub const NID_ns_sgc : u32 = 139 ; pub const NID_delta_crl : u32 = 140 ; pub const NID_crl_reason : u32 = 141 ; pub const NID_invalidity_date : u32 = 142 ; pub const NID_sxnet : u32 = 143 ; pub const NID_pbe_WithSHA1And128BitRC4 : u32 = 144 ; pub const NID_pbe_WithSHA1And40BitRC4 : u32 = 145 ; pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC : u32 = 146 ; pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC : u32 = 147 ; pub const NID_pbe_WithSHA1And128BitRC2_CBC : u32 = 148 ; pub const NID_pbe_WithSHA1And40BitRC2_CBC : u32 = 149 ; pub const NID_keyBag : u32 = 150 ; pub const NID_pkcs8ShroudedKeyBag : u32 = 151 ; pub const NID_certBag : u32 = 152 ; pub const NID_crlBag : u32 = 153 ; pub const NID_secretBag : u32 = 154 ; pub const NID_safeContentsBag : u32 = 155 ; pub const NID_friendlyName : u32 = 156 ; pub const NID_localKeyID : u32 = 157 ; pub const NID_x509Certificate : u32 = 158 ; pub const NID_sdsiCertificate : u32 = 159 ; pub const NID_x509Crl : u32 = 160 ; pub const NID_pbes2 : u32 = 161 ; pub const NID_pbmac1 : u32 = 162 ; pub const NID_hmacWithSHA1 : u32 = 163 ; pub const NID_id_qt_cps : u32 = 164 ; pub const NID_id_qt_unotice : u32 = 165 ; pub const NID_rc2_64_cbc : u32 = 166 ; pub const NID_SMIMECapabilities : u32 = 167 ; pub const NID_pbeWithMD2AndRC2_CBC : u32 = 168 ; pub const NID_pbeWithMD5AndRC2_CBC : u32 = 169 ; pub const NID_pbeWithSHA1AndDES_CBC : u32 = 170 ; pub const NID_ms_ext_req : u32 = 171 ; pub const NID_ext_req : u32 = 172 ; pub const NID_name : u32 = 173 ; pub const NID_dnQualifier : u32 = 174 ; pub const NID_id_pe : u32 = 175 ; pub const NID_id_ad : u32 = 176 ; pub const NID_info_access : u32 = 177 ; pub const NID_ad_OCSP : u32 = 178 ; pub const NID_ad_ca_issuers : u32 = 179 ; pub const NID_OCSP_sign : u32 = 180 ; pub const NID_iso : u32 = 181 ; pub const NID_member_body : u32 = 182 ; pub const NID_ISO_US : u32 = 183 ; pub const NID_X9_57 : u32 = 184 ; pub const NID_X9cm : u32 = 185 ; pub const NID_pkcs1 : u32 = 186 ; pub const NID_pkcs5 : u32 = 187 ; pub const NID_SMIME : u32 = 188 ; pub const NID_id_smime_mod : u32 = 189 ; pub const NID_id_smime_ct : u32 = 190 ; pub const NID_id_smime_aa : u32 = 191 ; pub const NID_id_smime_alg : u32 = 192 ; pub const NID_id_smime_cd : u32 = 193 ; pub const NID_id_smime_spq : u32 = 194 ; pub const NID_id_smime_cti : u32 = 195 ; pub const NID_id_smime_mod_cms : u32 = 196 ; pub const NID_id_smime_mod_ess : u32 = 197 ; pub const NID_id_smime_mod_oid : u32 = 198 ; pub const NID_id_smime_mod_msg_v3 : u32 = 199 ; pub const NID_id_smime_mod_ets_eSignature_88 : u32 = 200 ; pub const NID_id_smime_mod_ets_eSignature_97 : u32 = 201 ; pub const NID_id_smime_mod_ets_eSigPolicy_88 : u32 = 202 ; pub const NID_id_smime_mod_ets_eSigPolicy_97 : u32 = 203 ; pub const NID_id_smime_ct_receipt : u32 = 204 ; pub const NID_id_smime_ct_authData : u32 = 205 ; pub const NID_id_smime_ct_publishCert : u32 = 206 ; pub const NID_id_smime_ct_TSTInfo : u32 = 207 ; pub const NID_id_smime_ct_TDTInfo : u32 = 208 ; pub const NID_id_smime_ct_contentInfo : u32 = 209 ; pub const NID_id_smime_ct_DVCSRequestData : u32 = 210 ; pub const NID_id_smime_ct_DVCSResponseData : u32 = 211 ; pub const NID_id_smime_aa_receiptRequest : u32 = 212 ; pub const NID_id_smime_aa_securityLabel : u32 = 213 ; pub const NID_id_smime_aa_mlExpandHistory : u32 = 214 ; pub const NID_id_smime_aa_contentHint : u32 = 215 ; pub const NID_id_smime_aa_msgSigDigest : u32 = 216 ; pub const NID_id_smime_aa_encapContentType : u32 = 217 ; pub const NID_id_smime_aa_contentIdentifier : u32 = 218 ; pub const NID_id_smime_aa_macValue : u32 = 219 ; pub const NID_id_smime_aa_equivalentLabels : u32 = 220 ; pub const NID_id_smime_aa_contentReference : u32 = 221 ; pub const NID_id_smime_aa_encrypKeyPref : u32 = 222 ; pub const NID_id_smime_aa_signingCertificate : u32 = 223 ; pub const NID_id_smime_aa_smimeEncryptCerts : u32 = 224 ; pub const NID_id_smime_aa_timeStampToken : u32 = 225 ; pub const NID_id_smime_aa_ets_sigPolicyId : u32 = 226 ; pub const NID_id_smime_aa_ets_commitmentType : u32 = 227 ; pub const NID_id_smime_aa_ets_signerLocation : u32 = 228 ; pub const NID_id_smime_aa_ets_signerAttr : u32 = 229 ; pub const NID_id_smime_aa_ets_otherSigCert : u32 = 230 ; pub const NID_id_smime_aa_ets_contentTimestamp : u32 = 231 ; pub const NID_id_smime_aa_ets_CertificateRefs : u32 = 232 ; pub const NID_id_smime_aa_ets_RevocationRefs : u32 = 233 ; pub const NID_id_smime_aa_ets_certValues : u32 = 234 ; pub const NID_id_smime_aa_ets_revocationValues : u32 = 235 ; pub const NID_id_smime_aa_ets_escTimeStamp : u32 = 236 ; pub const NID_id_smime_aa_ets_certCRLTimestamp : u32 = 237 ; pub const NID_id_smime_aa_ets_archiveTimeStamp : u32 = 238 ; pub const NID_id_smime_aa_signatureType : u32 = 239 ; pub const NID_id_smime_aa_dvcs_dvc : u32 = 240 ; pub const NID_id_smime_alg_ESDHwith3DES : u32 = 241 ; pub const NID_id_smime_alg_ESDHwithRC2 : u32 = 242 ; pub const NID_id_smime_alg_3DESwrap : u32 = 243 ; pub const NID_id_smime_alg_RC2wrap : u32 = 244 ; pub const NID_id_smime_alg_ESDH : u32 = 245 ; pub const NID_id_smime_alg_CMS3DESwrap : u32 = 246 ; pub const NID_id_smime_alg_CMSRC2wrap : u32 = 247 ; pub const NID_id_smime_cd_ldap : u32 = 248 ; pub const NID_id_smime_spq_ets_sqt_uri : u32 = 249 ; pub const NID_id_smime_spq_ets_sqt_unotice : u32 = 250 ; pub const NID_id_smime_cti_ets_proofOfOrigin : u32 = 251 ; pub const NID_id_smime_cti_ets_proofOfReceipt : u32 = 252 ; pub const NID_id_smime_cti_ets_proofOfDelivery : u32 = 253 ; pub const NID_id_smime_cti_ets_proofOfSender : u32 = 254 ; pub const NID_id_smime_cti_ets_proofOfApproval : u32 = 255 ; pub const NID_id_smime_cti_ets_proofOfCreation : u32 = 256 ; pub const NID_md4 : u32 = 257 ; pub const NID_id_pkix_mod : u32 = 258 ; pub const NID_id_qt : u32 = 259 ; pub const NID_id_it : u32 = 260 ; pub const NID_id_pkip : u32 = 261 ; pub const NID_id_alg : u32 = 262 ; pub const NID_id_cmc : u32 = 263 ; pub const NID_id_on : u32 = 264 ; pub const NID_id_pda : u32 = 265 ; pub const NID_id_aca : u32 = 266 ; pub const NID_id_qcs : u32 = 267 ; pub const NID_id_cct : u32 = 268 ; pub const NID_id_pkix1_explicit_88 : u32 = 269 ; pub const NID_id_pkix1_implicit_88 : u32 = 270 ; pub const NID_id_pkix1_explicit_93 : u32 = 271 ; pub const NID_id_pkix1_implicit_93 : u32 = 272 ; pub const NID_id_mod_crmf : u32 = 273 ; pub const NID_id_mod_cmc : u32 = 274 ; pub const NID_id_mod_kea_profile_88 : u32 = 275 ; pub const NID_id_mod_kea_profile_93 : u32 = 276 ; pub const NID_id_mod_cmp : u32 = 277 ; pub const NID_id_mod_qualified_cert_88 : u32 = 278 ; pub const NID_id_mod_qualified_cert_93 : u32 = 279 ; pub const NID_id_mod_attribute_cert : u32 = 280 ; pub const NID_id_mod_timestamp_protocol : u32 = 281 ; pub const NID_id_mod_ocsp : u32 = 282 ; pub const NID_id_mod_dvcs : u32 = 283 ; pub const NID_id_mod_cmp2000 : u32 = 284 ; pub const NID_biometricInfo : u32 = 285 ; pub const NID_qcStatements : u32 = 286 ; pub const NID_ac_auditEntity : u32 = 287 ; pub const NID_ac_targeting : u32 = 288 ; pub const NID_aaControls : u32 = 289 ; pub const NID_sbgp_ipAddrBlock : u32 = 290 ; pub const NID_sbgp_autonomousSysNum : u32 = 291 ; pub const NID_sbgp_routerIdentifier : u32 = 292 ; pub const NID_textNotice : u32 = 293 ; pub const NID_ipsecEndSystem : u32 = 294 ; pub const NID_ipsecTunnel : u32 = 295 ; pub const NID_ipsecUser : u32 = 296 ; pub const NID_dvcs : u32 = 297 ; pub const NID_id_it_caProtEncCert : u32 = 298 ; pub const NID_id_it_signKeyPairTypes : u32 = 299 ; pub const NID_id_it_encKeyPairTypes : u32 = 300 ; pub const NID_id_it_preferredSymmAlg : u32 = 301 ; pub const NID_id_it_caKeyUpdateInfo : u32 = 302 ; pub const NID_id_it_currentCRL : u32 = 303 ; pub const NID_id_it_unsupportedOIDs : u32 = 304 ; pub const NID_id_it_subscriptionRequest : u32 = 305 ; pub const NID_id_it_subscriptionResponse : u32 = 306 ; pub const NID_id_it_keyPairParamReq : u32 = 307 ; pub const NID_id_it_keyPairParamRep : u32 = 308 ; pub const NID_id_it_revPassphrase : u32 = 309 ; pub const NID_id_it_implicitConfirm : u32 = 310 ; pub const NID_id_it_confirmWaitTime : u32 = 311 ; pub const NID_id_it_origPKIMessage : u32 = 312 ; pub const NID_id_regCtrl : u32 = 313 ; pub const NID_id_regInfo : u32 = 314 ; pub const NID_id_regCtrl_regToken : u32 = 315 ; pub const NID_id_regCtrl_authenticator : u32 = 316 ; pub const NID_id_regCtrl_pkiPublicationInfo : u32 = 317 ; pub const NID_id_regCtrl_pkiArchiveOptions : u32 = 318 ; pub const NID_id_regCtrl_oldCertID : u32 = 319 ; pub const NID_id_regCtrl_protocolEncrKey : u32 = 320 ; pub const NID_id_regInfo_utf8Pairs : u32 = 321 ; pub const NID_id_regInfo_certReq : u32 = 322 ; pub const NID_id_alg_des40 : u32 = 323 ; pub const NID_id_alg_noSignature : u32 = 324 ; pub const NID_id_alg_dh_sig_hmac_sha1 : u32 = 325 ; pub const NID_id_alg_dh_pop : u32 = 326 ; pub const NID_id_cmc_statusInfo : u32 = 327 ; pub const NID_id_cmc_identification : u32 = 328 ; pub const NID_id_cmc_identityProof : u32 = 329 ; pub const NID_id_cmc_dataReturn : u32 = 330 ; pub const NID_id_cmc_transactionId : u32 = 331 ; pub const NID_id_cmc_senderNonce : u32 = 332 ; pub const NID_id_cmc_recipientNonce : u32 = 333 ; pub const NID_id_cmc_addExtensions : u32 = 334 ; pub const NID_id_cmc_encryptedPOP : u32 = 335 ; pub const NID_id_cmc_decryptedPOP : u32 = 336 ; pub const NID_id_cmc_lraPOPWitness : u32 = 337 ; pub const NID_id_cmc_getCert : u32 = 338 ; pub const NID_id_cmc_getCRL : u32 = 339 ; pub const NID_id_cmc_revokeRequest : u32 = 340 ; pub const NID_id_cmc_regInfo : u32 = 341 ; pub const NID_id_cmc_responseInfo : u32 = 342 ; pub const NID_id_cmc_queryPending : u32 = 343 ; pub const NID_id_cmc_popLinkRandom : u32 = 344 ; pub const NID_id_cmc_popLinkWitness : u32 = 345 ; pub const NID_id_cmc_confirmCertAcceptance : u32 = 346 ; pub const NID_id_on_personalData : u32 = 347 ; pub const NID_id_pda_dateOfBirth : u32 = 348 ; pub const NID_id_pda_placeOfBirth : u32 = 349 ; pub const NID_id_pda_gender : u32 = 351 ; pub const NID_id_pda_countryOfCitizenship : u32 = 352 ; pub const NID_id_pda_countryOfResidence : u32 = 353 ; pub const NID_id_aca_authenticationInfo : u32 = 354 ; pub const NID_id_aca_accessIdentity : u32 = 355 ; pub const NID_id_aca_chargingIdentity : u32 = 356 ; pub const NID_id_aca_group : u32 = 357 ; pub const NID_id_aca_role : u32 = 358 ; pub const NID_id_qcs_pkixQCSyntax_v1 : u32 = 359 ; pub const NID_id_cct_crs : u32 = 360 ; pub const NID_id_cct_PKIData : u32 = 361 ; pub const NID_id_cct_PKIResponse : u32 = 362 ; pub const NID_ad_timeStamping : u32 = 363 ; pub const NID_ad_dvcs : u32 = 364 ; pub const NID_id_pkix_OCSP_basic : u32 = 365 ; pub const NID_id_pkix_OCSP_Nonce : u32 = 366 ; pub const NID_id_pkix_OCSP_CrlID : u32 = 367 ; pub const NID_id_pkix_OCSP_acceptableResponses : u32 = 368 ; pub const NID_id_pkix_OCSP_noCheck : u32 = 369 ; pub const NID_id_pkix_OCSP_archiveCutoff : u32 = 370 ; pub const NID_id_pkix_OCSP_serviceLocator : u32 = 371 ; pub const NID_id_pkix_OCSP_extendedStatus : u32 = 372 ; pub const NID_id_pkix_OCSP_valid : u32 = 373 ; pub const NID_id_pkix_OCSP_path : u32 = 374 ; pub const NID_id_pkix_OCSP_trustRoot : u32 = 375 ; pub const NID_algorithm : u32 = 376 ; pub const NID_rsaSignature : u32 = 377 ; pub const NID_X500algorithms : u32 = 378 ; pub const NID_org : u32 = 379 ; pub const NID_dod : u32 = 380 ; pub const NID_iana : u32 = 381 ; pub const NID_Directory : u32 = 382 ; pub const NID_Management : u32 = 383 ; pub const NID_Experimental : u32 = 384 ; pub const NID_Private : u32 = 385 ; pub const NID_Security : u32 = 386 ; pub const NID_SNMPv2 : u32 = 387 ; pub const NID_Mail : u32 = 388 ; pub const NID_Enterprises : u32 = 389 ; pub const NID_dcObject : u32 = 390 ; pub const NID_domainComponent : u32 = 391 ; pub const NID_Domain : u32 = 392 ; pub const NID_selected_attribute_types : u32 = 394 ; pub const NID_clearance : u32 = 395 ; pub const NID_md4WithRSAEncryption : u32 = 396 ; pub const NID_ac_proxying : u32 = 397 ; pub const NID_sinfo_access : u32 = 398 ; pub const NID_id_aca_encAttrs : u32 = 399 ; pub const NID_role : u32 = 400 ; pub const NID_policy_constraints : u32 = 401 ; pub const NID_target_information : u32 = 402 ; pub const NID_no_rev_avail : u32 = 403 ; pub const NID_ansi_X9_62 : u32 = 405 ; pub const NID_X9_62_prime_field : u32 = 406 ; pub const NID_X9_62_characteristic_two_field : u32 = 407 ; pub const NID_X9_62_id_ecPublicKey : u32 = 408 ; pub const NID_X9_62_prime192v1 : u32 = 409 ; pub const NID_X9_62_prime192v2 : u32 = 410 ; pub const NID_X9_62_prime192v3 : u32 = 411 ; pub const NID_X9_62_prime239v1 : u32 = 412 ; pub const NID_X9_62_prime239v2 : u32 = 413 ; pub const NID_X9_62_prime239v3 : u32 = 414 ; pub const NID_X9_62_prime256v1 : u32 = 415 ; pub const NID_ecdsa_with_SHA1 : u32 = 416 ; pub const NID_ms_csp_name : u32 = 417 ; pub const NID_aes_128_ecb : u32 = 418 ; pub const NID_aes_128_cbc : u32 = 419 ; pub const NID_aes_128_ofb128 : u32 = 420 ; pub const NID_aes_128_cfb128 : u32 = 421 ; pub const NID_aes_192_ecb : u32 = 422 ; pub const NID_aes_192_cbc : u32 = 423 ; pub const NID_aes_192_ofb128 : u32 = 424 ; pub const NID_aes_192_cfb128 : u32 = 425 ; pub const NID_aes_256_ecb : u32 = 426 ; pub const NID_aes_256_cbc : u32 = 427 ; pub const NID_aes_256_ofb128 : u32 = 428 ; pub const NID_aes_256_cfb128 : u32 = 429 ; pub const NID_hold_instruction_code : u32 = 430 ; pub const NID_hold_instruction_none : u32 = 431 ; pub const NID_hold_instruction_call_issuer : u32 = 432 ; pub const NID_hold_instruction_reject : u32 = 433 ; pub const NID_data : u32 = 434 ; pub const NID_pss : u32 = 435 ; pub const NID_ucl : u32 = 436 ; pub const NID_pilot : u32 = 437 ; pub const NID_pilotAttributeType : u32 = 438 ; pub const NID_pilotAttributeSyntax : u32 = 439 ; pub const NID_pilotObjectClass : u32 = 440 ; pub const NID_pilotGroups : u32 = 441 ; pub const NID_iA5StringSyntax : u32 = 442 ; pub const NID_caseIgnoreIA5StringSyntax : u32 = 443 ; pub const NID_pilotObject : u32 = 444 ; pub const NID_pilotPerson : u32 = 445 ; pub const NID_account : u32 = 446 ; pub const NID_document : u32 = 447 ; pub const NID_room : u32 = 448 ; pub const NID_documentSeries : u32 = 449 ; pub const NID_rFC822localPart : u32 = 450 ; pub const NID_dNSDomain : u32 = 451 ; pub const NID_domainRelatedObject : u32 = 452 ; pub const NID_friendlyCountry : u32 = 453 ; pub const NID_simpleSecurityObject : u32 = 454 ; pub const NID_pilotOrganization : u32 = 455 ; pub const NID_pilotDSA : u32 = 456 ; pub const NID_qualityLabelledData : u32 = 457 ; pub const NID_userId : u32 = 458 ; pub const NID_textEncodedORAddress : u32 = 459 ; pub const NID_rfc822Mailbox : u32 = 460 ; pub const NID_info : u32 = 461 ; pub const NID_favouriteDrink : u32 = 462 ; pub const NID_roomNumber : u32 = 463 ; pub const NID_photo : u32 = 464 ; pub const NID_userClass : u32 = 465 ; pub const NID_host : u32 = 466 ; pub const NID_manager : u32 = 467 ; pub const NID_documentIdentifier : u32 = 468 ; pub const NID_documentTitle : u32 = 469 ; pub const NID_documentVersion : u32 = 470 ; pub const NID_documentAuthor : u32 = 471 ; pub const NID_documentLocation : u32 = 472 ; pub const NID_homeTelephoneNumber : u32 = 473 ; pub const NID_secretary : u32 = 474 ; pub const NID_otherMailbox : u32 = 475 ; pub const NID_lastModifiedTime : u32 = 476 ; pub const NID_lastModifiedBy : u32 = 477 ; pub const NID_aRecord : u32 = 478 ; pub const NID_pilotAttributeType27 : u32 = 479 ; pub const NID_mXRecord : u32 = 480 ; pub const NID_nSRecord : u32 = 481 ; pub const NID_sOARecord : u32 = 482 ; pub const NID_cNAMERecord : u32 = 483 ; pub const NID_associatedDomain : u32 = 484 ; pub const NID_associatedName : u32 = 485 ; pub const NID_homePostalAddress : u32 = 486 ; pub const NID_personalTitle : u32 = 487 ; pub const NID_mobileTelephoneNumber : u32 = 488 ; pub const NID_pagerTelephoneNumber : u32 = 489 ; pub const NID_friendlyCountryName : u32 = 490 ; pub const NID_organizationalStatus : u32 = 491 ; pub const NID_janetMailbox : u32 = 492 ; pub const NID_mailPreferenceOption : u32 = 493 ; pub const NID_buildingName : u32 = 494 ; pub const NID_dSAQuality : u32 = 495 ; pub const NID_singleLevelQuality : u32 = 496 ; pub const NID_subtreeMinimumQuality : u32 = 497 ; pub const NID_subtreeMaximumQuality : u32 = 498 ; pub const NID_personalSignature : u32 = 499 ; pub const NID_dITRedirect : u32 = 500 ; pub const NID_audio : u32 = 501 ; pub const NID_documentPublisher : u32 = 502 ; pub const NID_x500UniqueIdentifier : u32 = 503 ; pub const NID_mime_mhs : u32 = 504 ; pub const NID_mime_mhs_headings : u32 = 505 ; pub const NID_mime_mhs_bodies : u32 = 506 ; pub const NID_id_hex_partial_message : u32 = 507 ; pub const NID_id_hex_multipart_message : u32 = 508 ; pub const NID_generationQualifier : u32 = 509 ; pub const NID_pseudonym : u32 = 510 ; pub const NID_id_set : u32 = 512 ; pub const NID_set_ctype : u32 = 513 ; pub const NID_set_msgExt : u32 = 514 ; pub const NID_set_attr : u32 = 515 ; pub const NID_set_policy : u32 = 516 ; pub const NID_set_certExt : u32 = 517 ; pub const NID_set_brand : u32 = 518 ; pub const NID_setct_PANData : u32 = 519 ; pub const NID_setct_PANToken : u32 = 520 ; pub const NID_setct_PANOnly : u32 = 521 ; pub const NID_setct_OIData : u32 = 522 ; pub const NID_setct_PI : u32 = 523 ; pub const NID_setct_PIData : u32 = 524 ; pub const NID_setct_PIDataUnsigned : u32 = 525 ; pub const NID_setct_HODInput : u32 = 526 ; pub const NID_setct_AuthResBaggage : u32 = 527 ; pub const NID_setct_AuthRevReqBaggage : u32 = 528 ; pub const NID_setct_AuthRevResBaggage : u32 = 529 ; pub const NID_setct_CapTokenSeq : u32 = 530 ; pub const NID_setct_PInitResData : u32 = 531 ; pub const NID_setct_PI_TBS : u32 = 532 ; pub const NID_setct_PResData : u32 = 533 ; pub const NID_setct_AuthReqTBS : u32 = 534 ; pub const NID_setct_AuthResTBS : u32 = 535 ; pub const NID_setct_AuthResTBSX : u32 = 536 ; pub const NID_setct_AuthTokenTBS : u32 = 537 ; pub const NID_setct_CapTokenData : u32 = 538 ; pub const NID_setct_CapTokenTBS : u32 = 539 ; pub const NID_setct_AcqCardCodeMsg : u32 = 540 ; pub const NID_setct_AuthRevReqTBS : u32 = 541 ; pub const NID_setct_AuthRevResData : u32 = 542 ; pub const NID_setct_AuthRevResTBS : u32 = 543 ; pub const NID_setct_CapReqTBS : u32 = 544 ; pub const NID_setct_CapReqTBSX : u32 = 545 ; pub const NID_setct_CapResData : u32 = 546 ; pub const NID_setct_CapRevReqTBS : u32 = 547 ; pub const NID_setct_CapRevReqTBSX : u32 = 548 ; pub const NID_setct_CapRevResData : u32 = 549 ; pub const NID_setct_CredReqTBS : u32 = 550 ; pub const NID_setct_CredReqTBSX : u32 = 551 ; pub const NID_setct_CredResData : u32 = 552 ; pub const NID_setct_CredRevReqTBS : u32 = 553 ; pub const NID_setct_CredRevReqTBSX : u32 = 554 ; pub const NID_setct_CredRevResData : u32 = 555 ; pub const NID_setct_PCertReqData : u32 = 556 ; pub const NID_setct_PCertResTBS : u32 = 557 ; pub const NID_setct_BatchAdminReqData : u32 = 558 ; pub const NID_setct_BatchAdminResData : u32 = 559 ; pub const NID_setct_CardCInitResTBS : u32 = 560 ; pub const NID_setct_MeAqCInitResTBS : u32 = 561 ; pub const NID_setct_RegFormResTBS : u32 = 562 ; pub const NID_setct_CertReqData : u32 = 563 ; pub const NID_setct_CertReqTBS : u32 = 564 ; pub const NID_setct_CertResData : u32 = 565 ; pub const NID_setct_CertInqReqTBS : u32 = 566 ; pub const NID_setct_ErrorTBS : u32 = 567 ; pub const NID_setct_PIDualSignedTBE : u32 = 568 ; pub const NID_setct_PIUnsignedTBE : u32 = 569 ; pub const NID_setct_AuthReqTBE : u32 = 570 ; pub const NID_setct_AuthResTBE : u32 = 571 ; pub const NID_setct_AuthResTBEX : u32 = 572 ; pub const NID_setct_AuthTokenTBE : u32 = 573 ; pub const NID_setct_CapTokenTBE : u32 = 574 ; pub const NID_setct_CapTokenTBEX : u32 = 575 ; pub const NID_setct_AcqCardCodeMsgTBE : u32 = 576 ; pub const NID_setct_AuthRevReqTBE : u32 = 577 ; pub const NID_setct_AuthRevResTBE : u32 = 578 ; pub const NID_setct_AuthRevResTBEB : u32 = 579 ; pub const NID_setct_CapReqTBE : u32 = 580 ; pub const NID_setct_CapReqTBEX : u32 = 581 ; pub const NID_setct_CapResTBE : u32 = 582 ; pub const NID_setct_CapRevReqTBE : u32 = 583 ; pub const NID_setct_CapRevReqTBEX : u32 = 584 ; pub const NID_setct_CapRevResTBE : u32 = 585 ; pub const NID_setct_CredReqTBE : u32 = 586 ; pub const NID_setct_CredReqTBEX : u32 = 587 ; pub const NID_setct_CredResTBE : u32 = 588 ; pub const NID_setct_CredRevReqTBE : u32 = 589 ; pub const NID_setct_CredRevReqTBEX : u32 = 590 ; pub const NID_setct_CredRevResTBE : u32 = 591 ; pub const NID_setct_BatchAdminReqTBE : u32 = 592 ; pub const NID_setct_BatchAdminResTBE : u32 = 593 ; pub const NID_setct_RegFormReqTBE : u32 = 594 ; pub const NID_setct_CertReqTBE : u32 = 595 ; pub const NID_setct_CertReqTBEX : u32 = 596 ; pub const NID_setct_CertResTBE : u32 = 597 ; pub const NID_setct_CRLNotificationTBS : u32 = 598 ; pub const NID_setct_CRLNotificationResTBS : u32 = 599 ; pub const NID_setct_BCIDistributionTBS : u32 = 600 ; pub const NID_setext_genCrypt : u32 = 601 ; pub const NID_setext_miAuth : u32 = 602 ; pub const NID_setext_pinSecure : u32 = 603 ; pub const NID_setext_pinAny : u32 = 604 ; pub const NID_setext_track2 : u32 = 605 ; pub const NID_setext_cv : u32 = 606 ; pub const NID_set_policy_root : u32 = 607 ; pub const NID_setCext_hashedRoot : u32 = 608 ; pub const NID_setCext_certType : u32 = 609 ; pub const NID_setCext_merchData : u32 = 610 ; pub const NID_setCext_cCertRequired : u32 = 611 ; pub const NID_setCext_tunneling : u32 = 612 ; pub const NID_setCext_setExt : u32 = 613 ; pub const NID_setCext_setQualf : u32 = 614 ; pub const NID_setCext_PGWYcapabilities : u32 = 615 ; pub const NID_setCext_TokenIdentifier : u32 = 616 ; pub const NID_setCext_Track2Data : u32 = 617 ; pub const NID_setCext_TokenType : u32 = 618 ; pub const NID_setCext_IssuerCapabilities : u32 = 619 ; pub const NID_setAttr_Cert : u32 = 620 ; pub const NID_setAttr_PGWYcap : u32 = 621 ; pub const NID_setAttr_TokenType : u32 = 622 ; pub const NID_setAttr_IssCap : u32 = 623 ; pub const NID_set_rootKeyThumb : u32 = 624 ; pub const NID_set_addPolicy : u32 = 625 ; pub const NID_setAttr_Token_EMV : u32 = 626 ; pub const NID_setAttr_Token_B0Prime : u32 = 627 ; pub const NID_setAttr_IssCap_CVM : u32 = 628 ; pub const NID_setAttr_IssCap_T2 : u32 = 629 ; pub const NID_setAttr_IssCap_Sig : u32 = 630 ; pub const NID_setAttr_GenCryptgrm : u32 = 631 ; pub const NID_setAttr_T2Enc : u32 = 632 ; pub const NID_setAttr_T2cleartxt : u32 = 633 ; pub const NID_setAttr_TokICCsig : u32 = 634 ; pub const NID_setAttr_SecDevSig : u32 = 635 ; pub const NID_set_brand_IATA_ATA : u32 = 636 ; pub const NID_set_brand_Diners : u32 = 637 ; pub const NID_set_brand_AmericanExpress : u32 = 638 ; pub const NID_set_brand_JCB : u32 = 639 ; pub const NID_set_brand_Visa : u32 = 640 ; pub const NID_set_brand_MasterCard : u32 = 641 ; pub const NID_set_brand_Novus : u32 = 642 ; pub const NID_des_cdmf : u32 = 643 ; pub const NID_rsaOAEPEncryptionSET : u32 = 644 ; pub const NID_itu_t : u32 = 645 ; pub const NID_joint_iso_itu_t : u32 = 646 ; pub const NID_international_organizations : u32 = 647 ; pub const NID_ms_smartcard_login : u32 = 648 ; pub const NID_ms_upn : u32 = 649 ; pub const NID_aes_128_cfb1 : u32 = 650 ; pub const NID_aes_192_cfb1 : u32 = 651 ; pub const NID_aes_256_cfb1 : u32 = 652 ; pub const NID_aes_128_cfb8 : u32 = 653 ; pub const NID_aes_192_cfb8 : u32 = 654 ; pub const NID_aes_256_cfb8 : u32 = 655 ; pub const NID_des_cfb1 : u32 = 656 ; pub const NID_des_cfb8 : u32 = 657 ; pub const NID_des_ede3_cfb1 : u32 = 658 ; pub const NID_des_ede3_cfb8 : u32 = 659 ; pub const NID_streetAddress : u32 = 660 ; pub const NID_postalCode : u32 = 661 ; pub const NID_id_ppl : u32 = 662 ; pub const NID_proxyCertInfo : u32 = 663 ; pub const NID_id_ppl_anyLanguage : u32 = 664 ; pub const NID_id_ppl_inheritAll : u32 = 665 ; pub const NID_name_constraints : u32 = 666 ; pub const NID_Independent : u32 = 667 ; pub const NID_sha256WithRSAEncryption : u32 = 668 ; pub const NID_sha384WithRSAEncryption : u32 = 669 ; pub const NID_sha512WithRSAEncryption : u32 = 670 ; pub const NID_sha224WithRSAEncryption : u32 = 671 ; pub const NID_sha256 : u32 = 672 ; pub const NID_sha384 : u32 = 673 ; pub const NID_sha512 : u32 = 674 ; pub const NID_sha224 : u32 = 675 ; pub const NID_identified_organization : u32 = 676 ; pub const NID_certicom_arc : u32 = 677 ; pub const NID_wap : u32 = 678 ; pub const NID_wap_wsg : u32 = 679 ; pub const NID_X9_62_id_characteristic_two_basis : u32 = 680 ; pub const NID_X9_62_onBasis : u32 = 681 ; pub const NID_X9_62_tpBasis : u32 = 682 ; pub const NID_X9_62_ppBasis : u32 = 683 ; pub const NID_X9_62_c2pnb163v1 : u32 = 684 ; pub const NID_X9_62_c2pnb163v2 : u32 = 685 ; pub const NID_X9_62_c2pnb163v3 : u32 = 686 ; pub const NID_X9_62_c2pnb176v1 : u32 = 687 ; pub const NID_X9_62_c2tnb191v1 : u32 = 688 ; pub const NID_X9_62_c2tnb191v2 : u32 = 689 ; pub const NID_X9_62_c2tnb191v3 : u32 = 690 ; pub const NID_X9_62_c2onb191v4 : u32 = 691 ; pub const NID_X9_62_c2onb191v5 : u32 = 692 ; pub const NID_X9_62_c2pnb208w1 : u32 = 693 ; pub const NID_X9_62_c2tnb239v1 : u32 = 694 ; pub const NID_X9_62_c2tnb239v2 : u32 = 695 ; pub const NID_X9_62_c2tnb239v3 : u32 = 696 ; pub const NID_X9_62_c2onb239v4 : u32 = 697 ; pub const NID_X9_62_c2onb239v5 : u32 = 698 ; pub const NID_X9_62_c2pnb272w1 : u32 = 699 ; pub const NID_X9_62_c2pnb304w1 : u32 = 700 ; pub const NID_X9_62_c2tnb359v1 : u32 = 701 ; pub const NID_X9_62_c2pnb368w1 : u32 = 702 ; pub const NID_X9_62_c2tnb431r1 : u32 = 703 ; pub const NID_secp112r1 : u32 = 704 ; pub const NID_secp112r2 : u32 = 705 ; pub const NID_secp128r1 : u32 = 706 ; pub const NID_secp128r2 : u32 = 707 ; pub const NID_secp160k1 : u32 = 708 ; pub const NID_secp160r1 : u32 = 709 ; pub const NID_secp160r2 : u32 = 710 ; pub const NID_secp192k1 : u32 = 711 ; pub const NID_secp224k1 : u32 = 712 ; pub const NID_secp224r1 : u32 = 713 ; pub const NID_secp256k1 : u32 = 714 ; pub const NID_secp384r1 : u32 = 715 ; pub const NID_secp521r1 : u32 = 716 ; pub const NID_sect113r1 : u32 = 717 ; pub const NID_sect113r2 : u32 = 718 ; pub const NID_sect131r1 : u32 = 719 ; pub const NID_sect131r2 : u32 = 720 ; pub const NID_sect163k1 : u32 = 721 ; pub const NID_sect163r1 : u32 = 722 ; pub const NID_sect163r2 : u32 = 723 ; pub const NID_sect193r1 : u32 = 724 ; pub const NID_sect193r2 : u32 = 725 ; pub const NID_sect233k1 : u32 = 726 ; pub const NID_sect233r1 : u32 = 727 ; pub const NID_sect239k1 : u32 = 728 ; pub const NID_sect283k1 : u32 = 729 ; pub const NID_sect283r1 : u32 = 730 ; pub const NID_sect409k1 : u32 = 731 ; pub const NID_sect409r1 : u32 = 732 ; pub const NID_sect571k1 : u32 = 733 ; pub const NID_sect571r1 : u32 = 734 ; pub const NID_wap_wsg_idm_ecid_wtls1 : u32 = 735 ; pub const NID_wap_wsg_idm_ecid_wtls3 : u32 = 736 ; pub const NID_wap_wsg_idm_ecid_wtls4 : u32 = 737 ; pub const NID_wap_wsg_idm_ecid_wtls5 : u32 = 738 ; pub const NID_wap_wsg_idm_ecid_wtls6 : u32 = 739 ; pub const NID_wap_wsg_idm_ecid_wtls7 : u32 = 740 ; pub const NID_wap_wsg_idm_ecid_wtls8 : u32 = 741 ; pub const NID_wap_wsg_idm_ecid_wtls9 : u32 = 742 ; pub const NID_wap_wsg_idm_ecid_wtls10 : u32 = 743 ; pub const NID_wap_wsg_idm_ecid_wtls11 : u32 = 744 ; pub const NID_wap_wsg_idm_ecid_wtls12 : u32 = 745 ; pub const NID_any_policy : u32 = 746 ; pub const NID_policy_mappings : u32 = 747 ; pub const NID_inhibit_any_policy : u32 = 748 ; pub const NID_ipsec3 : u32 = 749 ; pub const NID_ipsec4 : u32 = 750 ; pub const NID_camellia_128_cbc : u32 = 751 ; pub const NID_camellia_192_cbc : u32 = 752 ; pub const NID_camellia_256_cbc : u32 = 753 ; pub const NID_camellia_128_ecb : u32 = 754 ; pub const NID_camellia_192_ecb : u32 = 755 ; pub const NID_camellia_256_ecb : u32 = 756 ; pub const NID_camellia_128_cfb128 : u32 = 757 ; pub const NID_camellia_192_cfb128 : u32 = 758 ; pub const NID_camellia_256_cfb128 : u32 = 759 ; pub const NID_camellia_128_cfb1 : u32 = 760 ; pub const NID_camellia_192_cfb1 : u32 = 761 ; pub const NID_camellia_256_cfb1 : u32 = 762 ; pub const NID_camellia_128_cfb8 : u32 = 763 ; pub const NID_camellia_192_cfb8 : u32 = 764 ; pub const NID_camellia_256_cfb8 : u32 = 765 ; pub const NID_camellia_128_ofb128 : u32 = 766 ; pub const NID_camellia_192_ofb128 : u32 = 767 ; pub const NID_camellia_256_ofb128 : u32 = 768 ; pub const NID_subject_directory_attributes : u32 = 769 ; pub const NID_issuing_distribution_point : u32 = 770 ; pub const NID_certificate_issuer : u32 = 771 ; pub const NID_kisa : u32 = 773 ; pub const NID_seed_ecb : u32 = 776 ; pub const NID_seed_cbc : u32 = 777 ; pub const NID_seed_ofb128 : u32 = 778 ; pub const NID_seed_cfb128 : u32 = 779 ; pub const NID_hmac_md5 : u32 = 780 ; pub const NID_hmac_sha1 : u32 = 781 ; pub const NID_id_PasswordBasedMAC : u32 = 782 ; pub const NID_id_DHBasedMac : u32 = 783 ; pub const NID_id_it_suppLangTags : u32 = 784 ; pub const NID_caRepository : u32 = 785 ; pub const NID_id_smime_ct_compressedData : u32 = 786 ; pub const NID_id_ct_asciiTextWithCRLF : u32 = 787 ; pub const NID_id_aes128_wrap : u32 = 788 ; pub const NID_id_aes192_wrap : u32 = 789 ; pub const NID_id_aes256_wrap : u32 = 790 ; pub const NID_ecdsa_with_Recommended : u32 = 791 ; pub const NID_ecdsa_with_Specified : u32 = 792 ; pub const NID_ecdsa_with_SHA224 : u32 = 793 ; pub const NID_ecdsa_with_SHA256 : u32 = 794 ; pub const NID_ecdsa_with_SHA384 : u32 = 795 ; pub const NID_ecdsa_with_SHA512 : u32 = 796 ; pub const NID_hmacWithMD5 : u32 = 797 ; pub const NID_hmacWithSHA224 : u32 = 798 ; pub const NID_hmacWithSHA256 : u32 = 799 ; pub const NID_hmacWithSHA384 : u32 = 800 ; pub const NID_hmacWithSHA512 : u32 = 801 ; pub const NID_dsa_with_SHA224 : u32 = 802 ; pub const NID_dsa_with_SHA256 : u32 = 803 ; pub const NID_whirlpool : u32 = 804 ; pub const NID_cryptopro : u32 = 805 ; pub const NID_cryptocom : u32 = 806 ; pub const NID_id_GostR3411_94_with_GostR3410_2001 : u32 = 807 ; pub const NID_id_GostR3411_94_with_GostR3410_94 : u32 = 808 ; pub const NID_id_GostR3411_94 : u32 = 809 ; pub const NID_id_HMACGostR3411_94 : u32 = 810 ; pub const NID_id_GostR3410_2001 : u32 = 811 ; pub const NID_id_GostR3410_94 : u32 = 812 ; pub const NID_id_Gost28147_89 : u32 = 813 ; pub const NID_gost89_cnt : u32 = 814 ; pub const NID_id_Gost28147_89_MAC : u32 = 815 ; pub const NID_id_GostR3411_94_prf : u32 = 816 ; pub const NID_id_GostR3410_2001DH : u32 = 817 ; pub const NID_id_GostR3410_94DH : u32 = 818 ; pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing : u32 = 819 ; pub const NID_id_Gost28147_89_None_KeyMeshing : u32 = 820 ; pub const NID_id_GostR3411_94_TestParamSet : u32 = 821 ; pub const NID_id_GostR3411_94_CryptoProParamSet : u32 = 822 ; pub const NID_id_Gost28147_89_TestParamSet : u32 = 823 ; pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet : u32 = 824 ; pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet : u32 = 825 ; pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet : u32 = 826 ; pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet : u32 = 827 ; pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet : u32 = 828 ; pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet : u32 = 829 ; pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet : u32 = 830 ; pub const NID_id_GostR3410_94_TestParamSet : u32 = 831 ; pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet : u32 = 832 ; pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet : u32 = 833 ; pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet : u32 = 834 ; pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet : u32 = 835 ; pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet : u32 = 836 ; pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet : u32 = 837 ; pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet : u32 = 838 ; pub const NID_id_GostR3410_2001_TestParamSet : u32 = 839 ; pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet : u32 = 840 ; pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet : u32 = 841 ; pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet : u32 = 842 ; pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet : u32 = 843 ; pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet : u32 = 844 ; pub const NID_id_GostR3410_94_a : u32 = 845 ; pub const NID_id_GostR3410_94_aBis : u32 = 846 ; pub const NID_id_GostR3410_94_b : u32 = 847 ; pub const NID_id_GostR3410_94_bBis : u32 = 848 ; pub const NID_id_Gost28147_89_cc : u32 = 849 ; pub const NID_id_GostR3410_94_cc : u32 = 850 ; pub const NID_id_GostR3410_2001_cc : u32 = 851 ; pub const NID_id_GostR3411_94_with_GostR3410_94_cc : u32 = 852 ; pub const NID_id_GostR3411_94_with_GostR3410_2001_cc : u32 = 853 ; pub const NID_id_GostR3410_2001_ParamSet_cc : u32 = 854 ; pub const NID_hmac : u32 = 855 ; pub const NID_LocalKeySet : u32 = 856 ; pub const NID_freshest_crl : u32 = 857 ; pub const NID_id_on_permanentIdentifier : u32 = 858 ; pub const NID_searchGuide : u32 = 859 ; pub const NID_businessCategory : u32 = 860 ; pub const NID_postalAddress : u32 = 861 ; pub const NID_postOfficeBox : u32 = 862 ; pub const NID_physicalDeliveryOfficeName : u32 = 863 ; pub const NID_telephoneNumber : u32 = 864 ; pub const NID_telexNumber : u32 = 865 ; pub const NID_teletexTerminalIdentifier : u32 = 866 ; pub const NID_facsimileTelephoneNumber : u32 = 867 ; pub const NID_x121Address : u32 = 868 ; pub const NID_internationaliSDNNumber : u32 = 869 ; pub const NID_registeredAddress : u32 = 870 ; pub const NID_destinationIndicator : u32 = 871 ; pub const NID_preferredDeliveryMethod : u32 = 872 ; pub const NID_presentationAddress : u32 = 873 ; pub const NID_supportedApplicationContext : u32 = 874 ; pub const NID_member : u32 = 875 ; pub const NID_owner : u32 = 876 ; pub const NID_roleOccupant : u32 = 877 ; pub const NID_seeAlso : u32 = 878 ; pub const NID_userPassword : u32 = 879 ; pub const NID_userCertificate : u32 = 880 ; pub const NID_cACertificate : u32 = 881 ; pub const NID_authorityRevocationList : u32 = 882 ; pub const NID_certificateRevocationList : u32 = 883 ; pub const NID_crossCertificatePair : u32 = 884 ; pub const NID_enhancedSearchGuide : u32 = 885 ; pub const NID_protocolInformation : u32 = 886 ; pub const NID_distinguishedName : u32 = 887 ; pub const NID_uniqueMember : u32 = 888 ; pub const NID_houseIdentifier : u32 = 889 ; pub const NID_supportedAlgorithms : u32 = 890 ; pub const NID_deltaRevocationList : u32 = 891 ; pub const NID_dmdName : u32 = 892 ; pub const NID_id_alg_PWRI_KEK : u32 = 893 ; pub const NID_cmac : u32 = 894 ; pub const NID_aes_128_gcm : u32 = 895 ; pub const NID_aes_128_ccm : u32 = 896 ; pub const NID_id_aes128_wrap_pad : u32 = 897 ; pub const NID_aes_192_gcm : u32 = 898 ; pub const NID_aes_192_ccm : u32 = 899 ; pub const NID_id_aes192_wrap_pad : u32 = 900 ; pub const NID_aes_256_gcm : u32 = 901 ; pub const NID_aes_256_ccm : u32 = 902 ; pub const NID_id_aes256_wrap_pad : u32 = 903 ; pub const NID_aes_128_ctr : u32 = 904 ; pub const NID_aes_192_ctr : u32 = 905 ; pub const NID_aes_256_ctr : u32 = 906 ; pub const NID_id_camellia128_wrap : u32 = 907 ; pub const NID_id_camellia192_wrap : u32 = 908 ; pub const NID_id_camellia256_wrap : u32 = 909 ; pub const NID_anyExtendedKeyUsage : u32 = 910 ; pub const NID_mgf1 : u32 = 911 ; pub const NID_rsassaPss : u32 = 912 ; pub const NID_aes_128_xts : u32 = 913 ; pub const NID_aes_256_xts : u32 = 914 ; pub const NID_rc4_hmac_md5 : u32 = 915 ; pub const NID_aes_128_cbc_hmac_sha1 : u32 = 916 ; pub const NID_aes_192_cbc_hmac_sha1 : u32 = 917 ; pub const NID_aes_256_cbc_hmac_sha1 : u32 = 918 ; pub const NID_rsaesOaep : u32 = 919 ; pub const NID_dhpublicnumber : u32 = 920 ; pub const NID_brainpoolP160r1 : u32 = 921 ; pub const NID_brainpoolP160t1 : u32 = 922 ; pub const NID_brainpoolP192r1 : u32 = 923 ; pub const NID_brainpoolP192t1 : u32 = 924 ; pub const NID_brainpoolP224r1 : u32 = 925 ; pub const NID_brainpoolP224t1 : u32 = 926 ; pub const NID_brainpoolP256r1 : u32 = 927 ; pub const NID_brainpoolP256t1 : u32 = 928 ; pub const NID_brainpoolP320r1 : u32 = 929 ; pub const NID_brainpoolP320t1 : u32 = 930 ; pub const NID_brainpoolP384r1 : u32 = 931 ; pub const NID_brainpoolP384t1 : u32 = 932 ; pub const NID_brainpoolP512r1 : u32 = 933 ; pub const NID_brainpoolP512t1 : u32 = 934 ; pub const NID_pSpecified : u32 = 935 ; pub const NID_dhSinglePass_stdDH_sha1kdf_scheme : u32 = 936 ; pub const NID_dhSinglePass_stdDH_sha224kdf_scheme : u32 = 937 ; pub const NID_dhSinglePass_stdDH_sha256kdf_scheme : u32 = 938 ; pub const NID_dhSinglePass_stdDH_sha384kdf_scheme : u32 = 939 ; pub const NID_dhSinglePass_stdDH_sha512kdf_scheme : u32 = 940 ; pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme : u32 = 941 ; pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme : u32 = 942 ; pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme : u32 = 943 ; pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme : u32 = 944 ; pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme : u32 = 945 ; pub const NID_dh_std_kdf : u32 = 946 ; pub const NID_dh_cofactor_kdf : u32 = 947 ; pub const NID_X25519 : u32 = 948 ; pub const NID_ED25519 : u32 = 949 ; pub const NID_chacha20_poly1305 : u32 = 950 ; pub const NID_kx_rsa : u32 = 951 ; pub const NID_kx_ecdhe : u32 = 952 ; pub const NID_kx_psk : u32 = 953 ; pub const NID_auth_rsa : u32 = 954 ; pub const NID_auth_ecdsa : u32 = 955 ; pub const NID_auth_psk : u32 = 956 ; pub const NID_kx_any : u32 = 957 ; pub const NID_auth_any : u32 = 958 ; pub const EVP_PKEY_NONE : u32 = 0 ; pub const EVP_PKEY_RSA : u32 = 6 ; pub const EVP_PKEY_RSA_PSS : u32 = 912 ; pub const EVP_PKEY_DSA : u32 = 116 ; pub const EVP_PKEY_EC : u32 = 408 ; pub const EVP_PKEY_ED25519 : u32 = 949 ; pub const EVP_PKEY_DH : u32 = 28 ; pub const EVP_PKEY_RSA2 : u32 = 19 ; pub const EVP_R_BUFFER_TOO_SMALL : u32 = 100 ; pub const EVP_R_COMMAND_NOT_SUPPORTED : u32 = 101 ; pub const EVP_R_DECODE_ERROR : u32 = 102 ; pub const EVP_R_DIFFERENT_KEY_TYPES : u32 = 103 ; pub const EVP_R_DIFFERENT_PARAMETERS : u32 = 104 ; pub const EVP_R_ENCODE_ERROR : u32 = 105 ; pub const EVP_R_EXPECTING_AN_EC_KEY_KEY : u32 = 106 ; pub const EVP_R_EXPECTING_AN_RSA_KEY : u32 = 107 ; pub const EVP_R_EXPECTING_A_DSA_KEY : u32 = 108 ; pub const EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE : u32 = 109 ; pub const EVP_R_INVALID_DIGEST_LENGTH : u32 = 110 ; pub const EVP_R_INVALID_DIGEST_TYPE : u32 = 111 ; pub const EVP_R_INVALID_KEYBITS : u32 = 112 ; pub const EVP_R_INVALID_MGF1_MD : u32 = 113 ; pub const EVP_R_INVALID_OPERATION : u32 = 114 ; pub const EVP_R_INVALID_PADDING_MODE : u32 = 115 ; pub const EVP_R_INVALID_PSS_SALTLEN : u32 = 116 ; pub const EVP_R_KEYS_NOT_SET : u32 = 117 ; pub const EVP_R_MISSING_PARAMETERS : u32 = 118 ; pub const EVP_R_NO_DEFAULT_DIGEST : u32 = 119 ; pub const EVP_R_NO_KEY_SET : u32 = 120 ; pub const EVP_R_NO_MDC2_SUPPORT : u32 = 121 ; pub const EVP_R_NO_NID_FOR_CURVE : u32 = 122 ; pub const EVP_R_NO_OPERATION_SET : u32 = 123 ; pub const EVP_R_NO_PARAMETERS_SET : u32 = 124 ; pub const EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE : u32 = 125 ; pub const EVP_R_OPERATON_NOT_INITIALIZED : u32 = 126 ; pub const EVP_R_UNKNOWN_PUBLIC_KEY_TYPE : u32 = 127 ; pub const EVP_R_UNSUPPORTED_ALGORITHM : u32 = 128 ; pub const EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE : u32 = 129 ; pub const EVP_R_NOT_A_PRIVATE_KEY : u32 = 130 ; pub const EVP_R_INVALID_SIGNATURE : u32 = 131 ; pub const EVP_R_MEMORY_LIMIT_EXCEEDED : u32 = 132 ; pub const EVP_R_INVALID_PARAMETERS : u32 = 133 ; pub const SHA_CBLOCK : u32 = 64 ; pub const SHA_DIGEST_LENGTH : u32 = 20 ; pub const SHA224_CBLOCK : u32 = 64 ; pub const SHA224_DIGEST_LENGTH : u32 = 28 ; pub const SHA256_CBLOCK : u32 = 64 ; pub const SHA256_DIGEST_LENGTH : u32 = 32 ; pub const SHA384_CBLOCK : u32 = 128 ; pub const SHA384_DIGEST_LENGTH : u32 = 48 ; pub const SHA512_CBLOCK : u32 = 128 ; pub const SHA512_DIGEST_LENGTH : u32 = 64 ; pub const OPENSSL_NPN_UNSUPPORTED : u32 = 0 ; pub const OPENSSL_NPN_NEGOTIATED : u32 = 1 ; pub const OPENSSL_NPN_NO_OVERLAP : u32 = 2 ; pub const OPENSSL_INIT_NO_LOAD_SSL_STRINGS : u32 = 0 ; pub const OPENSSL_INIT_LOAD_SSL_STRINGS : u32 = 0 ; pub const OPENSSL_INIT_SSL_DEFAULT : u32 = 0 ; pub type __off_t = :: std :: os :: raw :: c_long ; pub type __off64_t = :: std :: os :: raw :: c_long ; pub type __time_t = :: std :: os :: raw :: c_long ; pub type time_t = __time_t ; pub type CRYPTO_THREADID = :: std :: os :: raw :: c_int ; pub type ASN1_BOOLEAN = :: std :: os :: raw :: c_int ; pub type ASN1_NULL = :: std :: os :: raw :: c_int ; pub type ASN1_ITEM = ASN1_ITEM_st ; pub type ASN1_OBJECT = asn1_object_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct asn1_pctx_st { _unused : [ u8 ; 0 ] , } pub type ASN1_PCTX = asn1_pctx_st ; pub type ASN1_BIT_STRING = asn1_string_st ; pub type ASN1_BMPSTRING = asn1_string_st ; pub type ASN1_ENUMERATED = asn1_string_st ; pub type ASN1_GENERALIZEDTIME = asn1_string_st ; pub type ASN1_GENERALSTRING = asn1_string_st ; pub type ASN1_IA5STRING = asn1_string_st ; pub type ASN1_INTEGER = asn1_string_st ; pub type ASN1_OCTET_STRING = asn1_string_st ; pub type ASN1_PRINTABLESTRING = asn1_string_st ; pub type ASN1_STRING = asn1_string_st ; pub type ASN1_T61STRING = asn1_string_st ; pub type ASN1_TIME = asn1_string_st ; pub type ASN1_UNIVERSALSTRING = asn1_string_st ; pub type ASN1_UTCTIME = asn1_string_st ; pub type ASN1_UTF8STRING = asn1_string_st ; pub type ASN1_VISIBLESTRING = asn1_string_st ; pub type ASN1_TYPE = asn1_type_st ; pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st ; pub type DSA_SIG = DSA_SIG_st ; pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st ; pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_POLICY_CACHE_st { _unused : [ u8 ; 0 ] , } pub type X509_POLICY_CACHE = X509_POLICY_CACHE_st ; pub type X509_ALGOR = X509_algor_st ; pub type X509_CRL_INFO = X509_crl_info_st ; pub type X509_CRL = X509_crl_st ; pub type X509_NAME = X509_name_st ; pub type X509_PUBKEY = X509_pubkey_st ; pub type X509_REQ_INFO = X509_req_info_st ; pub type X509_REQ = X509_req_st ; pub type X509_VAL = X509_val_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct bignum_ctx { _unused : [ u8 ; 0 ] , } pub type BN_CTX = bignum_ctx ; pub type BIGNUM = bignum_st ; pub type BIO_METHOD = bio_method_st ; pub type BIO = bio_st ; pub type BN_GENCB = bn_gencb_st ; pub type BN_MONT_CTX = bn_mont_ctx_st ; pub type BUF_MEM = buf_mem_st ; pub type CBB = cbb_st ; pub type CBS = cbs_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct conf_st { _unused : [ u8 ; 0 ] , } pub type CONF = conf_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct crypto_buffer_pool_st { _unused : [ u8 ; 0 ] , } pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct crypto_buffer_st { _unused : [ u8 ; 0 ] , } pub type CRYPTO_BUFFER = crypto_buffer_st ; pub type DH = dh_st ; pub type DSA = dsa_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ec_group_st { _unused : [ u8 ; 0 ] , } pub type EC_GROUP = ec_group_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ec_key_st { _unused : [ u8 ; 0 ] , } pub type EC_KEY = ec_key_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ec_point_st { _unused : [ u8 ; 0 ] , } pub type EC_POINT = ec_point_st ; pub type ECDSA_METHOD = ecdsa_method_st ; pub type ECDSA_SIG = ecdsa_sig_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct engine_st { _unused : [ u8 ; 0 ] , } pub type ENGINE = engine_st ; pub type EVP_MD_CTX = env_md_ctx_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct env_md_st { _unused : [ u8 ; 0 ] , } pub type EVP_MD = env_md_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_aead_st { _unused : [ u8 ; 0 ] , } pub type EVP_AEAD = evp_aead_st ; pub type EVP_CIPHER_CTX = evp_cipher_ctx_st ; pub type EVP_CIPHER = evp_cipher_st ; pub type EVP_ENCODE_CTX = evp_encode_ctx_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_pkey_asn1_method_st { _unused : [ u8 ; 0 ] , } pub type EVP_PKEY_ASN1_METHOD = evp_pkey_asn1_method_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_pkey_ctx_st { _unused : [ u8 ; 0 ] , } pub type EVP_PKEY_CTX = evp_pkey_ctx_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_pkey_method_st { _unused : [ u8 ; 0 ] , } pub type EVP_PKEY_METHOD = evp_pkey_method_st ; pub type EVP_PKEY = evp_pkey_st ; pub type HMAC_CTX = hmac_ctx_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ossl_init_settings_st { _unused : [ u8 ; 0 ] , } pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st ; pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st ; pub type RAND_METHOD = rand_meth_st ; pub type RSA_METHOD = rsa_meth_st ; pub type RSA = rsa_st ; pub type SHA256_CTX = sha256_state_st ; pub type SHA512_CTX = sha512_state_st ; pub type SHA_CTX = sha_state_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ssl_st { _unused : [ u8 ; 0 ] , } pub type SSL = ssl_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct st_ERR_FNS { _unused : [ u8 ; 0 ] , } pub type ERR_FNS = st_ERR_FNS ; pub type X509V3_CTX = v3_ext_ctx ; pub type X509_CERT_AUX = x509_cert_aux_st ; pub type X509_CINF = x509_cinf_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct x509_crl_method_st { _unused : [ u8 ; 0 ] , } pub type X509_CRL_METHOD = x509_crl_method_st ; pub type X509 = x509_st ; pub type OPENSSL_BLOCK = * mut :: std :: os :: raw :: c_void ; extern "C" { pub fn EVP_aead_aes_128_gcm ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_gcm ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_chacha20_poly1305 ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_xchacha20_poly1305 ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_ctr_hmac_sha256 ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_ctr_hmac_sha256 ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_gcm_siv ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_gcm_siv ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_ccm_bluetooth ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_ccm_bluetooth_8 ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_has_aes_hardware ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_AEAD_key_length ( aead : * const EVP_AEAD ) -> usize ; } extern "C" { pub fn EVP_AEAD_nonce_length ( aead : * const EVP_AEAD ) -> usize ; } extern "C" { pub fn EVP_AEAD_max_overhead ( aead : * const EVP_AEAD ) -> usize ; } extern "C" { pub fn EVP_AEAD_max_tag_len ( aead : * const EVP_AEAD ) -> usize ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_aead_ctx_st { pub aead : * const EVP_AEAD , pub aead_state : * mut :: std :: os :: raw :: c_void , pub tag_len : u8 , } # [ test ] fn bindgen_test_layout_evp_aead_ctx_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < evp_aead_ctx_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( evp_aead_ctx_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < evp_aead_ctx_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( evp_aead_ctx_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_aead_ctx_st > ( ) ) ) . aead as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_aead_ctx_st ) , "::" , stringify ! ( aead ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_aead_ctx_st > ( ) ) ) . aead_state as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( evp_aead_ctx_st ) , "::" , stringify ! ( aead_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_aead_ctx_st > ( ) ) ) . tag_len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( evp_aead_ctx_st ) , "::" , stringify ! ( tag_len ) ) ) ; } pub type EVP_AEAD_CTX = evp_aead_ctx_st ; extern "C" { pub fn EVP_AEAD_CTX_zero ( ctx : * mut EVP_AEAD_CTX ) ; } extern "C" { pub fn EVP_AEAD_CTX_new ( aead : * const EVP_AEAD , key : * const u8 , key_len : usize , tag_len : usize ) -> * mut EVP_AEAD_CTX ; } extern "C" { pub fn EVP_AEAD_CTX_free ( ctx : * mut EVP_AEAD_CTX ) ; } extern "C" { pub fn EVP_AEAD_CTX_init ( ctx : * mut EVP_AEAD_CTX , aead : * const EVP_AEAD , key : * const u8 , key_len : usize , tag_len : usize , impl_ : * mut ENGINE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_AEAD_CTX_cleanup ( ctx : * mut EVP_AEAD_CTX ) ; } extern "C" { pub fn EVP_AEAD_CTX_seal ( ctx : * const EVP_AEAD_CTX , out : * mut u8 , out_len : * mut usize , max_out_len : usize , nonce : * const u8 , nonce_len : usize , in_ : * const u8 , in_len : usize , ad : * const u8 , ad_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_AEAD_CTX_open ( ctx : * const EVP_AEAD_CTX , out : * mut u8 , out_len : * mut usize , max_out_len : usize , nonce : * const u8 , nonce_len : usize , in_ : * const u8 , in_len : usize , ad : * const u8 , ad_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_AEAD_CTX_seal_scatter ( ctx : * const EVP_AEAD_CTX , out : * mut u8 , out_tag : * mut u8 , out_tag_len : * mut usize , max_out_tag_len : usize , nonce : * const u8 , nonce_len : usize , in_ : * const u8 , in_len : usize , extra_in : * const u8 , extra_in_len : usize , ad : * const u8 , ad_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_AEAD_CTX_open_gather ( ctx : * const EVP_AEAD_CTX , out : * mut u8 , nonce : * const u8 , nonce_len : usize , in_ : * const u8 , in_len : usize , in_tag : * const u8 , in_tag_len : usize , ad : * const u8 , ad_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_AEAD_CTX_aead ( ctx : * const EVP_AEAD_CTX ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_cbc_sha1_tls ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_cbc_sha256_tls ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_cbc_sha1_tls ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_cbc_sha256_tls ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_cbc_sha384_tls ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_des_ede3_cbc_sha1_tls ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_null_sha1_tls ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_gcm_tls12 ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_gcm_tls12 ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_128_gcm_tls13 ( ) -> * const EVP_AEAD ; } extern "C" { pub fn EVP_aead_aes_256_gcm_tls13 ( ) -> * const EVP_AEAD ; } pub const evp_aead_direction_t_evp_aead_open : evp_aead_direction_t = 0 ; pub const evp_aead_direction_t_evp_aead_seal : evp_aead_direction_t = 1 ; pub type evp_aead_direction_t = u32 ; extern "C" { pub fn EVP_AEAD_CTX_init_with_direction ( ctx : * mut EVP_AEAD_CTX , aead : * const EVP_AEAD , key : * const u8 , key_len : usize , tag_len : usize , dir : evp_aead_direction_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_AEAD_CTX_get_iv ( ctx : * const EVP_AEAD_CTX , out_iv : * mut * const u8 , out_len : * mut usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_AEAD_CTX_tag_len ( ctx : * const EVP_AEAD_CTX , out_tag_len : * mut usize , in_len : usize , extra_in_len : usize ) -> :: std :: os :: raw :: c_int ; } pub type FILE = _IO_FILE ; pub type va_list = __builtin_va_list ; pub type _IO_lock_t = :: std :: os :: raw :: c_void ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct _IO_marker { pub _next : * mut _IO_marker , pub _sbuf : * mut _IO_FILE , pub _pos : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout__IO_marker ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _IO_marker > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( _IO_marker ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _IO_marker > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _IO_marker ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_marker > ( ) ) ) . _next as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _IO_marker ) , "::" , stringify ! ( _next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_marker > ( ) ) ) . _sbuf as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _IO_marker ) , "::" , stringify ! ( _sbuf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_marker > ( ) ) ) . _pos as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( _IO_marker ) , "::" , stringify ! ( _pos ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct _IO_FILE { pub _flags : :: std :: os :: raw :: c_int , pub _IO_read_ptr : * mut :: std :: os :: raw :: c_char , pub _IO_read_end : * mut :: std :: os :: raw :: c_char , pub _IO_read_base : * mut :: std :: os :: raw :: c_char , pub _IO_write_base : * mut :: std :: os :: raw :: c_char , pub _IO_write_ptr : * mut :: std :: os :: raw :: c_char , pub _IO_write_end : * mut :: std :: os :: raw :: c_char , pub _IO_buf_base : * mut :: std :: os :: raw :: c_char , pub _IO_buf_end : * mut :: std :: os :: raw :: c_char , pub _IO_save_base : * mut :: std :: os :: raw :: c_char , pub _IO_backup_base : * mut :: std :: os :: raw :: c_char , pub _IO_save_end : * mut :: std :: os :: raw :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: std :: os :: raw :: c_int , pub _flags2 : :: std :: os :: raw :: c_int , pub _old_offset : __off_t , pub _cur_column : :: std :: os :: raw :: c_ushort , pub _vtable_offset : :: std :: os :: raw :: c_schar , pub _shortbuf : [ :: std :: os :: raw :: c_char ; 1usize ] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub __pad1 : * mut :: std :: os :: raw :: c_void , pub __pad2 : * mut :: std :: os :: raw :: c_void , pub __pad3 : * mut :: std :: os :: raw :: c_void , pub __pad4 : * mut :: std :: os :: raw :: c_void , pub __pad5 : usize , pub _mode : :: std :: os :: raw :: c_int , pub _unused2 : [ :: std :: os :: raw :: c_char ; 20usize ] , } # [ test ] fn bindgen_test_layout__IO_FILE ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _IO_FILE > ( ) , 216usize , concat ! ( "Size of: " , stringify ! ( _IO_FILE ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _IO_FILE > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _IO_FILE ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_ptr as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_end as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_base as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_base as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_ptr as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_end as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_buf_base as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_buf_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_buf_end as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_buf_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_save_base as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_save_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_backup_base as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_backup_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_save_end as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_save_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _markers as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _markers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _chain as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _chain ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _fileno as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _fileno ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _flags2 as * const _ as usize } , 116usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _flags2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _old_offset as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _old_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _cur_column as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _cur_column ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _vtable_offset as * const _ as usize } , 130usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _vtable_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _shortbuf as * const _ as usize } , 131usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _shortbuf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _lock as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _offset as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad1 as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad2 as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad3 as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad4 as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad5 as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad5 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _mode as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _unused2 as * const _ as usize } , 196usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _unused2 ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct buf_mem_st { pub length : usize , pub data : * mut :: std :: os :: raw :: c_char , pub max : usize , } # [ test ] fn bindgen_test_layout_buf_mem_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < buf_mem_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( buf_mem_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < buf_mem_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( buf_mem_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < buf_mem_st > ( ) ) ) . length as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( buf_mem_st ) , "::" , stringify ! ( length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < buf_mem_st > ( ) ) ) . data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( buf_mem_st ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < buf_mem_st > ( ) ) ) . max as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( buf_mem_st ) , "::" , stringify ! ( max ) ) ) ; } extern "C" { pub fn ERR_load_BIO_strings ( ) ; } extern "C" { pub fn ERR_load_ERR_strings ( ) ; } extern "C" { pub fn ERR_load_crypto_strings ( ) ; } extern "C" { pub fn ERR_load_RAND_strings ( ) ; } extern "C" { pub fn ERR_free_strings ( ) ; } extern "C" { pub fn ERR_get_error ( ) -> u32 ; } extern "C" { pub fn ERR_get_error_line ( file : * mut * const :: std :: os :: raw :: c_char , line : * mut :: std :: os :: raw :: c_int ) -> u32 ; } extern "C" { pub fn ERR_get_error_line_data ( file : * mut * const :: std :: os :: raw :: c_char , line : * mut :: std :: os :: raw :: c_int , data : * mut * const :: std :: os :: raw :: c_char , flags : * mut :: std :: os :: raw :: c_int ) -> u32 ; } extern "C" { pub fn ERR_peek_error ( ) -> u32 ; } extern "C" { pub fn ERR_peek_error_line ( file : * mut * const :: std :: os :: raw :: c_char , line : * mut :: std :: os :: raw :: c_int ) -> u32 ; } extern "C" { pub fn ERR_peek_error_line_data ( file : * mut * const :: std :: os :: raw :: c_char , line : * mut :: std :: os :: raw :: c_int , data : * mut * const :: std :: os :: raw :: c_char , flags : * mut :: std :: os :: raw :: c_int ) -> u32 ; } extern "C" { pub fn ERR_peek_last_error ( ) -> u32 ; } extern "C" { pub fn ERR_peek_last_error_line ( file : * mut * const :: std :: os :: raw :: c_char , line : * mut :: std :: os :: raw :: c_int ) -> u32 ; } extern "C" { pub fn ERR_peek_last_error_line_data ( file : * mut * const :: std :: os :: raw :: c_char , line : * mut :: std :: os :: raw :: c_int , data : * mut * const :: std :: os :: raw :: c_char , flags : * mut :: std :: os :: raw :: c_int ) -> u32 ; } extern "C" { pub fn ERR_error_string_n ( packed_error : u32 , buf : * mut :: std :: os :: raw :: c_char , len : usize ) ; } extern "C" { pub fn ERR_lib_error_string ( packed_error : u32 ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn ERR_reason_error_string ( packed_error : u32 ) -> * const :: std :: os :: raw :: c_char ; } pub type ERR_print_errors_callback_t = :: std :: option :: Option < unsafe extern "C" fn ( str : * const :: std :: os :: raw :: c_char , len : usize , ctx : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > ; extern "C" { pub fn ERR_print_errors_cb ( callback : ERR_print_errors_callback_t , ctx : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn ERR_print_errors_fp ( file : * mut FILE ) ; } extern "C" { pub fn ERR_clear_error ( ) ; } extern "C" { pub fn ERR_set_mark ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ERR_pop_to_mark ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ERR_get_next_error_library ( ) -> :: std :: os :: raw :: c_int ; } pub const ERR_LIB_NONE : _bindgen_ty_1 = 1 ; pub const ERR_LIB_SYS : _bindgen_ty_1 = 2 ; pub const ERR_LIB_BN : _bindgen_ty_1 = 3 ; pub const ERR_LIB_RSA : _bindgen_ty_1 = 4 ; pub const ERR_LIB_DH : _bindgen_ty_1 = 5 ; pub const ERR_LIB_EVP : _bindgen_ty_1 = 6 ; pub const ERR_LIB_BUF : _bindgen_ty_1 = 7 ; pub const ERR_LIB_OBJ : _bindgen_ty_1 = 8 ; pub const ERR_LIB_PEM : _bindgen_ty_1 = 9 ; pub const ERR_LIB_DSA : _bindgen_ty_1 = 10 ; pub const ERR_LIB_X509 : _bindgen_ty_1 = 11 ; pub const ERR_LIB_ASN1 : _bindgen_ty_1 = 12 ; pub const ERR_LIB_CONF : _bindgen_ty_1 = 13 ; pub const ERR_LIB_CRYPTO : _bindgen_ty_1 = 14 ; pub const ERR_LIB_EC : _bindgen_ty_1 = 15 ; pub const ERR_LIB_SSL : _bindgen_ty_1 = 16 ; pub const ERR_LIB_BIO : _bindgen_ty_1 = 17 ; pub const ERR_LIB_PKCS7 : _bindgen_ty_1 = 18 ; pub const ERR_LIB_PKCS8 : _bindgen_ty_1 = 19 ; pub const ERR_LIB_X509V3 : _bindgen_ty_1 = 20 ; pub const ERR_LIB_RAND : _bindgen_ty_1 = 21 ; pub const ERR_LIB_ENGINE : _bindgen_ty_1 = 22 ; pub const ERR_LIB_OCSP : _bindgen_ty_1 = 23 ; pub const ERR_LIB_UI : _bindgen_ty_1 = 24 ; pub const ERR_LIB_COMP : _bindgen_ty_1 = 25 ; pub const ERR_LIB_ECDSA : _bindgen_ty_1 = 26 ; pub const ERR_LIB_ECDH : _bindgen_ty_1 = 27 ; pub const ERR_LIB_HMAC : _bindgen_ty_1 = 28 ; pub const ERR_LIB_DIGEST : _bindgen_ty_1 = 29 ; pub const ERR_LIB_CIPHER : _bindgen_ty_1 = 30 ; pub const ERR_LIB_HKDF : _bindgen_ty_1 = 31 ; pub const ERR_LIB_USER : _bindgen_ty_1 = 32 ; pub const ERR_NUM_LIBS : _bindgen_ty_1 = 33 ; pub type _bindgen_ty_1 = u32 ; extern "C" { pub fn ERR_remove_state ( pid : :: std :: os :: raw :: c_ulong ) ; } extern "C" { pub fn ERR_remove_thread_state ( tid : * const CRYPTO_THREADID ) ; } extern "C" { pub fn ERR_func_error_string ( packed_error : u32 ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn ERR_error_string ( packed_error : u32 , buf : * mut :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn ERR_clear_system_error ( ) ; } extern "C" { pub fn ERR_put_error ( library : :: std :: os :: raw :: c_int , unused : :: std :: os :: raw :: c_int , reason : :: std :: os :: raw :: c_int , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_uint ) ; } extern "C" { pub fn ERR_add_error_data ( count : :: std :: os :: raw :: c_uint , ... ) ; } extern "C" { pub fn ERR_add_error_dataf ( format : * const :: std :: os :: raw :: c_char , ... ) ; } pub type OPENSSL_STRING = * mut :: std :: os :: raw :: c_char ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_void { _unused : [ u8 ; 0 ] , } pub type CRYPTO_EX_DATA = crypto_ex_data_st ; pub type CRYPTO_EX_free = :: std :: option :: Option < unsafe extern "C" fn ( parent : * mut :: std :: os :: raw :: c_void , ptr : * mut :: std :: os :: raw :: c_void , ad : * mut CRYPTO_EX_DATA , index : :: std :: os :: raw :: c_int , argl : :: std :: os :: raw :: c_long , argp : * mut :: std :: os :: raw :: c_void ) > ; extern "C" { pub fn CRYPTO_cleanup_all_ex_data ( ) ; } pub type CRYPTO_EX_dup = :: std :: option :: Option < unsafe extern "C" fn ( to : * mut CRYPTO_EX_DATA , from : * const CRYPTO_EX_DATA , from_d : * mut * mut :: std :: os :: raw :: c_void , index : :: std :: os :: raw :: c_int , argl : :: std :: os :: raw :: c_long , argp : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > ; pub type CRYPTO_EX_unused = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct crypto_ex_data_st { pub sk : * mut stack_st_void , } # [ test ] fn bindgen_test_layout_crypto_ex_data_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < crypto_ex_data_st > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( crypto_ex_data_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < crypto_ex_data_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( crypto_ex_data_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < crypto_ex_data_st > ( ) ) ) . sk as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( crypto_ex_data_st ) , "::" , stringify ! ( sk ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union crypto_mutex_st { pub alignment : f64 , pub padding : [ u8 ; 56usize ] , _bindgen_union_align : [ u64 ; 7usize ] , } # [ test ] fn bindgen_test_layout_crypto_mutex_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < crypto_mutex_st > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( crypto_mutex_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < crypto_mutex_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( crypto_mutex_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < crypto_mutex_st > ( ) ) ) . alignment as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( crypto_mutex_st ) , "::" , stringify ! ( alignment ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < crypto_mutex_st > ( ) ) ) . padding as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( crypto_mutex_st ) , "::" , stringify ! ( padding ) ) ) ; } pub type CRYPTO_MUTEX = crypto_mutex_st ; pub type CRYPTO_refcount_t = u32 ; extern "C" { pub fn CRYPTO_num_locks ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CRYPTO_set_locking_callback ( func : :: std :: option :: Option < unsafe extern "C" fn ( mode : :: std :: os :: raw :: c_int , lock_num : :: std :: os :: raw :: c_int , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int ) > ) ; } extern "C" { pub fn CRYPTO_set_add_lock_callback ( func : :: std :: option :: Option < unsafe extern "C" fn ( num : * mut :: std :: os :: raw :: c_int , amount : :: std :: os :: raw :: c_int , lock_num : :: std :: os :: raw :: c_int , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > ) ; } extern "C" { pub fn CRYPTO_get_locking_callback ( ) -> :: std :: option :: Option < unsafe extern "C" fn ( ) > ; } extern "C" { pub fn CRYPTO_get_lock_name ( lock_num : :: std :: os :: raw :: c_int ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn CRYPTO_THREADID_set_callback ( threadid_func : :: std :: option :: Option < unsafe extern "C" fn ( threadid : * mut CRYPTO_THREADID ) > ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CRYPTO_THREADID_set_numeric ( id : * mut CRYPTO_THREADID , val : :: std :: os :: raw :: c_ulong ) ; } extern "C" { pub fn CRYPTO_THREADID_set_pointer ( id : * mut CRYPTO_THREADID , ptr : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn CRYPTO_THREADID_current ( id : * mut CRYPTO_THREADID ) ; } extern "C" { pub fn CRYPTO_set_id_callback ( func : :: std :: option :: Option < unsafe extern "C" fn ( ) -> :: std :: os :: raw :: c_ulong > ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct CRYPTO_dynlock { pub references : :: std :: os :: raw :: c_int , pub data : * mut CRYPTO_dynlock_value , } # [ test ] fn bindgen_test_layout_CRYPTO_dynlock ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CRYPTO_dynlock > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( CRYPTO_dynlock ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CRYPTO_dynlock > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CRYPTO_dynlock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < CRYPTO_dynlock > ( ) ) ) . references as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( CRYPTO_dynlock ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < CRYPTO_dynlock > ( ) ) ) . data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( CRYPTO_dynlock ) , "::" , stringify ! ( data ) ) ) ; } extern "C" { pub fn CRYPTO_set_dynlock_create_callback ( dyn_create_function : :: std :: option :: Option < unsafe extern "C" fn ( file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int ) -> * mut CRYPTO_dynlock_value > ) ; } extern "C" { pub fn CRYPTO_set_dynlock_lock_callback ( dyn_lock_function : :: std :: option :: Option < unsafe extern "C" fn ( mode : :: std :: os :: raw :: c_int , l : * mut CRYPTO_dynlock_value , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int ) > ) ; } extern "C" { pub fn CRYPTO_set_dynlock_destroy_callback ( dyn_destroy_function : :: std :: option :: Option < unsafe extern "C" fn ( l : * mut CRYPTO_dynlock_value , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int ) > ) ; } extern "C" { pub fn CRYPTO_get_dynlock_create_callback ( ) -> :: std :: option :: Option < unsafe extern "C" fn ( ) -> * mut CRYPTO_dynlock_value > ; } extern "C" { pub fn CRYPTO_get_dynlock_lock_callback ( ) -> :: std :: option :: Option < unsafe extern "C" fn ( ) > ; } extern "C" { pub fn CRYPTO_get_dynlock_destroy_callback ( ) -> :: std :: option :: Option < unsafe extern "C" fn ( ) > ; } extern "C" { pub fn BIO_new ( method : * const BIO_METHOD ) -> * mut BIO ; } extern "C" { pub fn BIO_free ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_vfree ( bio : * mut BIO ) ; } extern "C" { pub fn BIO_up_ref ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_read ( bio : * mut BIO , data : * mut :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_gets ( bio : * mut BIO , buf : * mut :: std :: os :: raw :: c_char , size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_write ( bio : * mut BIO , data : * const :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_write_all ( bio : * mut BIO , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_puts ( bio : * mut BIO , buf : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_flush ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_ctrl ( bio : * mut BIO , cmd : :: std :: os :: raw :: c_int , larg : :: std :: os :: raw :: c_long , parg : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_long ; } extern "C" { pub fn BIO_ptr_ctrl ( bp : * mut BIO , cmd : :: std :: os :: raw :: c_int , larg : :: std :: os :: raw :: c_long ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn BIO_int_ctrl ( bp : * mut BIO , cmd : :: std :: os :: raw :: c_int , larg : :: std :: os :: raw :: c_long , iarg : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_long ; } extern "C" { pub fn BIO_reset ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_eof ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_flags ( bio : * mut BIO , flags : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn BIO_test_flags ( bio : * const BIO , flags : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_should_read ( bio : * const BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_should_write ( bio : * const BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_should_retry ( bio : * const BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_should_io_special ( bio : * const BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_get_retry_reason ( bio : * const BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_clear_flags ( bio : * mut BIO , flags : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn BIO_set_retry_read ( bio : * mut BIO ) ; } extern "C" { pub fn BIO_set_retry_write ( bio : * mut BIO ) ; } extern "C" { pub fn BIO_get_retry_flags ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_clear_retry_flags ( bio : * mut BIO ) ; } extern "C" { pub fn BIO_method_type ( bio : * const BIO ) -> :: std :: os :: raw :: c_int ; } pub type bio_info_cb = :: std :: option :: Option < unsafe extern "C" fn ( bio : * mut BIO , event : :: std :: os :: raw :: c_int , parg : * const :: std :: os :: raw :: c_char , cmd : :: std :: os :: raw :: c_int , larg : :: std :: os :: raw :: c_long , return_value : :: std :: os :: raw :: c_long ) -> :: std :: os :: raw :: c_long > ; extern "C" { pub fn BIO_callback_ctrl ( bio : * mut BIO , cmd : :: std :: os :: raw :: c_int , fp : bio_info_cb ) -> :: std :: os :: raw :: c_long ; } extern "C" { pub fn BIO_pending ( bio : * const BIO ) -> usize ; } extern "C" { pub fn BIO_ctrl_pending ( bio : * const BIO ) -> usize ; } extern "C" { pub fn BIO_wpending ( bio : * const BIO ) -> usize ; } extern "C" { pub fn BIO_set_close ( bio : * mut BIO , close_flag : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_number_read ( bio : * const BIO ) -> usize ; } extern "C" { pub fn BIO_number_written ( bio : * const BIO ) -> usize ; } extern "C" { pub fn BIO_push ( bio : * mut BIO , appended_bio : * mut BIO ) -> * mut BIO ; } extern "C" { pub fn BIO_pop ( bio : * mut BIO ) -> * mut BIO ; } extern "C" { pub fn BIO_next ( bio : * mut BIO ) -> * mut BIO ; } extern "C" { pub fn BIO_free_all ( bio : * mut BIO ) ; } extern "C" { pub fn BIO_find_type ( bio : * mut BIO , type_ : :: std :: os :: raw :: c_int ) -> * mut BIO ; } extern "C" { pub fn BIO_copy_next_retry ( bio : * mut BIO ) ; } extern "C" { pub fn BIO_printf ( bio : * mut BIO , format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_indent ( bio : * mut BIO , indent : :: std :: os :: raw :: c_uint , max_indent : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_hexdump ( bio : * mut BIO , data : * const u8 , len : usize , indent : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ERR_print_errors ( bio : * mut BIO ) ; } extern "C" { pub fn BIO_read_asn1 ( bio : * mut BIO , out : * mut * mut u8 , out_len : * mut usize , max_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_s_mem ( ) -> * const BIO_METHOD ; } extern "C" { pub fn BIO_new_mem_buf ( buf : * const :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_int ) -> * mut BIO ; } extern "C" { pub fn BIO_mem_contents ( bio : * const BIO , out_contents : * mut * const u8 , out_len : * mut usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_get_mem_data ( bio : * mut BIO , contents : * mut * mut :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_long ; } extern "C" { pub fn BIO_get_mem_ptr ( bio : * mut BIO , out : * mut * mut BUF_MEM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_mem_buf ( bio : * mut BIO , b : * mut BUF_MEM , take_ownership : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_mem_eof_return ( bio : * mut BIO , eof_value : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_s_fd ( ) -> * const BIO_METHOD ; } extern "C" { pub fn BIO_new_fd ( fd : :: std :: os :: raw :: c_int , close_flag : :: std :: os :: raw :: c_int ) -> * mut BIO ; } extern "C" { pub fn BIO_set_fd ( bio : * mut BIO , fd : :: std :: os :: raw :: c_int , close_flag : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_get_fd ( bio : * mut BIO , out_fd : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_s_file ( ) -> * const BIO_METHOD ; } extern "C" { pub fn BIO_new_file ( filename : * const :: std :: os :: raw :: c_char , mode : * const :: std :: os :: raw :: c_char ) -> * mut BIO ; } extern "C" { pub fn BIO_new_fp ( stream : * mut FILE , close_flag : :: std :: os :: raw :: c_int ) -> * mut BIO ; } extern "C" { pub fn BIO_get_fp ( bio : * mut BIO , out_file : * mut * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_fp ( bio : * mut BIO , file : * mut FILE , close_flag : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_read_filename ( bio : * mut BIO , filename : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_write_filename ( bio : * mut BIO , filename : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_append_filename ( bio : * mut BIO , filename : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_rw_filename ( bio : * mut BIO , filename : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_s_socket ( ) -> * const BIO_METHOD ; } extern "C" { pub fn BIO_new_socket ( fd : :: std :: os :: raw :: c_int , close_flag : :: std :: os :: raw :: c_int ) -> * mut BIO ; } extern "C" { pub fn BIO_s_connect ( ) -> * const BIO_METHOD ; } extern "C" { pub fn BIO_new_connect ( host_and_optional_port : * const :: std :: os :: raw :: c_char ) -> * mut BIO ; } extern "C" { pub fn BIO_set_conn_hostname ( bio : * mut BIO , host_and_optional_port : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_conn_port ( bio : * mut BIO , port_str : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_conn_int_port ( bio : * mut BIO , port : * const :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_nbio ( bio : * mut BIO , on : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_do_connect ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_new_bio_pair ( out1 : * mut * mut BIO , writebuf1 : usize , out2 : * mut * mut BIO , writebuf2 : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_ctrl_get_read_request ( bio : * mut BIO ) -> usize ; } extern "C" { pub fn BIO_ctrl_get_write_guarantee ( bio : * mut BIO ) -> usize ; } extern "C" { pub fn BIO_shutdown_wr ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_get_new_index ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_meth_new ( type_ : :: std :: os :: raw :: c_int , name : * const :: std :: os :: raw :: c_char ) -> * mut BIO_METHOD ; } extern "C" { pub fn BIO_meth_free ( method : * mut BIO_METHOD ) ; } extern "C" { pub fn BIO_meth_set_create ( method : * mut BIO_METHOD , create : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO ) -> :: std :: os :: raw :: c_int > ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_meth_set_destroy ( method : * mut BIO_METHOD , destroy : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO ) -> :: std :: os :: raw :: c_int > ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_meth_set_write ( method : * mut BIO_METHOD , write : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : * const :: std :: os :: raw :: c_char , arg3 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_meth_set_read ( method : * mut BIO_METHOD , read : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_meth_set_gets ( method : * mut BIO_METHOD , gets : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_meth_set_ctrl ( method : * mut BIO_METHOD , ctrl : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : :: std :: os :: raw :: c_int , arg3 : :: std :: os :: raw :: c_long , arg4 : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_long > ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_data ( bio : * mut BIO , ptr : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn BIO_get_data ( bio : * mut BIO ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn BIO_set_init ( bio : * mut BIO , init : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn BIO_get_init ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_f_base64 ( ) -> * const BIO_METHOD ; } extern "C" { pub fn BIO_set_retry_special ( bio : * mut BIO ) ; } extern "C" { pub fn BIO_set_write_buffer_size ( bio : * mut BIO , buffer_size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_set_shutdown ( bio : * mut BIO , shutdown : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn BIO_get_shutdown ( bio : * mut BIO ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_meth_set_puts ( method : * mut BIO_METHOD , puts : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct bio_method_st { pub type_ : :: std :: os :: raw :: c_int , pub name : * const :: std :: os :: raw :: c_char , pub bwrite : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : * const :: std :: os :: raw :: c_char , arg3 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub bread : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub bputs : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub bgets : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub ctrl : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : :: std :: os :: raw :: c_int , arg3 : :: std :: os :: raw :: c_long , arg4 : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_long > , pub create : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO ) -> :: std :: os :: raw :: c_int > , pub destroy : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO ) -> :: std :: os :: raw :: c_int > , pub callback_ctrl : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut BIO , arg2 : :: std :: os :: raw :: c_int , arg3 : bio_info_cb ) -> :: std :: os :: raw :: c_long > , } # [ test ] fn bindgen_test_layout_bio_method_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < bio_method_st > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( bio_method_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < bio_method_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( bio_method_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . type_ as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . bwrite as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( bwrite ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . bread as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( bread ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . bputs as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( bputs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . bgets as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( bgets ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . ctrl as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( ctrl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . create as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( create ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . destroy as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( destroy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_method_st > ( ) ) ) . callback_ctrl as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( bio_method_st ) , "::" , stringify ! ( callback_ctrl ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct bio_st { pub method : * const BIO_METHOD , pub init : :: std :: os :: raw :: c_int , pub shutdown : :: std :: os :: raw :: c_int , pub flags : :: std :: os :: raw :: c_int , pub retry_reason : :: std :: os :: raw :: c_int , pub num : :: std :: os :: raw :: c_int , pub references : CRYPTO_refcount_t , pub ptr : * mut :: std :: os :: raw :: c_void , pub next_bio : * mut BIO , pub num_read : usize , pub num_write : usize , } # [ test ] fn bindgen_test_layout_bio_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < bio_st > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( bio_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < bio_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( bio_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . method as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( method ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . init as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . shutdown as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( shutdown ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . flags as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . retry_reason as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( retry_reason ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . num as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( num ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . references as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . ptr as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . next_bio as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( next_bio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . num_read as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( num_read ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bio_st > ( ) ) ) . num_write as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( bio_st ) , "::" , stringify ! ( num_write ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct bn_gencb_st { pub arg : * mut :: std :: os :: raw :: c_void , pub callback : :: std :: option :: Option < unsafe extern "C" fn ( event : :: std :: os :: raw :: c_int , n : :: std :: os :: raw :: c_int , arg1 : * mut bn_gencb_st ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_bn_gencb_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < bn_gencb_st > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( bn_gencb_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < bn_gencb_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( bn_gencb_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bn_gencb_st > ( ) ) ) . arg as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( bn_gencb_st ) , "::" , stringify ! ( arg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bn_gencb_st > ( ) ) ) . callback as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( bn_gencb_st ) , "::" , stringify ! ( callback ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct bignum_st { pub d : * mut u64 , pub width : :: std :: os :: raw :: c_int , pub dmax : :: std :: os :: raw :: c_int , pub neg : :: std :: os :: raw :: c_int , pub flags : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_bignum_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < bignum_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( bignum_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < bignum_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( bignum_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bignum_st > ( ) ) ) . d as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( bignum_st ) , "::" , stringify ! ( d ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bignum_st > ( ) ) ) . width as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( bignum_st ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bignum_st > ( ) ) ) . dmax as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( bignum_st ) , "::" , stringify ! ( dmax ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bignum_st > ( ) ) ) . neg as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( bignum_st ) , "::" , stringify ! ( neg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bignum_st > ( ) ) ) . flags as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( bignum_st ) , "::" , stringify ! ( flags ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct bn_mont_ctx_st { pub RR : BIGNUM , pub N : BIGNUM , pub n0 : [ u64 ; 2usize ] , } # [ test ] fn bindgen_test_layout_bn_mont_ctx_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < bn_mont_ctx_st > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( bn_mont_ctx_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < bn_mont_ctx_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( bn_mont_ctx_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bn_mont_ctx_st > ( ) ) ) . RR as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( bn_mont_ctx_st ) , "::" , stringify ! ( RR ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bn_mont_ctx_st > ( ) ) ) . N as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( bn_mont_ctx_st ) , "::" , stringify ! ( N ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < bn_mont_ctx_st > ( ) ) ) . n0 as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( bn_mont_ctx_st ) , "::" , stringify ! ( n0 ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct asn1_object_st { pub sn : * const :: std :: os :: raw :: c_char , pub ln : * const :: std :: os :: raw :: c_char , pub nid : :: std :: os :: raw :: c_int , pub length : :: std :: os :: raw :: c_int , pub data : * const :: std :: os :: raw :: c_uchar , pub flags : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_asn1_object_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < asn1_object_st > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( asn1_object_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < asn1_object_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( asn1_object_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_object_st > ( ) ) ) . sn as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_object_st ) , "::" , stringify ! ( sn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_object_st > ( ) ) ) . ln as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( asn1_object_st ) , "::" , stringify ! ( ln ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_object_st > ( ) ) ) . nid as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( asn1_object_st ) , "::" , stringify ! ( nid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_object_st > ( ) ) ) . length as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( asn1_object_st ) , "::" , stringify ! ( length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_object_st > ( ) ) ) . data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( asn1_object_st ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_object_st > ( ) ) ) . flags as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( asn1_object_st ) , "::" , stringify ! ( flags ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_ASN1_OBJECT { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct asn1_string_st { pub length : :: std :: os :: raw :: c_int , pub type_ : :: std :: os :: raw :: c_int , pub data : * mut :: std :: os :: raw :: c_uchar , pub flags : :: std :: os :: raw :: c_long , } # [ test ] fn bindgen_test_layout_asn1_string_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < asn1_string_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( asn1_string_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < asn1_string_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( asn1_string_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_st > ( ) ) ) . length as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_st ) , "::" , stringify ! ( length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_st > ( ) ) ) . type_ as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_st ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_st > ( ) ) ) . data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_st ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_st > ( ) ) ) . flags as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_st ) , "::" , stringify ! ( flags ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_ENCODING_st { pub enc : * mut :: std :: os :: raw :: c_uchar , pub len : :: std :: os :: raw :: c_long , pub modified : :: std :: os :: raw :: c_int , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub __bindgen_padding_0 : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_ASN1_ENCODING_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_ENCODING_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( ASN1_ENCODING_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_ENCODING_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_ENCODING_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ENCODING_st > ( ) ) ) . enc as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ENCODING_st ) , "::" , stringify ! ( enc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ENCODING_st > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ENCODING_st ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ENCODING_st > ( ) ) ) . modified as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ENCODING_st ) , "::" , stringify ! ( modified ) ) ) ; } impl ASN1_ENCODING_st { # [ inline ] pub fn alias_only ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_alias_only ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn alias_only_on_next_parse ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_alias_only_on_next_parse ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( alias_only : :: std :: os :: raw :: c_uint , alias_only_on_next_parse : :: std :: os :: raw :: c_uint ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let alias_only : u32 = unsafe { :: std :: mem :: transmute ( alias_only ) } ; alias_only as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let alias_only_on_next_parse : u32 = unsafe { :: std :: mem :: transmute ( alias_only_on_next_parse ) } ; alias_only_on_next_parse as u64 } ) ; __bindgen_bitfield_unit } } pub type ASN1_ENCODING = ASN1_ENCODING_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct asn1_string_table_st { pub nid : :: std :: os :: raw :: c_int , pub minsize : :: std :: os :: raw :: c_long , pub maxsize : :: std :: os :: raw :: c_long , pub mask : :: std :: os :: raw :: c_ulong , pub flags : :: std :: os :: raw :: c_ulong , } # [ test ] fn bindgen_test_layout_asn1_string_table_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < asn1_string_table_st > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( asn1_string_table_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < asn1_string_table_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( asn1_string_table_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_table_st > ( ) ) ) . nid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_table_st ) , "::" , stringify ! ( nid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_table_st > ( ) ) ) . minsize as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_table_st ) , "::" , stringify ! ( minsize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_table_st > ( ) ) ) . maxsize as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_table_st ) , "::" , stringify ! ( maxsize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_table_st > ( ) ) ) . mask as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_table_st ) , "::" , stringify ! ( mask ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_string_table_st > ( ) ) ) . flags as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( asn1_string_table_st ) , "::" , stringify ! ( flags ) ) ) ; } pub type ASN1_STRING_TABLE = asn1_string_table_st ; pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st ; pub type ASN1_TLC = ASN1_TLC_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_VALUE_st { _unused : [ u8 ; 0 ] , } pub type ASN1_VALUE = ASN1_VALUE_st ; pub type i2d_of_void = :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_void , arg2 : * mut * mut :: std :: os :: raw :: c_uchar ) -> :: std :: os :: raw :: c_int > ; pub type ASN1_ITEM_EXP = ASN1_ITEM ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct asn1_type_st { pub type_ : :: std :: os :: raw :: c_int , pub value : asn1_type_st__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union asn1_type_st__bindgen_ty_1 { pub ptr : * mut :: std :: os :: raw :: c_char , pub boolean : ASN1_BOOLEAN , pub asn1_string : * mut ASN1_STRING , pub object : * mut ASN1_OBJECT , pub integer : * mut ASN1_INTEGER , pub enumerated : * mut ASN1_ENUMERATED , pub bit_string : * mut ASN1_BIT_STRING , pub octet_string : * mut ASN1_OCTET_STRING , pub printablestring : * mut ASN1_PRINTABLESTRING , pub t61string : * mut ASN1_T61STRING , pub ia5string : * mut ASN1_IA5STRING , pub generalstring : * mut ASN1_GENERALSTRING , pub bmpstring : * mut ASN1_BMPSTRING , pub universalstring : * mut ASN1_UNIVERSALSTRING , pub utctime : * mut ASN1_UTCTIME , pub generalizedtime : * mut ASN1_GENERALIZEDTIME , pub visiblestring : * mut ASN1_VISIBLESTRING , pub utf8string : * mut ASN1_UTF8STRING , pub set : * mut ASN1_STRING , pub sequence : * mut ASN1_STRING , pub asn1_value : * mut ASN1_VALUE , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout_asn1_type_st__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < asn1_type_st__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < asn1_type_st__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( asn1_type_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . ptr as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . boolean as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( boolean ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . asn1_string as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( asn1_string ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . object as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( object ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . integer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( integer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . enumerated as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( enumerated ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . bit_string as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( bit_string ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . octet_string as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( octet_string ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . printablestring as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( printablestring ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . t61string as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( t61string ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . ia5string as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( ia5string ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . generalstring as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( generalstring ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . bmpstring as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( bmpstring ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . universalstring as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( universalstring ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . utctime as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( utctime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . generalizedtime as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( generalizedtime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . visiblestring as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( visiblestring ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . utf8string as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( utf8string ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . set as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( set ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . sequence as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( sequence ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st__bindgen_ty_1 > ( ) ) ) . asn1_value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st__bindgen_ty_1 ) , "::" , stringify ! ( asn1_value ) ) ) ; } # [ test ] fn bindgen_test_layout_asn1_type_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < asn1_type_st > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( asn1_type_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < asn1_type_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( asn1_type_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st > ( ) ) ) . type_ as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < asn1_type_st > ( ) ) ) . value as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( asn1_type_st ) , "::" , stringify ! ( value ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_ASN1_TYPE { _unused : [ u8 ; 0 ] , } pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE ; extern "C" { # [ link_name = "\u{1}ASN1_SEQUENCE_ANY_it" ] pub static mut ASN1_SEQUENCE_ANY_it : ASN1_ITEM ; } extern "C" { # [ link_name = "\u{1}ASN1_SET_ANY_it" ] pub static mut ASN1_SET_ANY_it : ASN1_ITEM ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_algor_st { pub algorithm : * mut ASN1_OBJECT , pub parameter : * mut ASN1_TYPE , } # [ test ] fn bindgen_test_layout_X509_algor_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509_algor_st > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( X509_algor_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509_algor_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509_algor_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_algor_st > ( ) ) ) . algorithm as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509_algor_st ) , "::" , stringify ! ( algorithm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_algor_st > ( ) ) ) . parameter as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( X509_algor_st ) , "::" , stringify ! ( parameter ) ) ) ; } extern "C" { pub fn ASN1_TYPE_new ( ) -> * mut ASN1_TYPE ; } extern "C" { pub fn ASN1_TYPE_free ( a : * mut ASN1_TYPE ) ; } extern "C" { # [ link_name = "\u{1}ASN1_ANY_it" ] pub static mut ASN1_ANY_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_TYPE_get ( a : * mut ASN1_TYPE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_TYPE_set ( a : * mut ASN1_TYPE , type_ : :: std :: os :: raw :: c_int , value : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn ASN1_TYPE_set1 ( a : * mut ASN1_TYPE , type_ : :: std :: os :: raw :: c_int , value : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_TYPE_cmp ( a : * const ASN1_TYPE , b : * const ASN1_TYPE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_OBJECT_new ( ) -> * mut ASN1_OBJECT ; } extern "C" { pub fn ASN1_OBJECT_free ( a : * mut ASN1_OBJECT ) ; } extern "C" { # [ link_name = "\u{1}ASN1_OBJECT_it" ] pub static mut ASN1_OBJECT_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_STRING_new ( ) -> * mut ASN1_STRING ; } extern "C" { pub fn ASN1_STRING_free ( a : * mut ASN1_STRING ) ; } extern "C" { pub fn ASN1_STRING_copy ( dst : * mut ASN1_STRING , str : * const ASN1_STRING ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_dup ( a : * const ASN1_STRING ) -> * mut ASN1_STRING ; } extern "C" { pub fn ASN1_STRING_type_new ( type_ : :: std :: os :: raw :: c_int ) -> * mut ASN1_STRING ; } extern "C" { pub fn ASN1_STRING_cmp ( a : * const ASN1_STRING , b : * const ASN1_STRING ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_set ( str : * mut ASN1_STRING , data : * const :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_set0 ( str : * mut ASN1_STRING , data : * mut :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn ASN1_STRING_length ( x : * const ASN1_STRING ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_length_set ( x : * mut ASN1_STRING , n : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn ASN1_STRING_type ( x : * mut ASN1_STRING ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_data ( x : * mut ASN1_STRING ) -> * mut :: std :: os :: raw :: c_uchar ; } extern "C" { pub fn ASN1_STRING_get0_data ( x : * const ASN1_STRING ) -> * const :: std :: os :: raw :: c_uchar ; } extern "C" { pub fn ASN1_BIT_STRING_new ( ) -> * mut ASN1_BIT_STRING ; } extern "C" { pub fn ASN1_BIT_STRING_free ( a : * mut ASN1_BIT_STRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_BIT_STRING_it" ] pub static mut ASN1_BIT_STRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_BIT_STRING_set ( a : * mut ASN1_BIT_STRING , d : * mut :: std :: os :: raw :: c_uchar , length : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_BIT_STRING_set_bit ( a : * mut ASN1_BIT_STRING , n : :: std :: os :: raw :: c_int , value : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_BIT_STRING_get_bit ( a : * mut ASN1_BIT_STRING , n : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_BIT_STRING_check ( a : * mut ASN1_BIT_STRING , flags : * mut :: std :: os :: raw :: c_uchar , flags_len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_INTEGER_new ( ) -> * mut ASN1_INTEGER ; } extern "C" { pub fn ASN1_INTEGER_free ( a : * mut ASN1_INTEGER ) ; } extern "C" { # [ link_name = "\u{1}ASN1_INTEGER_it" ] pub static mut ASN1_INTEGER_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_INTEGER_dup ( x : * const ASN1_INTEGER ) -> * mut ASN1_INTEGER ; } extern "C" { pub fn ASN1_INTEGER_cmp ( x : * const ASN1_INTEGER , y : * const ASN1_INTEGER ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_ENUMERATED_new ( ) -> * mut ASN1_ENUMERATED ; } extern "C" { pub fn ASN1_ENUMERATED_free ( a : * mut ASN1_ENUMERATED ) ; } extern "C" { # [ link_name = "\u{1}ASN1_ENUMERATED_it" ] pub static mut ASN1_ENUMERATED_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_UTCTIME_check ( a : * const ASN1_UTCTIME ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_UTCTIME_set ( s : * mut ASN1_UTCTIME , t : time_t ) -> * mut ASN1_UTCTIME ; } extern "C" { pub fn ASN1_UTCTIME_adj ( s : * mut ASN1_UTCTIME , t : time_t , offset_day : :: std :: os :: raw :: c_int , offset_sec : :: std :: os :: raw :: c_long ) -> * mut ASN1_UTCTIME ; } extern "C" { pub fn ASN1_UTCTIME_set_string ( s : * mut ASN1_UTCTIME , str : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_UTCTIME_cmp_time_t ( s : * const ASN1_UTCTIME , t : time_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_GENERALIZEDTIME_check ( a : * const ASN1_GENERALIZEDTIME ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_GENERALIZEDTIME_set ( s : * mut ASN1_GENERALIZEDTIME , t : time_t ) -> * mut ASN1_GENERALIZEDTIME ; } extern "C" { pub fn ASN1_GENERALIZEDTIME_adj ( s : * mut ASN1_GENERALIZEDTIME , t : time_t , offset_day : :: std :: os :: raw :: c_int , offset_sec : :: std :: os :: raw :: c_long ) -> * mut ASN1_GENERALIZEDTIME ; } extern "C" { pub fn ASN1_GENERALIZEDTIME_set_string ( s : * mut ASN1_GENERALIZEDTIME , str : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_TIME_diff ( pday : * mut :: std :: os :: raw :: c_int , psec : * mut :: std :: os :: raw :: c_int , from : * const ASN1_TIME , to : * const ASN1_TIME ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_OCTET_STRING_new ( ) -> * mut ASN1_OCTET_STRING ; } extern "C" { pub fn ASN1_OCTET_STRING_free ( a : * mut ASN1_OCTET_STRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_OCTET_STRING_it" ] pub static mut ASN1_OCTET_STRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_OCTET_STRING_dup ( a : * const ASN1_OCTET_STRING ) -> * mut ASN1_OCTET_STRING ; } extern "C" { pub fn ASN1_OCTET_STRING_cmp ( a : * const ASN1_OCTET_STRING , b : * const ASN1_OCTET_STRING ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_OCTET_STRING_set ( str : * mut ASN1_OCTET_STRING , data : * const :: std :: os :: raw :: c_uchar , len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_VISIBLESTRING_new ( ) -> * mut ASN1_VISIBLESTRING ; } extern "C" { pub fn ASN1_VISIBLESTRING_free ( a : * mut ASN1_VISIBLESTRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_VISIBLESTRING_it" ] pub static mut ASN1_VISIBLESTRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_UNIVERSALSTRING_new ( ) -> * mut ASN1_UNIVERSALSTRING ; } extern "C" { pub fn ASN1_UNIVERSALSTRING_free ( a : * mut ASN1_UNIVERSALSTRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_UNIVERSALSTRING_it" ] pub static mut ASN1_UNIVERSALSTRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_UTF8STRING_new ( ) -> * mut ASN1_UTF8STRING ; } extern "C" { pub fn ASN1_UTF8STRING_free ( a : * mut ASN1_UTF8STRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_UTF8STRING_it" ] pub static mut ASN1_UTF8STRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_NULL_new ( ) -> * mut ASN1_NULL ; } extern "C" { pub fn ASN1_NULL_free ( a : * mut ASN1_NULL ) ; } extern "C" { # [ link_name = "\u{1}ASN1_NULL_it" ] pub static mut ASN1_NULL_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_BMPSTRING_new ( ) -> * mut ASN1_BMPSTRING ; } extern "C" { pub fn ASN1_BMPSTRING_free ( a : * mut ASN1_BMPSTRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_BMPSTRING_it" ] pub static mut ASN1_BMPSTRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_PRINTABLE_new ( ) -> * mut ASN1_STRING ; } extern "C" { pub fn ASN1_PRINTABLE_free ( a : * mut ASN1_STRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_PRINTABLE_it" ] pub static mut ASN1_PRINTABLE_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_PRINTABLESTRING_new ( ) -> * mut ASN1_PRINTABLESTRING ; } extern "C" { pub fn ASN1_PRINTABLESTRING_free ( a : * mut ASN1_PRINTABLESTRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_PRINTABLESTRING_it" ] pub static mut ASN1_PRINTABLESTRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_T61STRING_new ( ) -> * mut ASN1_T61STRING ; } extern "C" { pub fn ASN1_T61STRING_free ( a : * mut ASN1_T61STRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_T61STRING_it" ] pub static mut ASN1_T61STRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_IA5STRING_new ( ) -> * mut ASN1_IA5STRING ; } extern "C" { pub fn ASN1_IA5STRING_free ( a : * mut ASN1_IA5STRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_IA5STRING_it" ] pub static mut ASN1_IA5STRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_GENERALSTRING_new ( ) -> * mut ASN1_GENERALSTRING ; } extern "C" { pub fn ASN1_GENERALSTRING_free ( a : * mut ASN1_GENERALSTRING ) ; } extern "C" { # [ link_name = "\u{1}ASN1_GENERALSTRING_it" ] pub static mut ASN1_GENERALSTRING_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_UTCTIME_new ( ) -> * mut ASN1_UTCTIME ; } extern "C" { pub fn ASN1_UTCTIME_free ( a : * mut ASN1_UTCTIME ) ; } extern "C" { # [ link_name = "\u{1}ASN1_UTCTIME_it" ] pub static mut ASN1_UTCTIME_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_GENERALIZEDTIME_new ( ) -> * mut ASN1_GENERALIZEDTIME ; } extern "C" { pub fn ASN1_GENERALIZEDTIME_free ( a : * mut ASN1_GENERALIZEDTIME ) ; } extern "C" { # [ link_name = "\u{1}ASN1_GENERALIZEDTIME_it" ] pub static mut ASN1_GENERALIZEDTIME_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_TIME_new ( ) -> * mut ASN1_TIME ; } extern "C" { pub fn ASN1_TIME_free ( a : * mut ASN1_TIME ) ; } extern "C" { # [ link_name = "\u{1}ASN1_TIME_it" ] pub static mut ASN1_TIME_it : ASN1_ITEM ; } extern "C" { # [ link_name = "\u{1}ASN1_OCTET_STRING_NDEF_it" ] pub static mut ASN1_OCTET_STRING_NDEF_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_TIME_set ( s : * mut ASN1_TIME , t : time_t ) -> * mut ASN1_TIME ; } extern "C" { pub fn ASN1_TIME_adj ( s : * mut ASN1_TIME , t : time_t , offset_day : :: std :: os :: raw :: c_int , offset_sec : :: std :: os :: raw :: c_long ) -> * mut ASN1_TIME ; } extern "C" { pub fn ASN1_TIME_check ( t : * mut ASN1_TIME ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_TIME_to_generalizedtime ( t : * mut ASN1_TIME , out : * mut * mut ASN1_GENERALIZEDTIME ) -> * mut ASN1_GENERALIZEDTIME ; } extern "C" { pub fn ASN1_TIME_set_string ( s : * mut ASN1_TIME , str : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_OBJECT_create ( nid : :: std :: os :: raw :: c_int , data : * mut :: std :: os :: raw :: c_uchar , len : :: std :: os :: raw :: c_int , sn : * const :: std :: os :: raw :: c_char , ln : * const :: std :: os :: raw :: c_char ) -> * mut ASN1_OBJECT ; } extern "C" { pub fn ASN1_INTEGER_set ( a : * mut ASN1_INTEGER , v : :: std :: os :: raw :: c_long ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_INTEGER_set_uint64 ( out : * mut ASN1_INTEGER , v : u64 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_INTEGER_get ( a : * const ASN1_INTEGER ) -> :: std :: os :: raw :: c_long ; } extern "C" { pub fn ASN1_INTEGER_to_BN ( ai : * const ASN1_INTEGER , bn : * mut BIGNUM ) -> * mut BIGNUM ; } extern "C" { pub fn ASN1_ENUMERATED_set ( a : * mut ASN1_ENUMERATED , v : :: std :: os :: raw :: c_long ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_ENUMERATED_get ( a : * mut ASN1_ENUMERATED ) -> :: std :: os :: raw :: c_long ; } extern "C" { pub fn ASN1_ENUMERATED_to_BN ( ai : * mut ASN1_ENUMERATED , bn : * mut BIGNUM ) -> * mut BIGNUM ; } extern "C" { pub fn ASN1_PRINTABLE_type ( s : * const :: std :: os :: raw :: c_uchar , max : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_tag2bit ( tag : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_ulong ; } extern "C" { pub fn ASN1_get_object ( pp : * mut * const :: std :: os :: raw :: c_uchar , plength : * mut :: std :: os :: raw :: c_long , ptag : * mut :: std :: os :: raw :: c_int , pclass : * mut :: std :: os :: raw :: c_int , omax : :: std :: os :: raw :: c_long ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_put_object ( pp : * mut * mut :: std :: os :: raw :: c_uchar , constructed : :: std :: os :: raw :: c_int , length : :: std :: os :: raw :: c_int , tag : :: std :: os :: raw :: c_int , xclass : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn ASN1_put_eoc ( pp : * mut * mut :: std :: os :: raw :: c_uchar ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_object_size ( constructed : :: std :: os :: raw :: c_int , length : :: std :: os :: raw :: c_int , tag : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_dup ( it : * const ASN1_ITEM , x : * mut :: std :: os :: raw :: c_void ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn ASN1_item_d2i_fp ( it : * const ASN1_ITEM , in_ : * mut FILE , x : * mut :: std :: os :: raw :: c_void ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn ASN1_item_i2d_fp ( it : * const ASN1_ITEM , out : * mut FILE , x : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_print_ex_fp ( fp : * mut FILE , str : * mut ASN1_STRING , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_to_UTF8 ( out : * mut * mut :: std :: os :: raw :: c_uchar , in_ : * mut ASN1_STRING ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_d2i_bio ( it : * const ASN1_ITEM , in_ : * mut BIO , x : * mut :: std :: os :: raw :: c_void ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn ASN1_item_i2d_bio ( it : * const ASN1_ITEM , out : * mut BIO , x : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_UTCTIME_print ( fp : * mut BIO , a : * const ASN1_UTCTIME ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_GENERALIZEDTIME_print ( fp : * mut BIO , a : * const ASN1_GENERALIZEDTIME ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_TIME_print ( fp : * mut BIO , a : * const ASN1_TIME ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_print ( bp : * mut BIO , v : * const ASN1_STRING ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_print_ex ( out : * mut BIO , str : * mut ASN1_STRING , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_tag2str ( tag : :: std :: os :: raw :: c_int ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn ASN1_item_unpack ( oct : * mut ASN1_STRING , it : * const ASN1_ITEM ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn ASN1_item_pack ( obj : * mut :: std :: os :: raw :: c_void , it : * const ASN1_ITEM , oct : * mut * mut ASN1_OCTET_STRING ) -> * mut ASN1_STRING ; } extern "C" { pub fn ASN1_STRING_set_default_mask ( mask : :: std :: os :: raw :: c_ulong ) ; } extern "C" { pub fn ASN1_STRING_set_default_mask_asc ( p : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_get_default_mask ( ) -> :: std :: os :: raw :: c_ulong ; } extern "C" { pub fn ASN1_mbstring_copy ( out : * mut * mut ASN1_STRING , in_ : * const :: std :: os :: raw :: c_uchar , len : :: std :: os :: raw :: c_int , inform : :: std :: os :: raw :: c_int , mask : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_mbstring_ncopy ( out : * mut * mut ASN1_STRING , in_ : * const :: std :: os :: raw :: c_uchar , len : :: std :: os :: raw :: c_int , inform : :: std :: os :: raw :: c_int , mask : :: std :: os :: raw :: c_ulong , minsize : :: std :: os :: raw :: c_long , maxsize : :: std :: os :: raw :: c_long ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_set_by_NID ( out : * mut * mut ASN1_STRING , in_ : * const :: std :: os :: raw :: c_uchar , inlen : :: std :: os :: raw :: c_int , inform : :: std :: os :: raw :: c_int , nid : :: std :: os :: raw :: c_int ) -> * mut ASN1_STRING ; } extern "C" { pub fn ASN1_STRING_TABLE_get ( nid : :: std :: os :: raw :: c_int ) -> * mut ASN1_STRING_TABLE ; } extern "C" { pub fn ASN1_STRING_TABLE_add ( arg1 : :: std :: os :: raw :: c_int , arg2 : :: std :: os :: raw :: c_long , arg3 : :: std :: os :: raw :: c_long , arg4 : :: std :: os :: raw :: c_ulong , arg5 : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_STRING_TABLE_cleanup ( ) ; } extern "C" { pub fn ASN1_item_new ( it : * const ASN1_ITEM ) -> * mut ASN1_VALUE ; } extern "C" { pub fn ASN1_item_free ( val : * mut ASN1_VALUE , it : * const ASN1_ITEM ) ; } extern "C" { pub fn ASN1_item_d2i ( val : * mut * mut ASN1_VALUE , in_ : * mut * const :: std :: os :: raw :: c_uchar , len : :: std :: os :: raw :: c_long , it : * const ASN1_ITEM ) -> * mut ASN1_VALUE ; } extern "C" { pub fn ASN1_item_i2d ( val : * mut ASN1_VALUE , out : * mut * mut :: std :: os :: raw :: c_uchar , it : * const ASN1_ITEM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_ndef_i2d ( val : * mut ASN1_VALUE , out : * mut * mut :: std :: os :: raw :: c_uchar , it : * const ASN1_ITEM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_generate_nconf ( str : * mut :: std :: os :: raw :: c_char , nconf : * mut CONF ) -> * mut ASN1_TYPE ; } extern "C" { pub fn ASN1_generate_v3 ( str : * mut :: std :: os :: raw :: c_char , cnf : * mut X509V3_CTX ) -> * mut ASN1_TYPE ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_TEMPLATE_st { pub flags : :: std :: os :: raw :: c_ulong , pub tag : :: std :: os :: raw :: c_long , pub offset : :: std :: os :: raw :: c_ulong , pub field_name : * const :: std :: os :: raw :: c_char , pub item : * mut ASN1_ITEM_EXP , } # [ test ] fn bindgen_test_layout_ASN1_TEMPLATE_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_TEMPLATE_st > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( ASN1_TEMPLATE_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_TEMPLATE_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_TEMPLATE_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TEMPLATE_st > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TEMPLATE_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TEMPLATE_st > ( ) ) ) . tag as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TEMPLATE_st ) , "::" , stringify ! ( tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TEMPLATE_st > ( ) ) ) . offset as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TEMPLATE_st ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TEMPLATE_st > ( ) ) ) . field_name as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TEMPLATE_st ) , "::" , stringify ! ( field_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TEMPLATE_st > ( ) ) ) . item as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TEMPLATE_st ) , "::" , stringify ! ( item ) ) ) ; } pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st ; pub type ASN1_ADB = ASN1_ADB_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct asn1_must_be_null_st { _unused : [ u8 ; 0 ] , } pub type ASN1_MUST_BE_NULL = asn1_must_be_null_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_ADB_st { pub flags : :: std :: os :: raw :: c_ulong , pub offset : :: std :: os :: raw :: c_ulong , pub unused : * mut ASN1_MUST_BE_NULL , pub tbl : * const ASN1_ADB_TABLE , pub tblcount : :: std :: os :: raw :: c_long , pub default_tt : * const ASN1_TEMPLATE , pub null_tt : * const ASN1_TEMPLATE , } # [ test ] fn bindgen_test_layout_ASN1_ADB_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_ADB_st > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( ASN1_ADB_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_ADB_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_ADB_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_st > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_st > ( ) ) ) . offset as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_st ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_st > ( ) ) ) . unused as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_st ) , "::" , stringify ! ( unused ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_st > ( ) ) ) . tbl as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_st ) , "::" , stringify ! ( tbl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_st > ( ) ) ) . tblcount as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_st ) , "::" , stringify ! ( tblcount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_st > ( ) ) ) . default_tt as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_st ) , "::" , stringify ! ( default_tt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_st > ( ) ) ) . null_tt as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_st ) , "::" , stringify ! ( null_tt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_ADB_TABLE_st { pub value : :: std :: os :: raw :: c_long , pub tt : ASN1_TEMPLATE , } # [ test ] fn bindgen_test_layout_ASN1_ADB_TABLE_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_ADB_TABLE_st > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( ASN1_ADB_TABLE_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_ADB_TABLE_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_ADB_TABLE_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_TABLE_st > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_TABLE_st ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ADB_TABLE_st > ( ) ) ) . tt as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ADB_TABLE_st ) , "::" , stringify ! ( tt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_ITEM_st { pub itype : :: std :: os :: raw :: c_char , pub utype : :: std :: os :: raw :: c_long , pub templates : * const ASN1_TEMPLATE , pub tcount : :: std :: os :: raw :: c_long , pub funcs : * const :: std :: os :: raw :: c_void , pub size : :: std :: os :: raw :: c_long , pub sname : * const :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_ASN1_ITEM_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_ITEM_st > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( ASN1_ITEM_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_ITEM_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_ITEM_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ITEM_st > ( ) ) ) . itype as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ITEM_st ) , "::" , stringify ! ( itype ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ITEM_st > ( ) ) ) . utype as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ITEM_st ) , "::" , stringify ! ( utype ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ITEM_st > ( ) ) ) . templates as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ITEM_st ) , "::" , stringify ! ( templates ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ITEM_st > ( ) ) ) . tcount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ITEM_st ) , "::" , stringify ! ( tcount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ITEM_st > ( ) ) ) . funcs as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ITEM_st ) , "::" , stringify ! ( funcs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ITEM_st > ( ) ) ) . size as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ITEM_st ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_ITEM_st > ( ) ) ) . sname as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_ITEM_st ) , "::" , stringify ! ( sname ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_TLC_st { pub valid : :: std :: os :: raw :: c_char , pub ret : :: std :: os :: raw :: c_int , pub plen : :: std :: os :: raw :: c_long , pub ptag : :: std :: os :: raw :: c_int , pub pclass : :: std :: os :: raw :: c_int , pub hdrlen : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_ASN1_TLC_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_TLC_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ASN1_TLC_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_TLC_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_TLC_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TLC_st > ( ) ) ) . valid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TLC_st ) , "::" , stringify ! ( valid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TLC_st > ( ) ) ) . ret as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TLC_st ) , "::" , stringify ! ( ret ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TLC_st > ( ) ) ) . plen as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TLC_st ) , "::" , stringify ! ( plen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TLC_st > ( ) ) ) . ptag as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TLC_st ) , "::" , stringify ! ( ptag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TLC_st > ( ) ) ) . pclass as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TLC_st ) , "::" , stringify ! ( pclass ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_TLC_st > ( ) ) ) . hdrlen as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_TLC_st ) , "::" , stringify ! ( hdrlen ) ) ) ; } pub type ASN1_new_func = :: std :: option :: Option < unsafe extern "C" fn ( ) -> * mut ASN1_VALUE > ; pub type ASN1_free_func = :: std :: option :: Option < unsafe extern "C" fn ( a : * mut ASN1_VALUE ) > ; pub type ASN1_d2i_func = :: std :: option :: Option < unsafe extern "C" fn ( a : * mut * mut ASN1_VALUE , in_ : * mut * const :: std :: os :: raw :: c_uchar , length : :: std :: os :: raw :: c_long ) -> * mut ASN1_VALUE > ; pub type ASN1_i2d_func = :: std :: option :: Option < unsafe extern "C" fn ( a : * mut ASN1_VALUE , in_ : * mut * mut :: std :: os :: raw :: c_uchar ) -> :: std :: os :: raw :: c_int > ; pub type ASN1_ex_d2i = :: std :: option :: Option < unsafe extern "C" fn ( pval : * mut * mut ASN1_VALUE , in_ : * mut * const :: std :: os :: raw :: c_uchar , len : :: std :: os :: raw :: c_long , it : * const ASN1_ITEM , tag : :: std :: os :: raw :: c_int , aclass : :: std :: os :: raw :: c_int , opt : :: std :: os :: raw :: c_char , ctx : * mut ASN1_TLC ) -> :: std :: os :: raw :: c_int > ; pub type ASN1_ex_i2d = :: std :: option :: Option < unsafe extern "C" fn ( pval : * mut * mut ASN1_VALUE , out : * mut * mut :: std :: os :: raw :: c_uchar , it : * const ASN1_ITEM , tag : :: std :: os :: raw :: c_int , aclass : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > ; pub type ASN1_ex_new_func = :: std :: option :: Option < unsafe extern "C" fn ( pval : * mut * mut ASN1_VALUE , it : * const ASN1_ITEM ) -> :: std :: os :: raw :: c_int > ; pub type ASN1_ex_free_func = :: std :: option :: Option < unsafe extern "C" fn ( pval : * mut * mut ASN1_VALUE , it : * const ASN1_ITEM ) > ; pub type ASN1_ex_print_func = :: std :: option :: Option < unsafe extern "C" fn ( out : * mut BIO , pval : * mut * mut ASN1_VALUE , indent : :: std :: os :: raw :: c_int , fname : * const :: std :: os :: raw :: c_char , pctx : * const ASN1_PCTX ) -> :: std :: os :: raw :: c_int > ; pub type ASN1_primitive_i2c = :: std :: option :: Option < unsafe extern "C" fn ( pval : * mut * mut ASN1_VALUE , cont : * mut :: std :: os :: raw :: c_uchar , putype : * mut :: std :: os :: raw :: c_int , it : * const ASN1_ITEM ) -> :: std :: os :: raw :: c_int > ; pub type ASN1_primitive_c2i = :: std :: option :: Option < unsafe extern "C" fn ( pval : * mut * mut ASN1_VALUE , cont : * const :: std :: os :: raw :: c_uchar , len : :: std :: os :: raw :: c_int , utype : :: std :: os :: raw :: c_int , free_cont : * mut :: std :: os :: raw :: c_char , it : * const ASN1_ITEM ) -> :: std :: os :: raw :: c_int > ; pub type ASN1_primitive_print = :: std :: option :: Option < unsafe extern "C" fn ( out : * mut BIO , pval : * mut * mut ASN1_VALUE , it : * const ASN1_ITEM , indent : :: std :: os :: raw :: c_int , pctx : * const ASN1_PCTX ) -> :: std :: os :: raw :: c_int > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_COMPAT_FUNCS_st { pub asn1_new : ASN1_new_func , pub asn1_free : ASN1_free_func , pub asn1_d2i : ASN1_d2i_func , pub asn1_i2d : ASN1_i2d_func , } # [ test ] fn bindgen_test_layout_ASN1_COMPAT_FUNCS_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_COMPAT_FUNCS_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ASN1_COMPAT_FUNCS_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_COMPAT_FUNCS_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_COMPAT_FUNCS_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_COMPAT_FUNCS_st > ( ) ) ) . asn1_new as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_COMPAT_FUNCS_st ) , "::" , stringify ! ( asn1_new ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_COMPAT_FUNCS_st > ( ) ) ) . asn1_free as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_COMPAT_FUNCS_st ) , "::" , stringify ! ( asn1_free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_COMPAT_FUNCS_st > ( ) ) ) . asn1_d2i as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_COMPAT_FUNCS_st ) , "::" , stringify ! ( asn1_d2i ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_COMPAT_FUNCS_st > ( ) ) ) . asn1_i2d as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_COMPAT_FUNCS_st ) , "::" , stringify ! ( asn1_i2d ) ) ) ; } pub type ASN1_COMPAT_FUNCS = ASN1_COMPAT_FUNCS_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_EXTERN_FUNCS_st { pub app_data : * mut :: std :: os :: raw :: c_void , pub asn1_ex_new : ASN1_ex_new_func , pub asn1_ex_free : ASN1_ex_free_func , pub asn1_ex_clear : ASN1_ex_free_func , pub asn1_ex_d2i : ASN1_ex_d2i , pub asn1_ex_i2d : ASN1_ex_i2d , pub asn1_ex_print : ASN1_ex_print_func , } # [ test ] fn bindgen_test_layout_ASN1_EXTERN_FUNCS_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_EXTERN_FUNCS_st > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( ASN1_EXTERN_FUNCS_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_EXTERN_FUNCS_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_EXTERN_FUNCS_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_EXTERN_FUNCS_st > ( ) ) ) . app_data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_EXTERN_FUNCS_st ) , "::" , stringify ! ( app_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_EXTERN_FUNCS_st > ( ) ) ) . asn1_ex_new as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_EXTERN_FUNCS_st ) , "::" , stringify ! ( asn1_ex_new ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_EXTERN_FUNCS_st > ( ) ) ) . asn1_ex_free as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_EXTERN_FUNCS_st ) , "::" , stringify ! ( asn1_ex_free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_EXTERN_FUNCS_st > ( ) ) ) . asn1_ex_clear as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_EXTERN_FUNCS_st ) , "::" , stringify ! ( asn1_ex_clear ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_EXTERN_FUNCS_st > ( ) ) ) . asn1_ex_d2i as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_EXTERN_FUNCS_st ) , "::" , stringify ! ( asn1_ex_d2i ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_EXTERN_FUNCS_st > ( ) ) ) . asn1_ex_i2d as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_EXTERN_FUNCS_st ) , "::" , stringify ! ( asn1_ex_i2d ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_EXTERN_FUNCS_st > ( ) ) ) . asn1_ex_print as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_EXTERN_FUNCS_st ) , "::" , stringify ! ( asn1_ex_print ) ) ) ; } pub type ASN1_EXTERN_FUNCS = ASN1_EXTERN_FUNCS_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_PRIMITIVE_FUNCS_st { pub app_data : * mut :: std :: os :: raw :: c_void , pub flags : :: std :: os :: raw :: c_ulong , pub prim_new : ASN1_ex_new_func , pub prim_free : ASN1_ex_free_func , pub prim_clear : ASN1_ex_free_func , pub prim_c2i : ASN1_primitive_c2i , pub prim_i2c : ASN1_primitive_i2c , pub prim_print : ASN1_primitive_print , } # [ test ] fn bindgen_test_layout_ASN1_PRIMITIVE_FUNCS_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_PRIMITIVE_FUNCS_st > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_PRIMITIVE_FUNCS_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRIMITIVE_FUNCS_st > ( ) ) ) . app_data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) , "::" , stringify ! ( app_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRIMITIVE_FUNCS_st > ( ) ) ) . flags as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRIMITIVE_FUNCS_st > ( ) ) ) . prim_new as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) , "::" , stringify ! ( prim_new ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRIMITIVE_FUNCS_st > ( ) ) ) . prim_free as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) , "::" , stringify ! ( prim_free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRIMITIVE_FUNCS_st > ( ) ) ) . prim_clear as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) , "::" , stringify ! ( prim_clear ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRIMITIVE_FUNCS_st > ( ) ) ) . prim_c2i as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) , "::" , stringify ! ( prim_c2i ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRIMITIVE_FUNCS_st > ( ) ) ) . prim_i2c as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) , "::" , stringify ! ( prim_i2c ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRIMITIVE_FUNCS_st > ( ) ) ) . prim_print as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRIMITIVE_FUNCS_st ) , "::" , stringify ! ( prim_print ) ) ) ; } pub type ASN1_PRIMITIVE_FUNCS = ASN1_PRIMITIVE_FUNCS_st ; pub type ASN1_aux_cb = :: std :: option :: Option < unsafe extern "C" fn ( operation : :: std :: os :: raw :: c_int , in_ : * mut * mut ASN1_VALUE , it : * const ASN1_ITEM , exarg : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_AUX_st { pub app_data : * mut :: std :: os :: raw :: c_void , pub flags : :: std :: os :: raw :: c_int , pub ref_offset : :: std :: os :: raw :: c_int , pub asn1_cb : ASN1_aux_cb , pub enc_offset : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_ASN1_AUX_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_AUX_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ASN1_AUX_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_AUX_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_AUX_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_AUX_st > ( ) ) ) . app_data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_AUX_st ) , "::" , stringify ! ( app_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_AUX_st > ( ) ) ) . flags as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_AUX_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_AUX_st > ( ) ) ) . ref_offset as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_AUX_st ) , "::" , stringify ! ( ref_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_AUX_st > ( ) ) ) . asn1_cb as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_AUX_st ) , "::" , stringify ! ( asn1_cb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_AUX_st > ( ) ) ) . enc_offset as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_AUX_st ) , "::" , stringify ! ( enc_offset ) ) ) ; } pub type ASN1_AUX = ASN1_AUX_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_PRINT_ARG_st { pub out : * mut BIO , pub indent : :: std :: os :: raw :: c_int , pub pctx : * const ASN1_PCTX , } # [ test ] fn bindgen_test_layout_ASN1_PRINT_ARG_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_PRINT_ARG_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( ASN1_PRINT_ARG_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_PRINT_ARG_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_PRINT_ARG_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRINT_ARG_st > ( ) ) ) . out as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRINT_ARG_st ) , "::" , stringify ! ( out ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRINT_ARG_st > ( ) ) ) . indent as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRINT_ARG_st ) , "::" , stringify ! ( indent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_PRINT_ARG_st > ( ) ) ) . pctx as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_PRINT_ARG_st ) , "::" , stringify ! ( pctx ) ) ) ; } pub type ASN1_PRINT_ARG = ASN1_PRINT_ARG_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ASN1_STREAM_ARG_st { pub out : * mut BIO , pub ndef_bio : * mut BIO , pub boundary : * mut * mut :: std :: os :: raw :: c_uchar , } # [ test ] fn bindgen_test_layout_ASN1_STREAM_ARG_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ASN1_STREAM_ARG_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( ASN1_STREAM_ARG_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ASN1_STREAM_ARG_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ASN1_STREAM_ARG_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_STREAM_ARG_st > ( ) ) ) . out as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_STREAM_ARG_st ) , "::" , stringify ! ( out ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_STREAM_ARG_st > ( ) ) ) . ndef_bio as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_STREAM_ARG_st ) , "::" , stringify ! ( ndef_bio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ASN1_STREAM_ARG_st > ( ) ) ) . boundary as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ASN1_STREAM_ARG_st ) , "::" , stringify ! ( boundary ) ) ) ; } pub type ASN1_STREAM_ARG = ASN1_STREAM_ARG_st ; extern "C" { # [ link_name = "\u{1}ASN1_BOOLEAN_it" ] pub static mut ASN1_BOOLEAN_it : ASN1_ITEM ; } extern "C" { # [ link_name = "\u{1}ASN1_TBOOLEAN_it" ] pub static mut ASN1_TBOOLEAN_it : ASN1_ITEM ; } extern "C" { # [ link_name = "\u{1}ASN1_FBOOLEAN_it" ] pub static mut ASN1_FBOOLEAN_it : ASN1_ITEM ; } extern "C" { # [ link_name = "\u{1}ASN1_SEQUENCE_it" ] pub static mut ASN1_SEQUENCE_it : ASN1_ITEM ; } extern "C" { pub fn ASN1_item_ex_new ( pval : * mut * mut ASN1_VALUE , it : * const ASN1_ITEM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_ex_free ( pval : * mut * mut ASN1_VALUE , it : * const ASN1_ITEM ) ; } extern "C" { pub fn ASN1_template_new ( pval : * mut * mut ASN1_VALUE , tt : * const ASN1_TEMPLATE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_primitive_new ( pval : * mut * mut ASN1_VALUE , it : * const ASN1_ITEM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_template_free ( pval : * mut * mut ASN1_VALUE , tt : * const ASN1_TEMPLATE ) ; } extern "C" { pub fn ASN1_item_ex_d2i ( pval : * mut * mut ASN1_VALUE , in_ : * mut * const :: std :: os :: raw :: c_uchar , len : :: std :: os :: raw :: c_long , it : * const ASN1_ITEM , tag : :: std :: os :: raw :: c_int , aclass : :: std :: os :: raw :: c_int , opt : :: std :: os :: raw :: c_char , ctx : * mut ASN1_TLC ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_ex_i2d ( pval : * mut * mut ASN1_VALUE , out : * mut * mut :: std :: os :: raw :: c_uchar , it : * const ASN1_ITEM , tag : :: std :: os :: raw :: c_int , aclass : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_primitive_free ( pval : * mut * mut ASN1_VALUE , it : * const ASN1_ITEM ) ; } extern "C" { pub fn EVP_EncodeBlock ( dst : * mut u8 , src : * const u8 , src_len : usize ) -> usize ; } extern "C" { pub fn EVP_EncodedLength ( out_len : * mut usize , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DecodedLength ( out_len : * mut usize , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DecodeBase64 ( out : * mut u8 , out_len : * mut usize , max_out : usize , in_ : * const u8 , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_EncodeInit ( ctx : * mut EVP_ENCODE_CTX ) ; } extern "C" { pub fn EVP_EncodeUpdate ( ctx : * mut EVP_ENCODE_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int , in_ : * const u8 , in_len : usize ) ; } extern "C" { pub fn EVP_EncodeFinal ( ctx : * mut EVP_ENCODE_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn EVP_DecodeInit ( ctx : * mut EVP_ENCODE_CTX ) ; } extern "C" { pub fn EVP_DecodeUpdate ( ctx : * mut EVP_ENCODE_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int , in_ : * const u8 , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DecodeFinal ( ctx : * mut EVP_ENCODE_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DecodeBlock ( dst : * mut u8 , src : * const u8 , src_len : usize ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct evp_encode_ctx_st { pub data_used : :: std :: os :: raw :: c_uint , pub data : [ u8 ; 48usize ] , pub eof_seen : :: std :: os :: raw :: c_char , pub error_encountered : :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_evp_encode_ctx_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < evp_encode_ctx_st > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( evp_encode_ctx_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < evp_encode_ctx_st > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( evp_encode_ctx_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_encode_ctx_st > ( ) ) ) . data_used as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_encode_ctx_st ) , "::" , stringify ! ( data_used ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_encode_ctx_st > ( ) ) ) . data as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( evp_encode_ctx_st ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_encode_ctx_st > ( ) ) ) . eof_seen as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( evp_encode_ctx_st ) , "::" , stringify ! ( eof_seen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_encode_ctx_st > ( ) ) ) . error_encountered as * const _ as usize } , 53usize , concat ! ( "Offset of field: " , stringify ! ( evp_encode_ctx_st ) , "::" , stringify ! ( error_encountered ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct cbs_st { pub data : * const u8 , pub len : usize , } # [ test ] fn bindgen_test_layout_cbs_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < cbs_st > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( cbs_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < cbs_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( cbs_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbs_st > ( ) ) ) . data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( cbs_st ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbs_st > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( cbs_st ) , "::" , stringify ! ( len ) ) ) ; } extern "C" { pub fn CBS_init ( cbs : * mut CBS , data : * const u8 , len : usize ) ; } extern "C" { pub fn CBS_skip ( cbs : * mut CBS , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_data ( cbs : * const CBS ) -> * const u8 ; } extern "C" { pub fn CBS_len ( cbs : * const CBS ) -> usize ; } extern "C" { pub fn CBS_stow ( cbs : * const CBS , out_ptr : * mut * mut u8 , out_len : * mut usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_strdup ( cbs : * const CBS , out_ptr : * mut * mut :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_contains_zero_byte ( cbs : * const CBS ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_mem_equal ( cbs : * const CBS , data : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_u8 ( cbs : * mut CBS , out : * mut u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_u16 ( cbs : * mut CBS , out : * mut u16 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_u24 ( cbs : * mut CBS , out : * mut u32 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_u32 ( cbs : * mut CBS , out : * mut u32 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_last_u8 ( cbs : * mut CBS , out : * mut u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_bytes ( cbs : * mut CBS , out : * mut CBS , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_copy_bytes ( cbs : * mut CBS , out : * mut u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_u8_length_prefixed ( cbs : * mut CBS , out : * mut CBS ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_u16_length_prefixed ( cbs : * mut CBS , out : * mut CBS ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_u24_length_prefixed ( cbs : * mut CBS , out : * mut CBS ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_asn1 ( cbs : * mut CBS , out : * mut CBS , tag_value : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_asn1_element ( cbs : * mut CBS , out : * mut CBS , tag_value : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_peek_asn1_tag ( cbs : * const CBS , tag_value : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_any_asn1 ( cbs : * mut CBS , out : * mut CBS , out_tag : * mut :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_any_asn1_element ( cbs : * mut CBS , out : * mut CBS , out_tag : * mut :: std :: os :: raw :: c_uint , out_header_len : * mut usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_any_ber_asn1_element ( cbs : * mut CBS , out : * mut CBS , out_tag : * mut :: std :: os :: raw :: c_uint , out_header_len : * mut usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_asn1_uint64 ( cbs : * mut CBS , out : * mut u64 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_asn1_bool ( cbs : * mut CBS , out : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_optional_asn1 ( cbs : * mut CBS , out : * mut CBS , out_present : * mut :: std :: os :: raw :: c_int , tag : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_optional_asn1_octet_string ( cbs : * mut CBS , out : * mut CBS , out_present : * mut :: std :: os :: raw :: c_int , tag : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_optional_asn1_uint64 ( cbs : * mut CBS , out : * mut u64 , tag : :: std :: os :: raw :: c_uint , default_value : u64 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_get_optional_asn1_bool ( cbs : * mut CBS , out : * mut :: std :: os :: raw :: c_int , tag : :: std :: os :: raw :: c_uint , default_value : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_is_valid_asn1_bitstring ( cbs : * const CBS ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_asn1_bitstring_has_bit ( cbs : * const CBS , bit : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBS_asn1_oid_to_text ( cbs : * const CBS ) -> * mut :: std :: os :: raw :: c_char ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct cbb_buffer_st { pub buf : * mut u8 , pub len : usize , pub cap : usize , pub can_resize : :: std :: os :: raw :: c_char , pub error : :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_cbb_buffer_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < cbb_buffer_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( cbb_buffer_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < cbb_buffer_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( cbb_buffer_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_buffer_st > ( ) ) ) . buf as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( cbb_buffer_st ) , "::" , stringify ! ( buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_buffer_st > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( cbb_buffer_st ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_buffer_st > ( ) ) ) . cap as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( cbb_buffer_st ) , "::" , stringify ! ( cap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_buffer_st > ( ) ) ) . can_resize as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( cbb_buffer_st ) , "::" , stringify ! ( can_resize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_buffer_st > ( ) ) ) . error as * const _ as usize } , 25usize , concat ! ( "Offset of field: " , stringify ! ( cbb_buffer_st ) , "::" , stringify ! ( error ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct cbb_st { pub base : * mut cbb_buffer_st , pub child : * mut CBB , pub offset : usize , pub pending_len_len : u8 , pub pending_is_asn1 : :: std :: os :: raw :: c_char , pub is_top_level : :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_cbb_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < cbb_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( cbb_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < cbb_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( cbb_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_st > ( ) ) ) . base as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( cbb_st ) , "::" , stringify ! ( base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_st > ( ) ) ) . child as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( cbb_st ) , "::" , stringify ! ( child ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_st > ( ) ) ) . offset as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( cbb_st ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_st > ( ) ) ) . pending_len_len as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( cbb_st ) , "::" , stringify ! ( pending_len_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_st > ( ) ) ) . pending_is_asn1 as * const _ as usize } , 25usize , concat ! ( "Offset of field: " , stringify ! ( cbb_st ) , "::" , stringify ! ( pending_is_asn1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cbb_st > ( ) ) ) . is_top_level as * const _ as usize } , 26usize , concat ! ( "Offset of field: " , stringify ! ( cbb_st ) , "::" , stringify ! ( is_top_level ) ) ) ; } extern "C" { pub fn CBB_zero ( cbb : * mut CBB ) ; } extern "C" { pub fn CBB_init ( cbb : * mut CBB , initial_capacity : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_init_fixed ( cbb : * mut CBB , buf : * mut u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_cleanup ( cbb : * mut CBB ) ; } extern "C" { pub fn CBB_finish ( cbb : * mut CBB , out_data : * mut * mut u8 , out_len : * mut usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_flush ( cbb : * mut CBB ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_data ( cbb : * const CBB ) -> * const u8 ; } extern "C" { pub fn CBB_len ( cbb : * const CBB ) -> usize ; } extern "C" { pub fn CBB_add_u8_length_prefixed ( cbb : * mut CBB , out_contents : * mut CBB ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_u16_length_prefixed ( cbb : * mut CBB , out_contents : * mut CBB ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_u24_length_prefixed ( cbb : * mut CBB , out_contents : * mut CBB ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_asn1 ( cbb : * mut CBB , out_contents : * mut CBB , tag : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_bytes ( cbb : * mut CBB , data : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_space ( cbb : * mut CBB , out_data : * mut * mut u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_reserve ( cbb : * mut CBB , out_data : * mut * mut u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_did_write ( cbb : * mut CBB , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_u8 ( cbb : * mut CBB , value : u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_u16 ( cbb : * mut CBB , value : u16 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_u24 ( cbb : * mut CBB , value : u32 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_u32 ( cbb : * mut CBB , value : u32 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_discard_child ( cbb : * mut CBB ) ; } extern "C" { pub fn CBB_add_asn1_uint64 ( cbb : * mut CBB , value : u64 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_asn1_octet_string ( cbb : * mut CBB , data : * const u8 , data_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_asn1_bool ( cbb : * mut CBB , value : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_add_asn1_oid_from_text ( cbb : * mut CBB , text : * const :: std :: os :: raw :: c_char , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CBB_flush_asn1_set_of ( cbb : * mut CBB ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct cast_key_st { pub data : [ u32 ; 32usize ] , pub short_key : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_cast_key_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < cast_key_st > ( ) , 132usize , concat ! ( "Size of: " , stringify ! ( cast_key_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < cast_key_st > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( cast_key_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cast_key_st > ( ) ) ) . data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( cast_key_st ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < cast_key_st > ( ) ) ) . short_key as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( cast_key_st ) , "::" , stringify ! ( short_key ) ) ) ; } pub type CAST_KEY = cast_key_st ; extern "C" { pub fn CAST_set_key ( key : * mut CAST_KEY , len : usize , data : * const u8 ) ; } extern "C" { pub fn CAST_ecb_encrypt ( in_ : * const u8 , out : * mut u8 , key : * const CAST_KEY , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn CAST_encrypt ( data : * mut u32 , key : * const CAST_KEY ) ; } extern "C" { pub fn CAST_decrypt ( data : * mut u32 , key : * const CAST_KEY ) ; } extern "C" { pub fn CAST_cbc_encrypt ( in_ : * const u8 , out : * mut u8 , length : :: std :: os :: raw :: c_long , ks : * const CAST_KEY , iv : * mut u8 , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn CAST_cfb64_encrypt ( in_ : * const u8 , out : * mut u8 , length : :: std :: os :: raw :: c_long , schedule : * const CAST_KEY , ivec : * mut u8 , num : * mut :: std :: os :: raw :: c_int , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn CRYPTO_chacha_20 ( out : * mut u8 , in_ : * const u8 , in_len : usize , key : * const u8 , nonce : * const u8 , counter : u32 ) ; } extern "C" { pub fn EVP_rc4 ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_des_cbc ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_des_ecb ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_des_ede ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_des_ede3 ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_des_ede_cbc ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_des_ede3_cbc ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_128_ecb ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_128_cbc ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_128_ctr ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_128_ofb ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_256_ecb ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_256_cbc ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_256_ctr ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_256_ofb ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_256_xts ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_enc_null ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_rc2_cbc ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_rc2_40_cbc ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_get_cipherbynid ( nid : :: std :: os :: raw :: c_int ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_CIPHER_CTX_init ( ctx : * mut EVP_CIPHER_CTX ) ; } extern "C" { pub fn EVP_CIPHER_CTX_new ( ) -> * mut EVP_CIPHER_CTX ; } extern "C" { pub fn EVP_CIPHER_CTX_cleanup ( ctx : * mut EVP_CIPHER_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_CTX_free ( ctx : * mut EVP_CIPHER_CTX ) ; } extern "C" { pub fn EVP_CIPHER_CTX_copy ( out : * mut EVP_CIPHER_CTX , in_ : * const EVP_CIPHER_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_CTX_reset ( ctx : * mut EVP_CIPHER_CTX ) ; } extern "C" { pub fn EVP_CipherInit_ex ( ctx : * mut EVP_CIPHER_CTX , cipher : * const EVP_CIPHER , engine : * mut ENGINE , key : * const u8 , iv : * const u8 , enc : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_EncryptInit_ex ( ctx : * mut EVP_CIPHER_CTX , cipher : * const EVP_CIPHER , impl_ : * mut ENGINE , key : * const u8 , iv : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DecryptInit_ex ( ctx : * mut EVP_CIPHER_CTX , cipher : * const EVP_CIPHER , impl_ : * mut ENGINE , key : * const u8 , iv : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_EncryptUpdate ( ctx : * mut EVP_CIPHER_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int , in_ : * const u8 , in_len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_EncryptFinal_ex ( ctx : * mut EVP_CIPHER_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DecryptUpdate ( ctx : * mut EVP_CIPHER_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int , in_ : * const u8 , in_len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DecryptFinal_ex ( ctx : * mut EVP_CIPHER_CTX , out : * mut :: std :: os :: raw :: c_uchar , out_len : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_Cipher ( ctx : * mut EVP_CIPHER_CTX , out : * mut u8 , in_ : * const u8 , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CipherUpdate ( ctx : * mut EVP_CIPHER_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int , in_ : * const u8 , in_len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CipherFinal_ex ( ctx : * mut EVP_CIPHER_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_CTX_cipher ( ctx : * const EVP_CIPHER_CTX ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_CIPHER_CTX_nid ( ctx : * const EVP_CIPHER_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_CTX_encrypting ( ctx : * const EVP_CIPHER_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_CTX_block_size ( ctx : * const EVP_CIPHER_CTX ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn EVP_CIPHER_CTX_key_length ( ctx : * const EVP_CIPHER_CTX ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn EVP_CIPHER_CTX_iv_length ( ctx : * const EVP_CIPHER_CTX ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn EVP_CIPHER_CTX_get_app_data ( ctx : * const EVP_CIPHER_CTX ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn EVP_CIPHER_CTX_set_app_data ( ctx : * mut EVP_CIPHER_CTX , data : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn EVP_CIPHER_CTX_flags ( ctx : * const EVP_CIPHER_CTX ) -> u32 ; } extern "C" { pub fn EVP_CIPHER_CTX_mode ( ctx : * const EVP_CIPHER_CTX ) -> u32 ; } extern "C" { pub fn EVP_CIPHER_CTX_ctrl ( ctx : * mut EVP_CIPHER_CTX , command : :: std :: os :: raw :: c_int , arg : :: std :: os :: raw :: c_int , ptr : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_CTX_set_padding ( ctx : * mut EVP_CIPHER_CTX , pad : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_CTX_set_key_length ( ctx : * mut EVP_CIPHER_CTX , key_len : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_nid ( cipher : * const EVP_CIPHER ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CIPHER_block_size ( cipher : * const EVP_CIPHER ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn EVP_CIPHER_key_length ( cipher : * const EVP_CIPHER ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn EVP_CIPHER_iv_length ( cipher : * const EVP_CIPHER ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn EVP_CIPHER_flags ( cipher : * const EVP_CIPHER ) -> u32 ; } extern "C" { pub fn EVP_CIPHER_mode ( cipher : * const EVP_CIPHER ) -> u32 ; } extern "C" { pub fn EVP_BytesToKey ( type_ : * const EVP_CIPHER , md : * const EVP_MD , salt : * const u8 , data : * const u8 , data_len : usize , count : :: std :: os :: raw :: c_uint , key : * mut u8 , iv : * mut u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_CipherInit ( ctx : * mut EVP_CIPHER_CTX , cipher : * const EVP_CIPHER , key : * const u8 , iv : * const u8 , enc : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_EncryptInit ( ctx : * mut EVP_CIPHER_CTX , cipher : * const EVP_CIPHER , key : * const u8 , iv : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DecryptInit ( ctx : * mut EVP_CIPHER_CTX , cipher : * const EVP_CIPHER , key : * const u8 , iv : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_add_cipher_alias ( a : * const :: std :: os :: raw :: c_char , b : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_get_cipherbyname ( name : * const :: std :: os :: raw :: c_char ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_128_gcm ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_256_gcm ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_192_ecb ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_192_cbc ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_192_ctr ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_192_gcm ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_192_ofb ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_aes_128_cfb128 ( ) -> * const EVP_CIPHER ; } extern "C" { pub fn EVP_CIPHER_CTX_set_flags ( ctx : * const EVP_CIPHER_CTX , flags : u32 ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_cipher_ctx_st { pub cipher : * const EVP_CIPHER , pub app_data : * mut :: std :: os :: raw :: c_void , pub cipher_data : * mut :: std :: os :: raw :: c_void , pub key_len : :: std :: os :: raw :: c_uint , pub encrypt : :: std :: os :: raw :: c_int , pub flags : u32 , pub oiv : [ u8 ; 16usize ] , pub iv : [ u8 ; 16usize ] , pub buf : [ u8 ; 32usize ] , pub buf_len : :: std :: os :: raw :: c_int , pub num : :: std :: os :: raw :: c_uint , pub final_used : :: std :: os :: raw :: c_int , pub block_mask : :: std :: os :: raw :: c_int , pub final_ : [ u8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_evp_cipher_ctx_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < evp_cipher_ctx_st > ( ) , 152usize , concat ! ( "Size of: " , stringify ! ( evp_cipher_ctx_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < evp_cipher_ctx_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( evp_cipher_ctx_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . cipher as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( cipher ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . app_data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( app_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . cipher_data as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( cipher_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . key_len as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( key_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . encrypt as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( encrypt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . flags as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . oiv as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( oiv ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . iv as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( iv ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . buf as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . buf_len as * const _ as usize } , 100usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( buf_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . num as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( num ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . final_used as * const _ as usize } , 108usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( final_used ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . block_mask as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( block_mask ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_ctx_st > ( ) ) ) . final_ as * const _ as usize } , 116usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_ctx_st ) , "::" , stringify ! ( final_ ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_cipher_info_st { pub cipher : * const EVP_CIPHER , pub iv : [ :: std :: os :: raw :: c_uchar ; 16usize ] , } # [ test ] fn bindgen_test_layout_evp_cipher_info_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < evp_cipher_info_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( evp_cipher_info_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < evp_cipher_info_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( evp_cipher_info_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_info_st > ( ) ) ) . cipher as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_info_st ) , "::" , stringify ! ( cipher ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_info_st > ( ) ) ) . iv as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_info_st ) , "::" , stringify ! ( iv ) ) ) ; } pub type EVP_CIPHER_INFO = evp_cipher_info_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_cipher_st { pub nid : :: std :: os :: raw :: c_int , pub block_size : :: std :: os :: raw :: c_uint , pub key_len : :: std :: os :: raw :: c_uint , pub iv_len : :: std :: os :: raw :: c_uint , pub ctx_size : :: std :: os :: raw :: c_uint , pub flags : u32 , pub app_data : * mut :: std :: os :: raw :: c_void , pub init : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut EVP_CIPHER_CTX , key : * const u8 , iv : * const u8 , enc : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub cipher : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut EVP_CIPHER_CTX , out : * mut u8 , in_ : * const u8 , inl : usize ) -> :: std :: os :: raw :: c_int > , pub cleanup : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut EVP_CIPHER_CTX ) > , pub ctrl : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut EVP_CIPHER_CTX , type_ : :: std :: os :: raw :: c_int , arg : :: std :: os :: raw :: c_int , ptr : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_evp_cipher_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < evp_cipher_st > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( evp_cipher_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < evp_cipher_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( evp_cipher_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . nid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( nid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . block_size as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( block_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . key_len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( key_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . iv_len as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( iv_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . ctx_size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( ctx_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . flags as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . app_data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( app_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . init as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . cipher as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( cipher ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . cleanup as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( cleanup ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_cipher_st > ( ) ) ) . ctrl as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( evp_cipher_st ) , "::" , stringify ! ( ctrl ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_CONF_VALUE { _unused : [ u8 ; 0 ] , } extern "C" { pub fn OPENSSL_config ( config_name : * const :: std :: os :: raw :: c_char ) ; } extern "C" { pub fn OPENSSL_no_config ( ) ; } extern "C" { # [ link_name = "\u{1}OPENSSL_ia32cap_P" ] pub static mut OPENSSL_ia32cap_P : [ u32 ; 4usize ] ; } extern "C" { pub fn OPENSSL_malloc ( size : usize ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn OPENSSL_free ( ptr : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn OPENSSL_realloc ( ptr : * mut :: std :: os :: raw :: c_void , new_size : usize ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn OPENSSL_cleanse ( ptr : * mut :: std :: os :: raw :: c_void , len : usize ) ; } extern "C" { pub fn CRYPTO_memcmp ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn OPENSSL_hash32 ( ptr : * const :: std :: os :: raw :: c_void , len : usize ) -> u32 ; } extern "C" { pub fn OPENSSL_strdup ( s : * const :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn OPENSSL_strnlen ( s : * const :: std :: os :: raw :: c_char , len : usize ) -> usize ; } extern "C" { pub fn OPENSSL_tolower ( c : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn OPENSSL_strcasecmp ( a : * const :: std :: os :: raw :: c_char , b : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn OPENSSL_strncasecmp ( a : * const :: std :: os :: raw :: c_char , b : * const :: std :: os :: raw :: c_char , n : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_snprintf ( buf : * mut :: std :: os :: raw :: c_char , n : usize , format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn BIO_vsnprintf ( buf : * mut :: std :: os :: raw :: c_char , n : usize , format : * const :: std :: os :: raw :: c_char , args : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CRYPTO_library_init ( ) ; } extern "C" { pub fn CRYPTO_is_confidential_build ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CRYPTO_has_asm ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CRYPTO_malloc_init ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn OPENSSL_malloc_init ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn OPENSSL_load_builtin_modules ( ) ; } extern "C" { pub fn OPENSSL_init_crypto ( opts : u64 , settings : * const OPENSSL_INIT_SETTINGS ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn OPENSSL_cleanup ( ) ; } extern "C" { pub fn X25519_keypair ( out_public_value : * mut u8 , out_private_key : * mut u8 ) ; } extern "C" { pub fn X25519_public_from_private ( out_public_value : * mut u8 , private_key : * const u8 ) ; } extern "C" { pub fn ED25519_keypair ( out_public_key : * mut u8 , out_private_key : * mut u8 ) ; } extern "C" { pub fn ED25519_sign ( out_sig : * mut u8 , message : * const u8 , message_len : usize , private_key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ED25519_verify ( message : * const u8 , message_len : usize , signature : * const u8 , public_key : * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ED25519_keypair_from_seed ( out_public_key : * mut u8 , out_private_key : * mut u8 , seed : * const u8 ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DES_cblock_st { pub bytes : [ u8 ; 8usize ] , } # [ test ] fn bindgen_test_layout_DES_cblock_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DES_cblock_st > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( DES_cblock_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DES_cblock_st > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( DES_cblock_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DES_cblock_st > ( ) ) ) . bytes as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( DES_cblock_st ) , "::" , stringify ! ( bytes ) ) ) ; } pub type DES_cblock = DES_cblock_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DES_ks { pub subkeys : [ [ u32 ; 2usize ] ; 16usize ] , } # [ test ] fn bindgen_test_layout_DES_ks ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DES_ks > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( DES_ks ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DES_ks > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( DES_ks ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DES_ks > ( ) ) ) . subkeys as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( DES_ks ) , "::" , stringify ! ( subkeys ) ) ) ; } pub type DES_key_schedule = DES_ks ; extern "C" { pub fn DES_set_key ( key : * const DES_cblock , schedule : * mut DES_key_schedule ) ; } extern "C" { pub fn DES_set_odd_parity ( key : * mut DES_cblock ) ; } extern "C" { pub fn DES_ecb_encrypt ( in_ : * const DES_cblock , out : * mut DES_cblock , schedule : * const DES_key_schedule , is_encrypt : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn DES_ncbc_encrypt ( in_ : * const u8 , out : * mut u8 , len : usize , schedule : * const DES_key_schedule , ivec : * mut DES_cblock , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn DES_ecb3_encrypt ( input : * const DES_cblock , output : * mut DES_cblock , ks1 : * const DES_key_schedule , ks2 : * const DES_key_schedule , ks3 : * const DES_key_schedule , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn DES_ede3_cbc_encrypt ( in_ : * const u8 , out : * mut u8 , len : usize , ks1 : * const DES_key_schedule , ks2 : * const DES_key_schedule , ks3 : * const DES_key_schedule , ivec : * mut DES_cblock , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn DES_ede2_cbc_encrypt ( in_ : * const u8 , out : * mut u8 , len : usize , ks1 : * const DES_key_schedule , ks2 : * const DES_key_schedule , ivec : * mut DES_cblock , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn DES_set_key_unchecked ( key : * const DES_cblock , schedule : * mut DES_key_schedule ) ; } extern "C" { pub fn DES_ede3_cfb64_encrypt ( in_ : * const u8 , out : * mut u8 , length : :: std :: os :: raw :: c_long , ks1 : * mut DES_key_schedule , ks2 : * mut DES_key_schedule , ks3 : * mut DES_key_schedule , ivec : * mut DES_cblock , num : * mut :: std :: os :: raw :: c_int , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn DES_ede3_cfb_encrypt ( in_ : * const u8 , out : * mut u8 , numbits : :: std :: os :: raw :: c_int , length : :: std :: os :: raw :: c_long , ks1 : * mut DES_key_schedule , ks2 : * mut DES_key_schedule , ks3 : * mut DES_key_schedule , ivec : * mut DES_cblock , enc : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn DES_decrypt3 ( data : * mut u32 , ks1 : * const DES_key_schedule , ks2 : * const DES_key_schedule , ks3 : * const DES_key_schedule ) ; } extern "C" { pub fn DES_encrypt3 ( data : * mut u32 , ks1 : * const DES_key_schedule , ks2 : * const DES_key_schedule , ks3 : * const DES_key_schedule ) ; } extern "C" { pub fn DH_new ( ) -> * mut DH ; } extern "C" { pub fn DH_free ( dh : * mut DH ) ; } extern "C" { pub fn DH_up_ref ( dh : * mut DH ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_get0_key ( dh : * const DH , out_pub_key : * mut * const BIGNUM , out_priv_key : * mut * const BIGNUM ) ; } extern "C" { pub fn DH_set0_key ( dh : * mut DH , pub_key : * mut BIGNUM , priv_key : * mut BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_get0_pqg ( dh : * const DH , out_p : * mut * const BIGNUM , out_q : * mut * const BIGNUM , out_g : * mut * const BIGNUM ) ; } extern "C" { pub fn DH_set0_pqg ( dh : * mut DH , p : * mut BIGNUM , q : * mut BIGNUM , g : * mut BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_generate_parameters_ex ( dh : * mut DH , prime_bits : :: std :: os :: raw :: c_int , generator : :: std :: os :: raw :: c_int , cb : * mut BN_GENCB ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_generate_key ( dh : * mut DH ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_compute_key ( out : * mut u8 , peers_key : * const BIGNUM , dh : * mut DH ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_size ( dh : * const DH ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_num_bits ( dh : * const DH ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn DH_check ( dh : * const DH , out_flags : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_check_pub_key ( dh : * const DH , pub_key : * const BIGNUM , out_flags : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_parse_parameters ( cbs : * mut CBS ) -> * mut DH ; } extern "C" { pub fn DH_marshal_parameters ( cbb : * mut CBB , dh : * const DH ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_get_ex_new_index ( argl : :: std :: os :: raw :: c_long , argp : * mut :: std :: os :: raw :: c_void , unused : * mut CRYPTO_EX_unused , dup_unused : CRYPTO_EX_dup , free_func : CRYPTO_EX_free ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_set_ex_data ( d : * mut DH , idx : :: std :: os :: raw :: c_int , arg : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DH_get_ex_data ( d : * mut DH , idx : :: std :: os :: raw :: c_int ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn DH_generate_parameters ( prime_len : :: std :: os :: raw :: c_int , generator : :: std :: os :: raw :: c_int , callback : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : :: std :: os :: raw :: c_int , arg2 : :: std :: os :: raw :: c_int , arg3 : * mut :: std :: os :: raw :: c_void ) > , cb_arg : * mut :: std :: os :: raw :: c_void ) -> * mut DH ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct dh_st { pub p : * mut BIGNUM , pub g : * mut BIGNUM , pub pub_key : * mut BIGNUM , pub priv_key : * mut BIGNUM , pub priv_length : :: std :: os :: raw :: c_uint , pub method_mont_p_lock : CRYPTO_MUTEX , pub method_mont_p : * mut BN_MONT_CTX , pub q : * mut BIGNUM , pub j : * mut BIGNUM , pub seed : * mut :: std :: os :: raw :: c_uchar , pub seedlen : :: std :: os :: raw :: c_int , pub counter : * mut BIGNUM , pub flags : :: std :: os :: raw :: c_int , pub references : CRYPTO_refcount_t , pub ex_data : CRYPTO_EX_DATA , } # [ test ] fn bindgen_test_layout_dh_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < dh_st > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( dh_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < dh_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( dh_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . p as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . g as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( g ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . pub_key as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( pub_key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . priv_key as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( priv_key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . priv_length as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( priv_length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . method_mont_p_lock as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( method_mont_p_lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . method_mont_p as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( method_mont_p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . q as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( q ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . j as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( j ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . seed as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( seed ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . seedlen as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( seedlen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . counter as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( counter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . flags as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . references as * const _ as usize } , 148usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dh_st > ( ) ) ) . ex_data as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( dh_st ) , "::" , stringify ! ( ex_data ) ) ) ; } extern "C" { pub fn EVP_md4 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_md5 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_sha1 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_sha224 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_sha256 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_sha384 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_sha512 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_md5_sha1 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_get_digestbynid ( nid : :: std :: os :: raw :: c_int ) -> * const EVP_MD ; } extern "C" { pub fn EVP_get_digestbyobj ( obj : * const ASN1_OBJECT ) -> * const EVP_MD ; } extern "C" { pub fn EVP_MD_CTX_init ( ctx : * mut EVP_MD_CTX ) ; } extern "C" { pub fn EVP_MD_CTX_new ( ) -> * mut EVP_MD_CTX ; } extern "C" { pub fn EVP_MD_CTX_cleanup ( ctx : * mut EVP_MD_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_MD_CTX_free ( ctx : * mut EVP_MD_CTX ) ; } extern "C" { pub fn EVP_MD_CTX_copy_ex ( out : * mut EVP_MD_CTX , in_ : * const EVP_MD_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_MD_CTX_reset ( ctx : * mut EVP_MD_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestInit_ex ( ctx : * mut EVP_MD_CTX , type_ : * const EVP_MD , engine : * mut ENGINE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestInit ( ctx : * mut EVP_MD_CTX , type_ : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestUpdate ( ctx : * mut EVP_MD_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestFinal_ex ( ctx : * mut EVP_MD_CTX , md_out : * mut u8 , out_size : * mut :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestFinal ( ctx : * mut EVP_MD_CTX , md_out : * mut u8 , out_size : * mut :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_Digest ( data : * const :: std :: os :: raw :: c_void , len : usize , md_out : * mut u8 , md_out_size : * mut :: std :: os :: raw :: c_uint , type_ : * const EVP_MD , impl_ : * mut ENGINE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_MD_type ( md : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_MD_flags ( md : * const EVP_MD ) -> u32 ; } extern "C" { pub fn EVP_MD_size ( md : * const EVP_MD ) -> usize ; } extern "C" { pub fn EVP_MD_block_size ( md : * const EVP_MD ) -> usize ; } extern "C" { pub fn EVP_MD_CTX_md ( ctx : * const EVP_MD_CTX ) -> * const EVP_MD ; } extern "C" { pub fn EVP_MD_CTX_size ( ctx : * const EVP_MD_CTX ) -> usize ; } extern "C" { pub fn EVP_MD_CTX_block_size ( ctx : * const EVP_MD_CTX ) -> usize ; } extern "C" { pub fn EVP_MD_CTX_type ( ctx : * const EVP_MD_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_parse_digest_algorithm ( cbs : * mut CBS ) -> * const EVP_MD ; } extern "C" { pub fn EVP_marshal_digest_algorithm ( cbb : * mut CBB , md : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_MD_CTX_copy ( out : * mut EVP_MD_CTX , in_ : * const EVP_MD_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_add_digest ( digest : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_get_digestbyname ( arg1 : * const :: std :: os :: raw :: c_char ) -> * const EVP_MD ; } extern "C" { pub fn EVP_dss1 ( ) -> * const EVP_MD ; } extern "C" { pub fn EVP_MD_CTX_create ( ) -> * mut EVP_MD_CTX ; } extern "C" { pub fn EVP_MD_CTX_destroy ( ctx : * mut EVP_MD_CTX ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct evp_md_pctx_ops { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct env_md_ctx_st { pub digest : * const EVP_MD , pub md_data : * mut :: std :: os :: raw :: c_void , pub pctx : * mut EVP_PKEY_CTX , pub pctx_ops : * const evp_md_pctx_ops , } # [ test ] fn bindgen_test_layout_env_md_ctx_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < env_md_ctx_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( env_md_ctx_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < env_md_ctx_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( env_md_ctx_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < env_md_ctx_st > ( ) ) ) . digest as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( env_md_ctx_st ) , "::" , stringify ! ( digest ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < env_md_ctx_st > ( ) ) ) . md_data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( env_md_ctx_st ) , "::" , stringify ! ( md_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < env_md_ctx_st > ( ) ) ) . pctx as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( env_md_ctx_st ) , "::" , stringify ! ( pctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < env_md_ctx_st > ( ) ) ) . pctx_ops as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( env_md_ctx_st ) , "::" , stringify ! ( pctx_ops ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct openssl_method_common_st { pub references : :: std :: os :: raw :: c_int , pub is_static : :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_openssl_method_common_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < openssl_method_common_st > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( openssl_method_common_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < openssl_method_common_st > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( openssl_method_common_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < openssl_method_common_st > ( ) ) ) . references as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( openssl_method_common_st ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < openssl_method_common_st > ( ) ) ) . is_static as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( openssl_method_common_st ) , "::" , stringify ! ( is_static ) ) ) ; } extern "C" { pub fn DSA_new ( ) -> * mut DSA ; } extern "C" { pub fn DSA_free ( dsa : * mut DSA ) ; } extern "C" { pub fn DSA_up_ref ( dsa : * mut DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_get0_key ( dsa : * const DSA , out_pub_key : * mut * const BIGNUM , out_priv_key : * mut * const BIGNUM ) ; } extern "C" { pub fn DSA_get0_pqg ( dsa : * const DSA , out_p : * mut * const BIGNUM , out_q : * mut * const BIGNUM , out_g : * mut * const BIGNUM ) ; } extern "C" { pub fn DSA_set0_key ( dsa : * mut DSA , pub_key : * mut BIGNUM , priv_key : * mut BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_set0_pqg ( dsa : * mut DSA , p : * mut BIGNUM , q : * mut BIGNUM , g : * mut BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_generate_parameters_ex ( dsa : * mut DSA , bits : :: std :: os :: raw :: c_uint , seed : * const u8 , seed_len : usize , out_counter : * mut :: std :: os :: raw :: c_int , out_h : * mut :: std :: os :: raw :: c_ulong , cb : * mut BN_GENCB ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_generate_key ( dsa : * mut DSA ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DSA_SIG_st { pub r : * mut BIGNUM , pub s : * mut BIGNUM , } # [ test ] fn bindgen_test_layout_DSA_SIG_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DSA_SIG_st > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( DSA_SIG_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DSA_SIG_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DSA_SIG_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DSA_SIG_st > ( ) ) ) . r as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( DSA_SIG_st ) , "::" , stringify ! ( r ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DSA_SIG_st > ( ) ) ) . s as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( DSA_SIG_st ) , "::" , stringify ! ( s ) ) ) ; } extern "C" { pub fn DSA_SIG_new ( ) -> * mut DSA_SIG ; } extern "C" { pub fn DSA_SIG_free ( sig : * mut DSA_SIG ) ; } extern "C" { pub fn DSA_do_sign ( digest : * const u8 , digest_len : usize , dsa : * const DSA ) -> * mut DSA_SIG ; } extern "C" { pub fn DSA_do_verify ( digest : * const u8 , digest_len : usize , sig : * mut DSA_SIG , dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_do_check_signature ( out_valid : * mut :: std :: os :: raw :: c_int , digest : * const u8 , digest_len : usize , sig : * mut DSA_SIG , dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_sign ( type_ : :: std :: os :: raw :: c_int , digest : * const u8 , digest_len : usize , out_sig : * mut u8 , out_siglen : * mut :: std :: os :: raw :: c_uint , dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_verify ( type_ : :: std :: os :: raw :: c_int , digest : * const u8 , digest_len : usize , sig : * const u8 , sig_len : usize , dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_check_signature ( out_valid : * mut :: std :: os :: raw :: c_int , digest : * const u8 , digest_len : usize , sig : * const u8 , sig_len : usize , dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_size ( dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_SIG_parse ( cbs : * mut CBS ) -> * mut DSA_SIG ; } extern "C" { pub fn DSA_SIG_marshal ( cbb : * mut CBB , sig : * const DSA_SIG ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_parse_public_key ( cbs : * mut CBS ) -> * mut DSA ; } extern "C" { pub fn DSA_marshal_public_key ( cbb : * mut CBB , dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_parse_private_key ( cbs : * mut CBS ) -> * mut DSA ; } extern "C" { pub fn DSA_marshal_private_key ( cbb : * mut CBB , dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_parse_parameters ( cbs : * mut CBS ) -> * mut DSA ; } extern "C" { pub fn DSA_marshal_parameters ( cbb : * mut CBB , dsa : * const DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_dup_DH ( dsa : * const DSA ) -> * mut DH ; } extern "C" { pub fn DSA_get_ex_new_index ( argl : :: std :: os :: raw :: c_long , argp : * mut :: std :: os :: raw :: c_void , unused : * mut CRYPTO_EX_unused , dup_unused : CRYPTO_EX_dup , free_func : CRYPTO_EX_free ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_set_ex_data ( dsa : * mut DSA , idx : :: std :: os :: raw :: c_int , arg : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn DSA_get_ex_data ( dsa : * const DSA , idx : :: std :: os :: raw :: c_int ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn DSA_generate_parameters ( bits : :: std :: os :: raw :: c_int , seed : * mut :: std :: os :: raw :: c_uchar , seed_len : :: std :: os :: raw :: c_int , counter_ret : * mut :: std :: os :: raw :: c_int , h_ret : * mut :: std :: os :: raw :: c_ulong , callback : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : :: std :: os :: raw :: c_int , arg2 : :: std :: os :: raw :: c_int , arg3 : * mut :: std :: os :: raw :: c_void ) > , cb_arg : * mut :: std :: os :: raw :: c_void ) -> * mut DSA ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct dsa_st { pub version : :: std :: os :: raw :: c_long , pub p : * mut BIGNUM , pub q : * mut BIGNUM , pub g : * mut BIGNUM , pub pub_key : * mut BIGNUM , pub priv_key : * mut BIGNUM , pub flags : :: std :: os :: raw :: c_int , pub method_mont_lock : CRYPTO_MUTEX , pub method_mont_p : * mut BN_MONT_CTX , pub method_mont_q : * mut BN_MONT_CTX , pub references : CRYPTO_refcount_t , pub ex_data : CRYPTO_EX_DATA , } # [ test ] fn bindgen_test_layout_dsa_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < dsa_st > ( ) , 144usize , concat ! ( "Size of: " , stringify ! ( dsa_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < dsa_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( dsa_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . version as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . p as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . q as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( q ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . g as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( g ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . pub_key as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( pub_key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . priv_key as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( priv_key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . flags as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . method_mont_lock as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( method_mont_lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . method_mont_p as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( method_mont_p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . method_mont_q as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( method_mont_q ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . references as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < dsa_st > ( ) ) ) . ex_data as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( dsa_st ) , "::" , stringify ! ( ex_data ) ) ) ; } pub const point_conversion_form_t_POINT_CONVERSION_COMPRESSED : point_conversion_form_t = 2 ; pub const point_conversion_form_t_POINT_CONVERSION_UNCOMPRESSED : point_conversion_form_t = 4 ; pub const point_conversion_form_t_POINT_CONVERSION_HYBRID : point_conversion_form_t = 6 ; pub type point_conversion_form_t = u32 ; extern "C" { pub fn EC_GROUP_new_by_curve_name ( nid : :: std :: os :: raw :: c_int ) -> * mut EC_GROUP ; } extern "C" { pub fn EC_GROUP_free ( group : * mut EC_GROUP ) ; } extern "C" { pub fn EC_GROUP_dup ( a : * const EC_GROUP ) -> * mut EC_GROUP ; } extern "C" { pub fn EC_GROUP_cmp ( a : * const EC_GROUP , b : * const EC_GROUP , ignored : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_GROUP_get0_generator ( group : * const EC_GROUP ) -> * const EC_POINT ; } extern "C" { pub fn EC_GROUP_get0_order ( group : * const EC_GROUP ) -> * const BIGNUM ; } extern "C" { pub fn EC_GROUP_get_cofactor ( group : * const EC_GROUP , cofactor : * mut BIGNUM , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_GROUP_get_curve_GFp ( group : * const EC_GROUP , out_p : * mut BIGNUM , out_a : * mut BIGNUM , out_b : * mut BIGNUM , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_GROUP_get_curve_name ( group : * const EC_GROUP ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_GROUP_get_degree ( group : * const EC_GROUP ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn EC_curve_nid2nist ( nid : :: std :: os :: raw :: c_int ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn EC_POINT_new ( group : * const EC_GROUP ) -> * mut EC_POINT ; } extern "C" { pub fn EC_POINT_free ( point : * mut EC_POINT ) ; } extern "C" { pub fn EC_POINT_copy ( dest : * mut EC_POINT , src : * const EC_POINT ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_dup ( src : * const EC_POINT , group : * const EC_GROUP ) -> * mut EC_POINT ; } extern "C" { pub fn EC_POINT_set_to_infinity ( group : * const EC_GROUP , point : * mut EC_POINT ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_is_at_infinity ( group : * const EC_GROUP , point : * const EC_POINT ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_is_on_curve ( group : * const EC_GROUP , point : * const EC_POINT , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_cmp ( group : * const EC_GROUP , a : * const EC_POINT , b : * const EC_POINT , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_get_affine_coordinates_GFp ( group : * const EC_GROUP , point : * const EC_POINT , x : * mut BIGNUM , y : * mut BIGNUM , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_set_affine_coordinates_GFp ( group : * const EC_GROUP , point : * mut EC_POINT , x : * const BIGNUM , y : * const BIGNUM , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_point2oct ( group : * const EC_GROUP , point : * const EC_POINT , form : point_conversion_form_t , buf : * mut u8 , len : usize , ctx : * mut BN_CTX ) -> usize ; } extern "C" { pub fn EC_POINT_point2cbb ( out : * mut CBB , group : * const EC_GROUP , point : * const EC_POINT , form : point_conversion_form_t , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_oct2point ( group : * const EC_GROUP , point : * mut EC_POINT , buf : * const u8 , len : usize , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_set_compressed_coordinates_GFp ( group : * const EC_GROUP , point : * mut EC_POINT , x : * const BIGNUM , y_bit : :: std :: os :: raw :: c_int , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_add ( group : * const EC_GROUP , r : * mut EC_POINT , a : * const EC_POINT , b : * const EC_POINT , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_dbl ( group : * const EC_GROUP , r : * mut EC_POINT , a : * const EC_POINT , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_invert ( group : * const EC_GROUP , a : * mut EC_POINT , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_POINT_mul ( group : * const EC_GROUP , r : * mut EC_POINT , n : * const BIGNUM , q : * const EC_POINT , m : * const BIGNUM , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_GROUP_new_curve_GFp ( p : * const BIGNUM , a : * const BIGNUM , b : * const BIGNUM , ctx : * mut BN_CTX ) -> * mut EC_GROUP ; } extern "C" { pub fn EC_GROUP_set_generator ( group : * mut EC_GROUP , generator : * const EC_POINT , order : * const BIGNUM , cofactor : * const BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_GROUP_get_order ( group : * const EC_GROUP , order : * mut BIGNUM , ctx : * mut BN_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_GROUP_set_asn1_flag ( group : * mut EC_GROUP , flag : :: std :: os :: raw :: c_int ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ec_method_st { _unused : [ u8 ; 0 ] , } pub type EC_METHOD = ec_method_st ; extern "C" { pub fn EC_GROUP_method_of ( group : * const EC_GROUP ) -> * const EC_METHOD ; } extern "C" { pub fn EC_METHOD_get_field_type ( meth : * const EC_METHOD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_GROUP_set_point_conversion_form ( group : * mut EC_GROUP , form : point_conversion_form_t ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct EC_builtin_curve { pub nid : :: std :: os :: raw :: c_int , pub comment : * const :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_EC_builtin_curve ( ) { assert_eq ! ( :: std :: mem :: size_of :: < EC_builtin_curve > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( EC_builtin_curve ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < EC_builtin_curve > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( EC_builtin_curve ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < EC_builtin_curve > ( ) ) ) . nid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( EC_builtin_curve ) , "::" , stringify ! ( nid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < EC_builtin_curve > ( ) ) ) . comment as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( EC_builtin_curve ) , "::" , stringify ! ( comment ) ) ) ; } extern "C" { pub fn EC_get_builtin_curves ( out_curves : * mut EC_builtin_curve , max_num_curves : usize ) -> usize ; } extern "C" { pub fn EC_POINT_clear_free ( point : * mut EC_POINT ) ; } extern "C" { pub fn EC_KEY_new ( ) -> * mut EC_KEY ; } extern "C" { pub fn EC_KEY_new_method ( engine : * const ENGINE ) -> * mut EC_KEY ; } extern "C" { pub fn EC_KEY_new_by_curve_name ( nid : :: std :: os :: raw :: c_int ) -> * mut EC_KEY ; } extern "C" { pub fn EC_KEY_free ( key : * mut EC_KEY ) ; } extern "C" { pub fn EC_KEY_dup ( src : * const EC_KEY ) -> * mut EC_KEY ; } extern "C" { pub fn EC_KEY_up_ref ( key : * mut EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_is_opaque ( key : * const EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_get0_group ( key : * const EC_KEY ) -> * const EC_GROUP ; } extern "C" { pub fn EC_KEY_set_group ( key : * mut EC_KEY , group : * const EC_GROUP ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_get0_private_key ( key : * const EC_KEY ) -> * const BIGNUM ; } extern "C" { pub fn EC_KEY_set_private_key ( key : * mut EC_KEY , prv : * const BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_get0_public_key ( key : * const EC_KEY ) -> * const EC_POINT ; } extern "C" { pub fn EC_KEY_set_public_key ( key : * mut EC_KEY , pub_ : * const EC_POINT ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_get_enc_flags ( key : * const EC_KEY ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn EC_KEY_set_enc_flags ( key : * mut EC_KEY , flags : :: std :: os :: raw :: c_uint ) ; } extern "C" { pub fn EC_KEY_get_conv_form ( key : * const EC_KEY ) -> point_conversion_form_t ; } extern "C" { pub fn EC_KEY_set_conv_form ( key : * mut EC_KEY , cform : point_conversion_form_t ) ; } extern "C" { pub fn EC_KEY_check_key ( key : * const EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_check_fips ( key : * const EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_set_public_key_affine_coordinates ( key : * mut EC_KEY , x : * mut BIGNUM , y : * mut BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_generate_key ( key : * mut EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_generate_key_fips ( key : * mut EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_parse_private_key ( cbs : * mut CBS , group : * const EC_GROUP ) -> * mut EC_KEY ; } extern "C" { pub fn EC_KEY_marshal_private_key ( cbb : * mut CBB , key : * const EC_KEY , enc_flags : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_parse_curve_name ( cbs : * mut CBS ) -> * mut EC_GROUP ; } extern "C" { pub fn EC_KEY_marshal_curve_name ( cbb : * mut CBB , group : * const EC_GROUP ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_parse_parameters ( cbs : * mut CBS ) -> * mut EC_GROUP ; } extern "C" { pub fn EC_KEY_get_ex_new_index ( argl : :: std :: os :: raw :: c_long , argp : * mut :: std :: os :: raw :: c_void , unused : * mut CRYPTO_EX_unused , dup_unused : CRYPTO_EX_dup , free_func : CRYPTO_EX_free ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_set_ex_data ( r : * mut EC_KEY , idx : :: std :: os :: raw :: c_int , arg : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EC_KEY_get_ex_data ( r : * const EC_KEY , idx : :: std :: os :: raw :: c_int ) -> * mut :: std :: os :: raw :: c_void ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ecdsa_method_st { pub common : openssl_method_common_st , pub app_data : * mut :: std :: os :: raw :: c_void , pub init : :: std :: option :: Option < unsafe extern "C" fn ( key : * mut EC_KEY ) -> :: std :: os :: raw :: c_int > , pub finish : :: std :: option :: Option < unsafe extern "C" fn ( key : * mut EC_KEY ) -> :: std :: os :: raw :: c_int > , pub group_order_size : :: std :: option :: Option < unsafe extern "C" fn ( key : * const EC_KEY ) -> usize > , pub sign : :: std :: option :: Option < unsafe extern "C" fn ( digest : * const u8 , digest_len : usize , sig : * mut u8 , sig_len : * mut :: std :: os :: raw :: c_uint , eckey : * mut EC_KEY ) -> :: std :: os :: raw :: c_int > , pub flags : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_ecdsa_method_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ecdsa_method_st > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( ecdsa_method_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ecdsa_method_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ecdsa_method_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_method_st > ( ) ) ) . common as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_method_st ) , "::" , stringify ! ( common ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_method_st > ( ) ) ) . app_data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_method_st ) , "::" , stringify ! ( app_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_method_st > ( ) ) ) . init as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_method_st ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_method_st > ( ) ) ) . finish as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_method_st ) , "::" , stringify ! ( finish ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_method_st > ( ) ) ) . group_order_size as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_method_st ) , "::" , stringify ! ( group_order_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_method_st > ( ) ) ) . sign as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_method_st ) , "::" , stringify ! ( sign ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_method_st > ( ) ) ) . flags as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_method_st ) , "::" , stringify ! ( flags ) ) ) ; } extern "C" { pub fn EC_KEY_set_asn1_flag ( key : * mut EC_KEY , flag : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn ECDH_compute_key ( out : * mut :: std :: os :: raw :: c_void , outlen : usize , pub_key : * const EC_POINT , priv_key : * const EC_KEY , kdf : :: std :: option :: Option < unsafe extern "C" fn ( in_ : * const :: std :: os :: raw :: c_void , inlen : usize , out : * mut :: std :: os :: raw :: c_void , outlen : * mut usize ) -> * mut :: std :: os :: raw :: c_void > ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ECDH_compute_key_fips ( out : * mut u8 , out_len : usize , pub_key : * const EC_POINT , priv_key : * const EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ECDSA_sign ( type_ : :: std :: os :: raw :: c_int , digest : * const u8 , digest_len : usize , sig : * mut u8 , sig_len : * mut :: std :: os :: raw :: c_uint , key : * const EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ECDSA_verify ( type_ : :: std :: os :: raw :: c_int , digest : * const u8 , digest_len : usize , sig : * const u8 , sig_len : usize , key : * const EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ECDSA_size ( key : * const EC_KEY ) -> usize ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ecdsa_sig_st { pub r : * mut BIGNUM , pub s : * mut BIGNUM , } # [ test ] fn bindgen_test_layout_ecdsa_sig_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ecdsa_sig_st > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( ecdsa_sig_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ecdsa_sig_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ecdsa_sig_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_sig_st > ( ) ) ) . r as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_sig_st ) , "::" , stringify ! ( r ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ecdsa_sig_st > ( ) ) ) . s as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ecdsa_sig_st ) , "::" , stringify ! ( s ) ) ) ; } extern "C" { pub fn ECDSA_SIG_new ( ) -> * mut ECDSA_SIG ; } extern "C" { pub fn ECDSA_SIG_free ( sig : * mut ECDSA_SIG ) ; } extern "C" { pub fn ECDSA_SIG_get0 ( sig : * const ECDSA_SIG , out_r : * mut * const BIGNUM , out_s : * mut * const BIGNUM ) ; } extern "C" { pub fn ECDSA_SIG_set0 ( sig : * mut ECDSA_SIG , r : * mut BIGNUM , s : * mut BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ECDSA_do_sign ( digest : * const u8 , digest_len : usize , key : * const EC_KEY ) -> * mut ECDSA_SIG ; } extern "C" { pub fn ECDSA_do_verify ( digest : * const u8 , digest_len : usize , sig : * const ECDSA_SIG , key : * const EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ECDSA_SIG_parse ( cbs : * mut CBS ) -> * mut ECDSA_SIG ; } extern "C" { pub fn ECDSA_SIG_from_bytes ( in_ : * const u8 , in_len : usize ) -> * mut ECDSA_SIG ; } extern "C" { pub fn ECDSA_SIG_marshal ( cbb : * mut CBB , sig : * const ECDSA_SIG ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ECDSA_SIG_to_bytes ( out_bytes : * mut * mut u8 , out_len : * mut usize , sig : * const ECDSA_SIG ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ECDSA_SIG_max_len ( order_len : usize ) -> usize ; } extern "C" { pub fn EVP_PKEY_new ( ) -> * mut EVP_PKEY ; } extern "C" { pub fn EVP_PKEY_free ( pkey : * mut EVP_PKEY ) ; } extern "C" { pub fn EVP_PKEY_up_ref ( pkey : * mut EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_is_opaque ( pkey : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_cmp ( a : * const EVP_PKEY , b : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_copy_parameters ( to : * mut EVP_PKEY , from : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_missing_parameters ( pkey : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_size ( pkey : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_bits ( pkey : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_id ( pkey : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_type ( nid : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_set1_RSA ( pkey : * mut EVP_PKEY , key : * mut RSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_assign_RSA ( pkey : * mut EVP_PKEY , key : * mut RSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_get0_RSA ( pkey : * const EVP_PKEY ) -> * mut RSA ; } extern "C" { pub fn EVP_PKEY_get1_RSA ( pkey : * const EVP_PKEY ) -> * mut RSA ; } extern "C" { pub fn EVP_PKEY_set1_DSA ( pkey : * mut EVP_PKEY , key : * mut DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_assign_DSA ( pkey : * mut EVP_PKEY , key : * mut DSA ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_get0_DSA ( pkey : * const EVP_PKEY ) -> * mut DSA ; } extern "C" { pub fn EVP_PKEY_get1_DSA ( pkey : * const EVP_PKEY ) -> * mut DSA ; } extern "C" { pub fn EVP_PKEY_set1_EC_KEY ( pkey : * mut EVP_PKEY , key : * mut EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_assign_EC_KEY ( pkey : * mut EVP_PKEY , key : * mut EC_KEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_get0_EC_KEY ( pkey : * const EVP_PKEY ) -> * mut EC_KEY ; } extern "C" { pub fn EVP_PKEY_get1_EC_KEY ( pkey : * const EVP_PKEY ) -> * mut EC_KEY ; } extern "C" { pub fn EVP_PKEY_new_ed25519_public ( public_key : * const u8 ) -> * mut EVP_PKEY ; } extern "C" { pub fn EVP_PKEY_new_ed25519_private ( private_key : * const u8 ) -> * mut EVP_PKEY ; } extern "C" { pub fn EVP_PKEY_assign ( pkey : * mut EVP_PKEY , type_ : :: std :: os :: raw :: c_int , key : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_set_type ( pkey : * mut EVP_PKEY , type_ : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_cmp_parameters ( a : * const EVP_PKEY , b : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_parse_public_key ( cbs : * mut CBS ) -> * mut EVP_PKEY ; } extern "C" { pub fn EVP_marshal_public_key ( cbb : * mut CBB , key : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_parse_private_key ( cbs : * mut CBS ) -> * mut EVP_PKEY ; } extern "C" { pub fn EVP_marshal_private_key ( cbb : * mut CBB , key : * const EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestSignInit ( ctx : * mut EVP_MD_CTX , pctx : * mut * mut EVP_PKEY_CTX , type_ : * const EVP_MD , e : * mut ENGINE , pkey : * mut EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestSignUpdate ( ctx : * mut EVP_MD_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestSignFinal ( ctx : * mut EVP_MD_CTX , out_sig : * mut u8 , out_sig_len : * mut usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestSign ( ctx : * mut EVP_MD_CTX , out_sig : * mut u8 , out_sig_len : * mut usize , data : * const u8 , data_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestVerifyInit ( ctx : * mut EVP_MD_CTX , pctx : * mut * mut EVP_PKEY_CTX , type_ : * const EVP_MD , e : * mut ENGINE , pkey : * mut EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestVerifyUpdate ( ctx : * mut EVP_MD_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestVerifyFinal ( ctx : * mut EVP_MD_CTX , sig : * const u8 , sig_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_DigestVerify ( ctx : * mut EVP_MD_CTX , sig : * const u8 , sig_len : usize , data : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_SignInit_ex ( ctx : * mut EVP_MD_CTX , type_ : * const EVP_MD , impl_ : * mut ENGINE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_SignInit ( ctx : * mut EVP_MD_CTX , type_ : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_SignUpdate ( ctx : * mut EVP_MD_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_SignFinal ( ctx : * const EVP_MD_CTX , sig : * mut u8 , out_sig_len : * mut :: std :: os :: raw :: c_uint , pkey : * mut EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_VerifyInit_ex ( ctx : * mut EVP_MD_CTX , type_ : * const EVP_MD , impl_ : * mut ENGINE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_VerifyInit ( ctx : * mut EVP_MD_CTX , type_ : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_VerifyUpdate ( ctx : * mut EVP_MD_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_VerifyFinal ( ctx : * mut EVP_MD_CTX , sig : * const u8 , sig_len : usize , pkey : * mut EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_print_public ( out : * mut BIO , pkey : * const EVP_PKEY , indent : :: std :: os :: raw :: c_int , pctx : * mut ASN1_PCTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_print_private ( out : * mut BIO , pkey : * const EVP_PKEY , indent : :: std :: os :: raw :: c_int , pctx : * mut ASN1_PCTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_print_params ( out : * mut BIO , pkey : * const EVP_PKEY , indent : :: std :: os :: raw :: c_int , pctx : * mut ASN1_PCTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn PKCS5_PBKDF2_HMAC ( password : * const :: std :: os :: raw :: c_char , password_len : usize , salt : * const u8 , salt_len : usize , iterations : :: std :: os :: raw :: c_uint , digest : * const EVP_MD , key_len : usize , out_key : * mut u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn PKCS5_PBKDF2_HMAC_SHA1 ( password : * const :: std :: os :: raw :: c_char , password_len : usize , salt : * const u8 , salt_len : usize , iterations : :: std :: os :: raw :: c_uint , key_len : usize , out_key : * mut u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PBE_scrypt ( password : * const :: std :: os :: raw :: c_char , password_len : usize , salt : * const u8 , salt_len : usize , N : u64 , r : u64 , p : u64 , max_mem : usize , out_key : * mut u8 , key_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_new ( pkey : * mut EVP_PKEY , e : * mut ENGINE ) -> * mut EVP_PKEY_CTX ; } extern "C" { pub fn EVP_PKEY_CTX_new_id ( id : :: std :: os :: raw :: c_int , e : * mut ENGINE ) -> * mut EVP_PKEY_CTX ; } extern "C" { pub fn EVP_PKEY_CTX_free ( ctx : * mut EVP_PKEY_CTX ) ; } extern "C" { pub fn EVP_PKEY_CTX_dup ( ctx : * mut EVP_PKEY_CTX ) -> * mut EVP_PKEY_CTX ; } extern "C" { pub fn EVP_PKEY_CTX_get0_pkey ( ctx : * mut EVP_PKEY_CTX ) -> * mut EVP_PKEY ; } extern "C" { pub fn EVP_PKEY_sign_init ( ctx : * mut EVP_PKEY_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_sign ( ctx : * mut EVP_PKEY_CTX , sig : * mut u8 , sig_len : * mut usize , digest : * const u8 , digest_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_verify_init ( ctx : * mut EVP_PKEY_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_verify ( ctx : * mut EVP_PKEY_CTX , sig : * const u8 , sig_len : usize , digest : * const u8 , digest_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_encrypt_init ( ctx : * mut EVP_PKEY_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_encrypt ( ctx : * mut EVP_PKEY_CTX , out : * mut u8 , out_len : * mut usize , in_ : * const u8 , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_decrypt_init ( ctx : * mut EVP_PKEY_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_decrypt ( ctx : * mut EVP_PKEY_CTX , out : * mut u8 , out_len : * mut usize , in_ : * const u8 , in_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_verify_recover_init ( ctx : * mut EVP_PKEY_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_verify_recover ( ctx : * mut EVP_PKEY_CTX , out : * mut u8 , out_len : * mut usize , sig : * const u8 , siglen : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_derive_init ( ctx : * mut EVP_PKEY_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_derive_set_peer ( ctx : * mut EVP_PKEY_CTX , peer : * mut EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_derive ( ctx : * mut EVP_PKEY_CTX , key : * mut u8 , out_key_len : * mut usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_keygen_init ( ctx : * mut EVP_PKEY_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_keygen ( ctx : * mut EVP_PKEY_CTX , ppkey : * mut * mut EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_set_signature_md ( ctx : * mut EVP_PKEY_CTX , md : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_get_signature_md ( ctx : * mut EVP_PKEY_CTX , out_md : * mut * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_set_rsa_padding ( ctx : * mut EVP_PKEY_CTX , padding : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_get_rsa_padding ( ctx : * mut EVP_PKEY_CTX , out_padding : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen ( ctx : * mut EVP_PKEY_CTX , salt_len : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen ( ctx : * mut EVP_PKEY_CTX , out_salt_len : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_set_rsa_keygen_bits ( ctx : * mut EVP_PKEY_CTX , bits : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp ( ctx : * mut EVP_PKEY_CTX , e : * mut BIGNUM ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_set_rsa_oaep_md ( ctx : * mut EVP_PKEY_CTX , md : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_get_rsa_oaep_md ( ctx : * mut EVP_PKEY_CTX , out_md : * mut * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_set_rsa_mgf1_md ( ctx : * mut EVP_PKEY_CTX , md : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_get_rsa_mgf1_md ( ctx : * mut EVP_PKEY_CTX , out_md : * mut * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_set0_rsa_oaep_label ( ctx : * mut EVP_PKEY_CTX , label : * mut u8 , label_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKEY_CTX_get0_rsa_oaep_label ( ctx : * mut EVP_PKEY_CTX , out_label : * mut * const u8 ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn OPENSSL_add_all_algorithms_conf ( ) ; } extern "C" { pub fn EVP_cleanup ( ) ; } extern "C" { pub fn EVP_CIPHER_do_all_sorted ( callback : :: std :: option :: Option < unsafe extern "C" fn ( cipher : * const EVP_CIPHER , name : * const :: std :: os :: raw :: c_char , unused : * const :: std :: os :: raw :: c_char , arg : * mut :: std :: os :: raw :: c_void ) > , arg : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn EVP_MD_do_all_sorted ( callback : :: std :: option :: Option < unsafe extern "C" fn ( cipher : * const EVP_MD , name : * const :: std :: os :: raw :: c_char , unused : * const :: std :: os :: raw :: c_char , arg : * mut :: std :: os :: raw :: c_void ) > , arg : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn EVP_PKEY_get0_DH ( pkey : * const EVP_PKEY ) -> * mut DH ; } extern "C" { pub fn EVP_PKEY_get1_DH ( pkey : * const EVP_PKEY ) -> * mut DH ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct evp_pkey_st { pub references : CRYPTO_refcount_t , pub type_ : :: std :: os :: raw :: c_int , pub pkey : evp_pkey_st__bindgen_ty_1 , pub ameth : * const EVP_PKEY_ASN1_METHOD , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union evp_pkey_st__bindgen_ty_1 { pub ptr : * mut :: std :: os :: raw :: c_void , pub rsa : * mut RSA , pub dsa : * mut DSA , pub dh : * mut DH , pub ec : * mut EC_KEY , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout_evp_pkey_st__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < evp_pkey_st__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( evp_pkey_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < evp_pkey_st__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( evp_pkey_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st__bindgen_ty_1 > ( ) ) ) . ptr as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st__bindgen_ty_1 ) , "::" , stringify ! ( ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st__bindgen_ty_1 > ( ) ) ) . rsa as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st__bindgen_ty_1 ) , "::" , stringify ! ( rsa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st__bindgen_ty_1 > ( ) ) ) . dsa as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st__bindgen_ty_1 ) , "::" , stringify ! ( dsa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st__bindgen_ty_1 > ( ) ) ) . dh as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st__bindgen_ty_1 ) , "::" , stringify ! ( dh ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st__bindgen_ty_1 > ( ) ) ) . ec as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st__bindgen_ty_1 ) , "::" , stringify ! ( ec ) ) ) ; } # [ test ] fn bindgen_test_layout_evp_pkey_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < evp_pkey_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( evp_pkey_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < evp_pkey_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( evp_pkey_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st > ( ) ) ) . references as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st > ( ) ) ) . type_ as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st > ( ) ) ) . pkey as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st ) , "::" , stringify ! ( pkey ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < evp_pkey_st > ( ) ) ) . ameth as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( evp_pkey_st ) , "::" , stringify ! ( ameth ) ) ) ; } extern "C" { pub fn HMAC_CTX_init ( ctx : * mut HMAC_CTX ) ; } extern "C" { pub fn HMAC_CTX_new ( ) -> * mut HMAC_CTX ; } extern "C" { pub fn HMAC_CTX_cleanup ( ctx : * mut HMAC_CTX ) ; } extern "C" { pub fn HMAC_CTX_free ( ctx : * mut HMAC_CTX ) ; } extern "C" { pub fn HMAC_Init_ex ( ctx : * mut HMAC_CTX , key : * const :: std :: os :: raw :: c_void , key_len : usize , md : * const EVP_MD , impl_ : * mut ENGINE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn HMAC_Update ( ctx : * mut HMAC_CTX , data : * const u8 , data_len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn HMAC_Final ( ctx : * mut HMAC_CTX , out : * mut u8 , out_len : * mut :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn HMAC_size ( ctx : * const HMAC_CTX ) -> usize ; } extern "C" { pub fn HMAC_CTX_copy_ex ( dest : * mut HMAC_CTX , src : * const HMAC_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn HMAC_CTX_reset ( ctx : * mut HMAC_CTX ) ; } extern "C" { pub fn HMAC_Init ( ctx : * mut HMAC_CTX , key : * const :: std :: os :: raw :: c_void , key_len : :: std :: os :: raw :: c_int , md : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn HMAC_CTX_copy ( dest : * mut HMAC_CTX , src : * const HMAC_CTX ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct hmac_ctx_st { pub md : * const EVP_MD , pub md_ctx : EVP_MD_CTX , pub i_ctx : EVP_MD_CTX , pub o_ctx : EVP_MD_CTX , } # [ test ] fn bindgen_test_layout_hmac_ctx_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < hmac_ctx_st > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( hmac_ctx_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < hmac_ctx_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( hmac_ctx_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hmac_ctx_st > ( ) ) ) . md as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( hmac_ctx_st ) , "::" , stringify ! ( md ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hmac_ctx_st > ( ) ) ) . md_ctx as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( hmac_ctx_st ) , "::" , stringify ! ( md_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hmac_ctx_st > ( ) ) ) . i_ctx as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( hmac_ctx_st ) , "::" , stringify ! ( i_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < hmac_ctx_st > ( ) ) ) . o_ctx as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( hmac_ctx_st ) , "::" , stringify ! ( o_ctx ) ) ) ; } extern "C" { pub fn CRYPTO_BUFFER_POOL_new ( ) -> * mut CRYPTO_BUFFER_POOL ; } extern "C" { pub fn CRYPTO_BUFFER_POOL_free ( pool : * mut CRYPTO_BUFFER_POOL ) ; } extern "C" { pub fn CRYPTO_BUFFER_new ( data : * const u8 , len : usize , pool : * mut CRYPTO_BUFFER_POOL ) -> * mut CRYPTO_BUFFER ; } extern "C" { pub fn CRYPTO_BUFFER_alloc ( out_data : * mut * mut u8 , len : usize ) -> * mut CRYPTO_BUFFER ; } extern "C" { pub fn CRYPTO_BUFFER_new_from_CBS ( cbs : * mut CBS , pool : * mut CRYPTO_BUFFER_POOL ) -> * mut CRYPTO_BUFFER ; } extern "C" { pub fn CRYPTO_BUFFER_free ( buf : * mut CRYPTO_BUFFER ) ; } extern "C" { pub fn CRYPTO_BUFFER_up_ref ( buf : * mut CRYPTO_BUFFER ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn CRYPTO_BUFFER_data ( buf : * const CRYPTO_BUFFER ) -> * const u8 ; } extern "C" { pub fn CRYPTO_BUFFER_len ( buf : * const CRYPTO_BUFFER ) -> usize ; } extern "C" { pub fn CRYPTO_BUFFER_init_CBS ( buf : * const CRYPTO_BUFFER , out : * mut CBS ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct rsa_meth_st { pub common : openssl_method_common_st , pub app_data : * mut :: std :: os :: raw :: c_void , pub init : :: std :: option :: Option < unsafe extern "C" fn ( rsa : * mut RSA ) -> :: std :: os :: raw :: c_int > , pub finish : :: std :: option :: Option < unsafe extern "C" fn ( rsa : * mut RSA ) -> :: std :: os :: raw :: c_int > , pub size : :: std :: option :: Option < unsafe extern "C" fn ( rsa : * const RSA ) -> usize > , pub sign : :: std :: option :: Option < unsafe extern "C" fn ( type_ : :: std :: os :: raw :: c_int , m : * const u8 , m_length : :: std :: os :: raw :: c_uint , sigret : * mut u8 , siglen : * mut :: std :: os :: raw :: c_uint , rsa : * const RSA ) -> :: std :: os :: raw :: c_int > , pub sign_raw : :: std :: option :: Option < unsafe extern "C" fn ( rsa : * mut RSA , out_len : * mut usize , out : * mut u8 , max_out : usize , in_ : * const u8 , in_len : usize , padding : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub decrypt : :: std :: option :: Option < unsafe extern "C" fn ( rsa : * mut RSA , out_len : * mut usize , out : * mut u8 , max_out : usize , in_ : * const u8 , in_len : usize , padding : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub private_transform : :: std :: option :: Option < unsafe extern "C" fn ( rsa : * mut RSA , out : * mut u8 , in_ : * const u8 , len : usize ) -> :: std :: os :: raw :: c_int > , pub flags : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_rsa_meth_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < rsa_meth_st > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( rsa_meth_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < rsa_meth_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( rsa_meth_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . common as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( common ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . app_data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( app_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . init as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . finish as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( finish ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . size as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . sign as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( sign ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . sign_raw as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( sign_raw ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . decrypt as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( decrypt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . private_transform as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( private_transform ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_meth_st > ( ) ) ) . flags as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( rsa_meth_st ) , "::" , stringify ! ( flags ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct bn_blinding_st { _unused : [ u8 ; 0 ] , } pub type BN_BLINDING = bn_blinding_st ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct rsa_st { pub meth : * mut RSA_METHOD , pub n : * mut BIGNUM , pub e : * mut BIGNUM , pub d : * mut BIGNUM , pub p : * mut BIGNUM , pub q : * mut BIGNUM , pub dmp1 : * mut BIGNUM , pub dmq1 : * mut BIGNUM , pub iqmp : * mut BIGNUM , pub ex_data : CRYPTO_EX_DATA , pub references : CRYPTO_refcount_t , pub flags : :: std :: os :: raw :: c_int , pub lock : CRYPTO_MUTEX , pub mont_n : * mut BN_MONT_CTX , pub mont_p : * mut BN_MONT_CTX , pub mont_q : * mut BN_MONT_CTX , pub d_fixed : * mut BIGNUM , pub dmp1_fixed : * mut BIGNUM , pub dmq1_fixed : * mut BIGNUM , pub inv_small_mod_large_mont : * mut BIGNUM , pub num_blindings : :: std :: os :: raw :: c_uint , pub blindings : * mut * mut BN_BLINDING , pub blindings_inuse : * mut :: std :: os :: raw :: c_uchar , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub __bindgen_padding_0 : [ u8 ; 7usize ] , } # [ test ] fn bindgen_test_layout_rsa_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < rsa_st > ( ) , 232usize , concat ! ( "Size of: " , stringify ! ( rsa_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < rsa_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( rsa_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . meth as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( meth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . n as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( n ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . e as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( e ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . d as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( d ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . p as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . q as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( q ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . dmp1 as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( dmp1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . dmq1 as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( dmq1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . iqmp as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( iqmp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . ex_data as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( ex_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . references as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . flags as * const _ as usize } , 84usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . lock as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . mont_n as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( mont_n ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . mont_p as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( mont_p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . mont_q as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( mont_q ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . d_fixed as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( d_fixed ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . dmp1_fixed as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( dmp1_fixed ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . dmq1_fixed as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( dmq1_fixed ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . inv_small_mod_large_mont as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( inv_small_mod_large_mont ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . num_blindings as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( num_blindings ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . blindings as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( blindings ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rsa_st > ( ) ) ) . blindings_inuse as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( rsa_st ) , "::" , stringify ! ( blindings_inuse ) ) ) ; } impl rsa_st { # [ inline ] pub fn private_key_frozen ( & self ) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_private_key_frozen ( & mut self , val : :: std :: os :: raw :: c_uint ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( private_key_frozen : :: std :: os :: raw :: c_uint ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let private_key_frozen : u32 = unsafe { :: std :: mem :: transmute ( private_key_frozen ) } ; private_key_frozen as u64 } ) ; __bindgen_bitfield_unit } } extern "C" { pub fn SHA1_Init ( sha : * mut SHA_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA1_Update ( sha : * mut SHA_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA1_Final ( md : * mut u8 , sha : * mut SHA_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA1_Transform ( sha : * mut SHA_CTX , block : * const u8 ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sha_state_st { pub __bindgen_anon_1 : sha_state_st__bindgen_ty_1 , pub Nl : u32 , pub Nh : u32 , pub data : [ u8 ; 64usize ] , pub num : :: std :: os :: raw :: c_uint , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union sha_state_st__bindgen_ty_1 { pub h : [ u32 ; 5usize ] , pub __bindgen_anon_1 : sha_state_st__bindgen_ty_1__bindgen_ty_1 , _bindgen_union_align : [ u32 ; 5usize ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sha_state_st__bindgen_ty_1__bindgen_ty_1 { pub h0 : u32 , pub h1 : u32 , pub h2 : u32 , pub h3 : u32 , pub h4 : u32 , } # [ test ] fn bindgen_test_layout_sha_state_st__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sha_state_st__bindgen_ty_1__bindgen_ty_1 > ( ) , 20usize , concat ! ( "Size of: " , stringify ! ( sha_state_st__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sha_state_st__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sha_state_st__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . h0 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( h0 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . h1 as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( h1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . h2 as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( h2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . h3 as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( h3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . h4 as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( h4 ) ) ) ; } # [ test ] fn bindgen_test_layout_sha_state_st__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sha_state_st__bindgen_ty_1 > ( ) , 20usize , concat ! ( "Size of: " , stringify ! ( sha_state_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sha_state_st__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sha_state_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st__bindgen_ty_1 > ( ) ) ) . h as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st__bindgen_ty_1 ) , "::" , stringify ! ( h ) ) ) ; } # [ test ] fn bindgen_test_layout_sha_state_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sha_state_st > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( sha_state_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sha_state_st > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sha_state_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st > ( ) ) ) . Nl as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st ) , "::" , stringify ! ( Nl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st > ( ) ) ) . Nh as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st ) , "::" , stringify ! ( Nh ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st > ( ) ) ) . data as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha_state_st > ( ) ) ) . num as * const _ as usize } , 92usize , concat ! ( "Offset of field: " , stringify ! ( sha_state_st ) , "::" , stringify ! ( num ) ) ) ; } extern "C" { pub fn SHA224_Init ( sha : * mut SHA256_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA224_Update ( sha : * mut SHA256_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA224_Final ( md : * mut u8 , sha : * mut SHA256_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA256_Init ( sha : * mut SHA256_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA256_Update ( sha : * mut SHA256_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA256_Final ( md : * mut u8 , sha : * mut SHA256_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA256_Transform ( sha : * mut SHA256_CTX , block : * const u8 ) ; } extern "C" { pub fn SHA256_TransformBlocks ( state : * mut u32 , data : * const u8 , num_blocks : usize ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sha256_state_st { pub h : [ u32 ; 8usize ] , pub Nl : u32 , pub Nh : u32 , pub data : [ u8 ; 64usize ] , pub num : :: std :: os :: raw :: c_uint , pub md_len : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_sha256_state_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sha256_state_st > ( ) , 112usize , concat ! ( "Size of: " , stringify ! ( sha256_state_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sha256_state_st > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sha256_state_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha256_state_st > ( ) ) ) . h as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sha256_state_st ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha256_state_st > ( ) ) ) . Nl as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sha256_state_st ) , "::" , stringify ! ( Nl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha256_state_st > ( ) ) ) . Nh as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( sha256_state_st ) , "::" , stringify ! ( Nh ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha256_state_st > ( ) ) ) . data as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sha256_state_st ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha256_state_st > ( ) ) ) . num as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sha256_state_st ) , "::" , stringify ! ( num ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha256_state_st > ( ) ) ) . md_len as * const _ as usize } , 108usize , concat ! ( "Offset of field: " , stringify ! ( sha256_state_st ) , "::" , stringify ! ( md_len ) ) ) ; } extern "C" { pub fn SHA384_Init ( sha : * mut SHA512_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA384_Update ( sha : * mut SHA512_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA384_Final ( md : * mut u8 , sha : * mut SHA512_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA512_Init ( sha : * mut SHA512_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA512_Update ( sha : * mut SHA512_CTX , data : * const :: std :: os :: raw :: c_void , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA512_Final ( md : * mut u8 , sha : * mut SHA512_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn SHA512_Transform ( sha : * mut SHA512_CTX , block : * const u8 ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sha512_state_st { pub h : [ u64 ; 8usize ] , pub Nl : u64 , pub Nh : u64 , pub u : sha512_state_st__bindgen_ty_1 , pub num : :: std :: os :: raw :: c_uint , pub md_len : :: std :: os :: raw :: c_uint , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union sha512_state_st__bindgen_ty_1 { pub d : [ u64 ; 16usize ] , pub p : [ u8 ; 128usize ] , _bindgen_union_align : [ u64 ; 16usize ] , } # [ test ] fn bindgen_test_layout_sha512_state_st__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sha512_state_st__bindgen_ty_1 > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( sha512_state_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sha512_state_st__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sha512_state_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha512_state_st__bindgen_ty_1 > ( ) ) ) . d as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sha512_state_st__bindgen_ty_1 ) , "::" , stringify ! ( d ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha512_state_st__bindgen_ty_1 > ( ) ) ) . p as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sha512_state_st__bindgen_ty_1 ) , "::" , stringify ! ( p ) ) ) ; } # [ test ] fn bindgen_test_layout_sha512_state_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sha512_state_st > ( ) , 216usize , concat ! ( "Size of: " , stringify ! ( sha512_state_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sha512_state_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sha512_state_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha512_state_st > ( ) ) ) . h as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sha512_state_st ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha512_state_st > ( ) ) ) . Nl as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sha512_state_st ) , "::" , stringify ! ( Nl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha512_state_st > ( ) ) ) . Nh as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sha512_state_st ) , "::" , stringify ! ( Nh ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha512_state_st > ( ) ) ) . u as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sha512_state_st ) , "::" , stringify ! ( u ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha512_state_st > ( ) ) ) . num as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( sha512_state_st ) , "::" , stringify ! ( num ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sha512_state_st > ( ) ) ) . md_len as * const _ as usize } , 212usize , concat ! ( "Offset of field: " , stringify ! ( sha512_state_st ) , "::" , stringify ! ( md_len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_X509_ALGOR { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_val_st { pub notBefore : * mut ASN1_TIME , pub notAfter : * mut ASN1_TIME , } # [ test ] fn bindgen_test_layout_X509_val_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509_val_st > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( X509_val_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509_val_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509_val_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_val_st > ( ) ) ) . notBefore as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509_val_st ) , "::" , stringify ! ( notBefore ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_val_st > ( ) ) ) . notAfter as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( X509_val_st ) , "::" , stringify ! ( notAfter ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_pubkey_st { pub algor : * mut X509_ALGOR , pub public_key : * mut ASN1_BIT_STRING , pub pkey : * mut EVP_PKEY , } # [ test ] fn bindgen_test_layout_X509_pubkey_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509_pubkey_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( X509_pubkey_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509_pubkey_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509_pubkey_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_pubkey_st > ( ) ) ) . algor as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509_pubkey_st ) , "::" , stringify ! ( algor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_pubkey_st > ( ) ) ) . public_key as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( X509_pubkey_st ) , "::" , stringify ! ( public_key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_pubkey_st > ( ) ) ) . pkey as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( X509_pubkey_st ) , "::" , stringify ! ( pkey ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_X509_NAME_ENTRY { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_name_st { pub entries : * mut stack_st_X509_NAME_ENTRY , pub modified : :: std :: os :: raw :: c_int , pub bytes : * mut BUF_MEM , pub canon_enc : * mut :: std :: os :: raw :: c_uchar , pub canon_enclen : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_X509_name_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509_name_st > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( X509_name_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509_name_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509_name_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_name_st > ( ) ) ) . entries as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509_name_st ) , "::" , stringify ! ( entries ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_name_st > ( ) ) ) . modified as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( X509_name_st ) , "::" , stringify ! ( modified ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_name_st > ( ) ) ) . bytes as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( X509_name_st ) , "::" , stringify ! ( bytes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_name_st > ( ) ) ) . canon_enc as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( X509_name_st ) , "::" , stringify ! ( canon_enc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_name_st > ( ) ) ) . canon_enclen as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( X509_name_st ) , "::" , stringify ! ( canon_enclen ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_X509_EXTENSION { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_X509_ATTRIBUTE { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_req_info_st { pub enc : ASN1_ENCODING , pub version : * mut ASN1_INTEGER , pub subject : * mut X509_NAME , pub pubkey : * mut X509_PUBKEY , pub attributes : * mut stack_st_X509_ATTRIBUTE , } # [ test ] fn bindgen_test_layout_X509_req_info_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509_req_info_st > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( X509_req_info_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509_req_info_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509_req_info_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_info_st > ( ) ) ) . enc as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_info_st ) , "::" , stringify ! ( enc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_info_st > ( ) ) ) . version as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_info_st ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_info_st > ( ) ) ) . subject as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_info_st ) , "::" , stringify ! ( subject ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_info_st > ( ) ) ) . pubkey as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_info_st ) , "::" , stringify ! ( pubkey ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_info_st > ( ) ) ) . attributes as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_info_st ) , "::" , stringify ! ( attributes ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_req_st { pub req_info : * mut X509_REQ_INFO , pub sig_alg : * mut X509_ALGOR , pub signature : * mut ASN1_BIT_STRING , pub references : CRYPTO_refcount_t , } # [ test ] fn bindgen_test_layout_X509_req_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509_req_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( X509_req_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509_req_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509_req_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_st > ( ) ) ) . req_info as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_st ) , "::" , stringify ! ( req_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_st > ( ) ) ) . sig_alg as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_st ) , "::" , stringify ! ( sig_alg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_st > ( ) ) ) . signature as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_st ) , "::" , stringify ! ( signature ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_req_st > ( ) ) ) . references as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( X509_req_st ) , "::" , stringify ! ( references ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct x509_cinf_st { pub version : * mut ASN1_INTEGER , pub serialNumber : * mut ASN1_INTEGER , pub signature : * mut X509_ALGOR , pub issuer : * mut X509_NAME , pub validity : * mut X509_VAL , pub subject : * mut X509_NAME , pub key : * mut X509_PUBKEY , pub issuerUID : * mut ASN1_BIT_STRING , pub subjectUID : * mut ASN1_BIT_STRING , pub extensions : * mut stack_st_X509_EXTENSION , pub enc : ASN1_ENCODING , } # [ test ] fn bindgen_test_layout_x509_cinf_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < x509_cinf_st > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( x509_cinf_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < x509_cinf_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( x509_cinf_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . version as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . serialNumber as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( serialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . signature as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( signature ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . issuer as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( issuer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . validity as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( validity ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . subject as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( subject ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . key as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . issuerUID as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( issuerUID ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . subjectUID as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( subjectUID ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . extensions as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( extensions ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cinf_st > ( ) ) ) . enc as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( x509_cinf_st ) , "::" , stringify ! ( enc ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct x509_cert_aux_st { pub trust : * mut stack_st_ASN1_OBJECT , pub reject : * mut stack_st_ASN1_OBJECT , pub alias : * mut ASN1_UTF8STRING , pub keyid : * mut ASN1_OCTET_STRING , pub other : * mut stack_st_X509_ALGOR , } # [ test ] fn bindgen_test_layout_x509_cert_aux_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < x509_cert_aux_st > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( x509_cert_aux_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < x509_cert_aux_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( x509_cert_aux_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cert_aux_st > ( ) ) ) . trust as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( x509_cert_aux_st ) , "::" , stringify ! ( trust ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cert_aux_st > ( ) ) ) . reject as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( x509_cert_aux_st ) , "::" , stringify ! ( reject ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cert_aux_st > ( ) ) ) . alias as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( x509_cert_aux_st ) , "::" , stringify ! ( alias ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cert_aux_st > ( ) ) ) . keyid as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( x509_cert_aux_st ) , "::" , stringify ! ( keyid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_cert_aux_st > ( ) ) ) . other as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( x509_cert_aux_st ) , "::" , stringify ! ( other ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_DIST_POINT { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_GENERAL_NAME { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct x509_st { pub cert_info : * mut X509_CINF , pub sig_alg : * mut X509_ALGOR , pub signature : * mut ASN1_BIT_STRING , pub references : CRYPTO_refcount_t , pub name : * mut :: std :: os :: raw :: c_char , pub ex_data : CRYPTO_EX_DATA , pub ex_pathlen : :: std :: os :: raw :: c_long , pub ex_pcpathlen : :: std :: os :: raw :: c_long , pub ex_flags : :: std :: os :: raw :: c_ulong , pub ex_kusage : :: std :: os :: raw :: c_ulong , pub ex_xkusage : :: std :: os :: raw :: c_ulong , pub ex_nscert : :: std :: os :: raw :: c_ulong , pub skid : * mut ASN1_OCTET_STRING , pub akid : * mut AUTHORITY_KEYID , pub policy_cache : * mut X509_POLICY_CACHE , pub crldp : * mut stack_st_DIST_POINT , pub altname : * mut stack_st_GENERAL_NAME , pub nc : * mut NAME_CONSTRAINTS , pub sha1_hash : [ :: std :: os :: raw :: c_uchar ; 20usize ] , pub aux : * mut X509_CERT_AUX , pub buf : * mut CRYPTO_BUFFER , pub lock : CRYPTO_MUTEX , } # [ test ] fn bindgen_test_layout_x509_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < x509_st > ( ) , 240usize , concat ! ( "Size of: " , stringify ! ( x509_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < x509_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( x509_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . cert_info as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( cert_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . sig_alg as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( sig_alg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . signature as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( signature ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . references as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . name as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . ex_data as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( ex_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . ex_pathlen as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( ex_pathlen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . ex_pcpathlen as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( ex_pcpathlen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . ex_flags as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( ex_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . ex_kusage as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( ex_kusage ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . ex_xkusage as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( ex_xkusage ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . ex_nscert as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( ex_nscert ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . skid as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( skid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . akid as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( akid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . policy_cache as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( policy_cache ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . crldp as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( crldp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . altname as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( altname ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . nc as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( nc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . sha1_hash as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( sha1_hash ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . aux as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( aux ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . buf as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < x509_st > ( ) ) ) . lock as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( x509_st ) , "::" , stringify ! ( lock ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_X509_REVOKED { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_crl_info_st { pub version : * mut ASN1_INTEGER , pub sig_alg : * mut X509_ALGOR , pub issuer : * mut X509_NAME , pub lastUpdate : * mut ASN1_TIME , pub nextUpdate : * mut ASN1_TIME , pub revoked : * mut stack_st_X509_REVOKED , pub extensions : * mut stack_st_X509_EXTENSION , pub enc : ASN1_ENCODING , } # [ test ] fn bindgen_test_layout_X509_crl_info_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509_crl_info_st > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( X509_crl_info_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509_crl_info_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509_crl_info_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_info_st > ( ) ) ) . version as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_info_st ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_info_st > ( ) ) ) . sig_alg as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_info_st ) , "::" , stringify ! ( sig_alg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_info_st > ( ) ) ) . issuer as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_info_st ) , "::" , stringify ! ( issuer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_info_st > ( ) ) ) . lastUpdate as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_info_st ) , "::" , stringify ! ( lastUpdate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_info_st > ( ) ) ) . nextUpdate as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_info_st ) , "::" , stringify ! ( nextUpdate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_info_st > ( ) ) ) . revoked as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_info_st ) , "::" , stringify ! ( revoked ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_info_st > ( ) ) ) . extensions as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_info_st ) , "::" , stringify ! ( extensions ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_info_st > ( ) ) ) . enc as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_info_st ) , "::" , stringify ! ( enc ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_GENERAL_NAMES { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509_crl_st { pub crl : * mut X509_CRL_INFO , pub sig_alg : * mut X509_ALGOR , pub signature : * mut ASN1_BIT_STRING , pub references : CRYPTO_refcount_t , pub flags : :: std :: os :: raw :: c_int , pub akid : * mut AUTHORITY_KEYID , pub idp : * mut ISSUING_DIST_POINT , pub idp_flags : :: std :: os :: raw :: c_int , pub idp_reasons : :: std :: os :: raw :: c_int , pub crl_number : * mut ASN1_INTEGER , pub base_crl_number : * mut ASN1_INTEGER , pub sha1_hash : [ :: std :: os :: raw :: c_uchar ; 20usize ] , pub issuers : * mut stack_st_GENERAL_NAMES , pub meth : * const X509_CRL_METHOD , pub meth_data : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_X509_crl_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509_crl_st > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( X509_crl_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509_crl_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509_crl_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . crl as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( crl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . sig_alg as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( sig_alg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . signature as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( signature ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . references as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( references ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . flags as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . akid as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( akid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . idp as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( idp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . idp_flags as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( idp_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . idp_reasons as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( idp_reasons ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . crl_number as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( crl_number ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . base_crl_number as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( base_crl_number ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . sha1_hash as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( sha1_hash ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . issuers as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( issuers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . meth as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( meth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509_crl_st > ( ) ) ) . meth_data as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( X509_crl_st ) , "::" , stringify ! ( meth_data ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct pkcs8_priv_key_info_st { pub broken : :: std :: os :: raw :: c_int , pub version : * mut ASN1_INTEGER , pub pkeyalg : * mut X509_ALGOR , pub pkey : * mut ASN1_TYPE , pub attributes : * mut stack_st_X509_ATTRIBUTE , } # [ test ] fn bindgen_test_layout_pkcs8_priv_key_info_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pkcs8_priv_key_info_st > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( pkcs8_priv_key_info_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pkcs8_priv_key_info_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pkcs8_priv_key_info_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pkcs8_priv_key_info_st > ( ) ) ) . broken as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pkcs8_priv_key_info_st ) , "::" , stringify ! ( broken ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pkcs8_priv_key_info_st > ( ) ) ) . version as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( pkcs8_priv_key_info_st ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pkcs8_priv_key_info_st > ( ) ) ) . pkeyalg as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( pkcs8_priv_key_info_st ) , "::" , stringify ! ( pkeyalg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pkcs8_priv_key_info_st > ( ) ) ) . pkey as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( pkcs8_priv_key_info_st ) , "::" , stringify ! ( pkey ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pkcs8_priv_key_info_st > ( ) ) ) . attributes as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( pkcs8_priv_key_info_st ) , "::" , stringify ! ( attributes ) ) ) ; } extern "C" { pub fn ASN1_digest ( i2d : i2d_of_void , type_ : * const EVP_MD , data : * mut :: std :: os :: raw :: c_char , md : * mut :: std :: os :: raw :: c_uchar , len : * mut :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_digest ( it : * const ASN1_ITEM , type_ : * const EVP_MD , data : * mut :: std :: os :: raw :: c_void , md : * mut :: std :: os :: raw :: c_uchar , len : * mut :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_verify ( it : * const ASN1_ITEM , algor1 : * mut X509_ALGOR , signature : * mut ASN1_BIT_STRING , data : * mut :: std :: os :: raw :: c_void , pkey : * mut EVP_PKEY ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_sign ( it : * const ASN1_ITEM , algor1 : * mut X509_ALGOR , algor2 : * mut X509_ALGOR , signature : * mut ASN1_BIT_STRING , data : * mut :: std :: os :: raw :: c_void , pkey : * mut EVP_PKEY , type_ : * const EVP_MD ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ASN1_item_sign_ctx ( it : * const ASN1_ITEM , algor1 : * mut X509_ALGOR , algor2 : * mut X509_ALGOR , signature : * mut ASN1_BIT_STRING , asn : * mut :: std :: os :: raw :: c_void , ctx : * mut EVP_MD_CTX ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn EVP_PKCS82PKEY ( p8 : * mut PKCS8_PRIV_KEY_INFO ) -> * mut EVP_PKEY ; } extern "C" { pub fn EVP_PKEY2PKCS8 ( pkey : * mut EVP_PKEY ) -> * mut PKCS8_PRIV_KEY_INFO ; } extern "C" { pub fn EVP_PKEY2PKCS8_broken ( pkey : * mut EVP_PKEY , broken : :: std :: os :: raw :: c_int ) -> * mut PKCS8_PRIV_KEY_INFO ; } pub type poly1305_state = [ u8 ; 512usize ] ; extern "C" { pub fn CRYPTO_poly1305_init ( state : * mut poly1305_state , key : * const u8 ) ; } extern "C" { pub fn CRYPTO_poly1305_update ( state : * mut poly1305_state , in_ : * const u8 , in_len : usize ) ; } extern "C" { pub fn CRYPTO_poly1305_finish ( state : * mut poly1305_state , mac : * mut u8 ) ; } extern "C" { pub fn RAND_bytes ( buf : * mut u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn RAND_cleanup ( ) ; } extern "C" { pub fn RAND_set_urandom_fd ( fd : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn RAND_enable_fork_unsafe_buffering ( fd : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn RAND_pseudo_bytes ( buf : * mut u8 , len : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn RAND_seed ( buf : * const :: std :: os :: raw :: c_void , num : :: std :: os :: raw :: c_int ) ; } extern "C" { pub fn RAND_load_file ( path : * const :: std :: os :: raw :: c_char , num : :: std :: os :: raw :: c_long ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn RAND_file_name ( buf : * mut :: std :: os :: raw :: c_char , num : usize ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn RAND_add ( buf : * const :: std :: os :: raw :: c_void , num : :: std :: os :: raw :: c_int , entropy : f64 ) ; } extern "C" { pub fn RAND_egd ( arg1 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn RAND_poll ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn RAND_status ( ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct rand_meth_st { pub seed : :: std :: option :: Option < unsafe extern "C" fn ( buf : * const :: std :: os :: raw :: c_void , num : :: std :: os :: raw :: c_int ) > , pub bytes : :: std :: option :: Option < unsafe extern "C" fn ( buf : * mut u8 , num : usize ) -> :: std :: os :: raw :: c_int > , pub cleanup : :: std :: option :: Option < unsafe extern "C" fn ( ) > , pub add : :: std :: option :: Option < unsafe extern "C" fn ( buf : * const :: std :: os :: raw :: c_void , num : :: std :: os :: raw :: c_int , entropy : f64 ) > , pub pseudorand : :: std :: option :: Option < unsafe extern "C" fn ( buf : * mut u8 , num : usize ) -> :: std :: os :: raw :: c_int > , pub status : :: std :: option :: Option < unsafe extern "C" fn ( ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_rand_meth_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < rand_meth_st > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( rand_meth_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < rand_meth_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( rand_meth_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rand_meth_st > ( ) ) ) . seed as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( rand_meth_st ) , "::" , stringify ! ( seed ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rand_meth_st > ( ) ) ) . bytes as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( rand_meth_st ) , "::" , stringify ! ( bytes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rand_meth_st > ( ) ) ) . cleanup as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( rand_meth_st ) , "::" , stringify ! ( cleanup ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rand_meth_st > ( ) ) ) . add as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( rand_meth_st ) , "::" , stringify ! ( add ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rand_meth_st > ( ) ) ) . pseudorand as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( rand_meth_st ) , "::" , stringify ! ( pseudorand ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < rand_meth_st > ( ) ) ) . status as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( rand_meth_st ) , "::" , stringify ! ( status ) ) ) ; } extern "C" { pub fn RAND_SSLeay ( ) -> * mut RAND_METHOD ; } extern "C" { pub fn RAND_get_rand_method ( ) -> * const RAND_METHOD ; } extern "C" { pub fn RAND_set_rand_method ( arg1 : * const RAND_METHOD ) ; } extern "C" { pub fn ERR_load_SSL_strings ( ) ; } extern "C" { pub fn BIO_f_ssl ( ) -> * const BIO_METHOD ; } extern "C" { pub fn BIO_set_ssl ( bio : * mut BIO , ssl : * mut SSL , take_owership : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_long ; } extern "C" { pub fn OPENSSL_init_ssl ( opts : u64 , settings : * const OPENSSL_INIT_SETTINGS ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct X509V3_CONF_METHOD_st { pub get_string : :: std :: option :: Option < unsafe extern "C" fn ( db : * mut :: std :: os :: raw :: c_void , section : * mut :: std :: os :: raw :: c_char , value : * mut :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_char > , pub get_section : :: std :: option :: Option < unsafe extern "C" fn ( db : * mut :: std :: os :: raw :: c_void , section : * mut :: std :: os :: raw :: c_char ) -> * mut stack_st_CONF_VALUE > , pub free_string : :: std :: option :: Option < unsafe extern "C" fn ( db : * mut :: std :: os :: raw :: c_void , string : * mut :: std :: os :: raw :: c_char ) > , pub free_section : :: std :: option :: Option < unsafe extern "C" fn ( db : * mut :: std :: os :: raw :: c_void , section : * mut stack_st_CONF_VALUE ) > , } # [ test ] fn bindgen_test_layout_X509V3_CONF_METHOD_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < X509V3_CONF_METHOD_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( X509V3_CONF_METHOD_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < X509V3_CONF_METHOD_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( X509V3_CONF_METHOD_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509V3_CONF_METHOD_st > ( ) ) ) . get_string as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( X509V3_CONF_METHOD_st ) , "::" , stringify ! ( get_string ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509V3_CONF_METHOD_st > ( ) ) ) . get_section as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( X509V3_CONF_METHOD_st ) , "::" , stringify ! ( get_section ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509V3_CONF_METHOD_st > ( ) ) ) . free_string as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( X509V3_CONF_METHOD_st ) , "::" , stringify ! ( free_string ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < X509V3_CONF_METHOD_st > ( ) ) ) . free_section as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( X509V3_CONF_METHOD_st ) , "::" , stringify ! ( free_section ) ) ) ; } pub type X509V3_CONF_METHOD = X509V3_CONF_METHOD_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct v3_ext_ctx { pub flags : :: std :: os :: raw :: c_int , pub issuer_cert : * mut X509 , pub subject_cert : * mut X509 , pub subject_req : * mut X509_REQ , pub crl : * mut X509_CRL , pub db_meth : * const X509V3_CONF_METHOD , pub db : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_v3_ext_ctx ( ) { assert_eq ! ( :: std :: mem :: size_of :: < v3_ext_ctx > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( v3_ext_ctx ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < v3_ext_ctx > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( v3_ext_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < v3_ext_ctx > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( v3_ext_ctx ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < v3_ext_ctx > ( ) ) ) . issuer_cert as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( v3_ext_ctx ) , "::" , stringify ! ( issuer_cert ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < v3_ext_ctx > ( ) ) ) . subject_cert as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( v3_ext_ctx ) , "::" , stringify ! ( subject_cert ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < v3_ext_ctx > ( ) ) ) . subject_req as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( v3_ext_ctx ) , "::" , stringify ! ( subject_req ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < v3_ext_ctx > ( ) ) ) . crl as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( v3_ext_ctx ) , "::" , stringify ! ( crl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < v3_ext_ctx > ( ) ) ) . db_meth as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( v3_ext_ctx ) , "::" , stringify ! ( db_meth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < v3_ext_ctx > ( ) ) ) . db as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( v3_ext_ctx ) , "::" , stringify ! ( db ) ) ) ; } pub type GENERAL_NAMES = stack_st_GENERAL_NAME ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct DIST_POINT_NAME_st { pub type_ : :: std :: os :: raw :: c_int , pub name : DIST_POINT_NAME_st__bindgen_ty_1 , pub dpname : * mut X509_NAME , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union DIST_POINT_NAME_st__bindgen_ty_1 { pub fullname : * mut GENERAL_NAMES , pub relativename : * mut stack_st_X509_NAME_ENTRY , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout_DIST_POINT_NAME_st__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DIST_POINT_NAME_st__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( DIST_POINT_NAME_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DIST_POINT_NAME_st__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DIST_POINT_NAME_st__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DIST_POINT_NAME_st__bindgen_ty_1 > ( ) ) ) . fullname as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( DIST_POINT_NAME_st__bindgen_ty_1 ) , "::" , stringify ! ( fullname ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DIST_POINT_NAME_st__bindgen_ty_1 > ( ) ) ) . relativename as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( DIST_POINT_NAME_st__bindgen_ty_1 ) , "::" , stringify ! ( relativename ) ) ) ; } # [ test ] fn bindgen_test_layout_DIST_POINT_NAME_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DIST_POINT_NAME_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( DIST_POINT_NAME_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DIST_POINT_NAME_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DIST_POINT_NAME_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DIST_POINT_NAME_st > ( ) ) ) . type_ as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( DIST_POINT_NAME_st ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DIST_POINT_NAME_st > ( ) ) ) . name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( DIST_POINT_NAME_st ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < DIST_POINT_NAME_st > ( ) ) ) . dpname as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( DIST_POINT_NAME_st ) , "::" , stringify ! ( dpname ) ) ) ; } pub type DIST_POINT_NAME = DIST_POINT_NAME_st ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AUTHORITY_KEYID_st { pub keyid : * mut ASN1_OCTET_STRING , pub issuer : * mut GENERAL_NAMES , pub serial : * mut ASN1_INTEGER , } # [ test ] fn bindgen_test_layout_AUTHORITY_KEYID_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AUTHORITY_KEYID_st > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( AUTHORITY_KEYID_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AUTHORITY_KEYID_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AUTHORITY_KEYID_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AUTHORITY_KEYID_st > ( ) ) ) . keyid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AUTHORITY_KEYID_st ) , "::" , stringify ! ( keyid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AUTHORITY_KEYID_st > ( ) ) ) . issuer as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AUTHORITY_KEYID_st ) , "::" , stringify ! ( issuer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AUTHORITY_KEYID_st > ( ) ) ) . serial as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AUTHORITY_KEYID_st ) , "::" , stringify ! ( serial ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct stack_st_GENERAL_SUBTREE { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct NAME_CONSTRAINTS_st { pub permittedSubtrees : * mut stack_st_GENERAL_SUBTREE , pub excludedSubtrees : * mut stack_st_GENERAL_SUBTREE , } # [ test ] fn bindgen_test_layout_NAME_CONSTRAINTS_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < NAME_CONSTRAINTS_st > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( NAME_CONSTRAINTS_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < NAME_CONSTRAINTS_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( NAME_CONSTRAINTS_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < NAME_CONSTRAINTS_st > ( ) ) ) . permittedSubtrees as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( NAME_CONSTRAINTS_st ) , "::" , stringify ! ( permittedSubtrees ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < NAME_CONSTRAINTS_st > ( ) ) ) . excludedSubtrees as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( NAME_CONSTRAINTS_st ) , "::" , stringify ! ( excludedSubtrees ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ISSUING_DIST_POINT_st { pub distpoint : * mut DIST_POINT_NAME , pub onlyuser : :: std :: os :: raw :: c_int , pub onlyCA : :: std :: os :: raw :: c_int , pub onlysomereasons : * mut ASN1_BIT_STRING , pub indirectCRL : :: std :: os :: raw :: c_int , pub onlyattr : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_ISSUING_DIST_POINT_st ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ISSUING_DIST_POINT_st > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ISSUING_DIST_POINT_st ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ISSUING_DIST_POINT_st > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ISSUING_DIST_POINT_st ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISSUING_DIST_POINT_st > ( ) ) ) . distpoint as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ISSUING_DIST_POINT_st ) , "::" , stringify ! ( distpoint ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISSUING_DIST_POINT_st > ( ) ) ) . onlyuser as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ISSUING_DIST_POINT_st ) , "::" , stringify ! ( onlyuser ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISSUING_DIST_POINT_st > ( ) ) ) . onlyCA as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ISSUING_DIST_POINT_st ) , "::" , stringify ! ( onlyCA ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISSUING_DIST_POINT_st > ( ) ) ) . onlysomereasons as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ISSUING_DIST_POINT_st ) , "::" , stringify ! ( onlysomereasons ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISSUING_DIST_POINT_st > ( ) ) ) . indirectCRL as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ISSUING_DIST_POINT_st ) , "::" , stringify ! ( indirectCRL ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ISSUING_DIST_POINT_st > ( ) ) ) . onlyattr as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( ISSUING_DIST_POINT_st ) , "::" , stringify ! ( onlyattr ) ) ) ; } pub type __builtin_va_list = [ __va_list_tag ; 1usize ] ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __va_list_tag { pub gp_offset : :: std :: os :: raw :: c_uint , pub fp_offset : :: std :: os :: raw :: c_uint , pub overflow_arg_area : * mut :: std :: os :: raw :: c_void , pub reg_save_area : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout___va_list_tag ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __va_list_tag > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( __va_list_tag ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __va_list_tag > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __va_list_tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . gp_offset as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( gp_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . fp_offset as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( fp_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . overflow_arg_area as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( overflow_arg_area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . reg_save_area as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( reg_save_area ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct CRYPTO_dynlock_value { pub _address : u8 , }
\ No newline at end of file
+pub const OPENSSL_VERSION_NUMBER: u32 = 269484159;
+pub const SSLEAY_VERSION_NUMBER: u32 = 269484159;
+pub const EVP_AEAD_MAX_KEY_LENGTH: u32 = 80;
+pub const EVP_AEAD_MAX_NONCE_LENGTH: u32 = 24;
+pub const EVP_AEAD_MAX_OVERHEAD: u32 = 64;
+pub const EVP_AEAD_DEFAULT_TAG_LENGTH: u32 = 0;
+pub const ERR_FLAG_STRING: u32 = 1;
+pub const ERR_R_FATAL: u32 = 64;
+pub const ERR_R_MALLOC_FAILURE: u32 = 65;
+pub const ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED: u32 = 66;
+pub const ERR_R_PASSED_NULL_PARAMETER: u32 = 67;
+pub const ERR_R_INTERNAL_ERROR: u32 = 68;
+pub const ERR_R_OVERFLOW: u32 = 69;
+pub const ERR_ERROR_STRING_BUF_LEN: u32 = 120;
+pub const ERR_TXT_STRING: u32 = 1;
+pub const ERR_NUM_ERRORS: u32 = 16;
+pub const CRYPTO_LOCK: u32 = 1;
+pub const CRYPTO_UNLOCK: u32 = 2;
+pub const CRYPTO_READ: u32 = 4;
+pub const CRYPTO_WRITE: u32 = 8;
+pub const BIO_RR_CONNECT: u32 = 2;
+pub const BIO_RR_ACCEPT: u32 = 3;
+pub const BIO_CB_FREE: u32 = 1;
+pub const BIO_CB_READ: u32 = 2;
+pub const BIO_CB_WRITE: u32 = 3;
+pub const BIO_CB_PUTS: u32 = 4;
+pub const BIO_CB_GETS: u32 = 5;
+pub const BIO_CB_CTRL: u32 = 6;
+pub const BIO_CB_RETURN: u32 = 128;
+pub const BIO_NOCLOSE: u32 = 0;
+pub const BIO_CLOSE: u32 = 1;
+pub const BIO_CTRL_DGRAM_QUERY_MTU: u32 = 40;
+pub const BIO_CTRL_DGRAM_SET_MTU: u32 = 42;
+pub const BIO_CTRL_DGRAM_MTU_EXCEEDED: u32 = 43;
+pub const BIO_CTRL_DGRAM_GET_PEER: u32 = 46;
+pub const BIO_CTRL_DGRAM_GET_FALLBACK_MTU: u32 = 47;
+pub const BIO_CTRL_RESET: u32 = 1;
+pub const BIO_CTRL_EOF: u32 = 2;
+pub const BIO_CTRL_INFO: u32 = 3;
+pub const BIO_CTRL_GET_CLOSE: u32 = 8;
+pub const BIO_CTRL_SET_CLOSE: u32 = 9;
+pub const BIO_CTRL_PENDING: u32 = 10;
+pub const BIO_CTRL_FLUSH: u32 = 11;
+pub const BIO_CTRL_WPENDING: u32 = 13;
+pub const BIO_CTRL_SET_CALLBACK: u32 = 14;
+pub const BIO_CTRL_GET_CALLBACK: u32 = 15;
+pub const BIO_CTRL_SET: u32 = 4;
+pub const BIO_CTRL_GET: u32 = 5;
+pub const BIO_CTRL_PUSH: u32 = 6;
+pub const BIO_CTRL_POP: u32 = 7;
+pub const BIO_CTRL_DUP: u32 = 12;
+pub const BIO_CTRL_SET_FILENAME: u32 = 30;
+pub const BIO_FLAGS_READ: u32 = 1;
+pub const BIO_FLAGS_WRITE: u32 = 2;
+pub const BIO_FLAGS_IO_SPECIAL: u32 = 4;
+pub const BIO_FLAGS_RWS: u32 = 7;
+pub const BIO_FLAGS_SHOULD_RETRY: u32 = 8;
+pub const BIO_FLAGS_BASE64_NO_NL: u32 = 256;
+pub const BIO_FLAGS_MEM_RDONLY: u32 = 512;
+pub const BIO_TYPE_NONE: u32 = 0;
+pub const BIO_TYPE_MEM: u32 = 1025;
+pub const BIO_TYPE_FILE: u32 = 1026;
+pub const BIO_TYPE_FD: u32 = 1284;
+pub const BIO_TYPE_SOCKET: u32 = 1285;
+pub const BIO_TYPE_NULL: u32 = 1030;
+pub const BIO_TYPE_SSL: u32 = 519;
+pub const BIO_TYPE_MD: u32 = 520;
+pub const BIO_TYPE_BUFFER: u32 = 521;
+pub const BIO_TYPE_CIPHER: u32 = 522;
+pub const BIO_TYPE_BASE64: u32 = 523;
+pub const BIO_TYPE_CONNECT: u32 = 1292;
+pub const BIO_TYPE_ACCEPT: u32 = 1293;
+pub const BIO_TYPE_PROXY_CLIENT: u32 = 526;
+pub const BIO_TYPE_PROXY_SERVER: u32 = 527;
+pub const BIO_TYPE_NBIO_TEST: u32 = 528;
+pub const BIO_TYPE_NULL_FILTER: u32 = 529;
+pub const BIO_TYPE_BER: u32 = 530;
+pub const BIO_TYPE_BIO: u32 = 1043;
+pub const BIO_TYPE_LINEBUFFER: u32 = 532;
+pub const BIO_TYPE_DGRAM: u32 = 1301;
+pub const BIO_TYPE_ASN1: u32 = 534;
+pub const BIO_TYPE_COMP: u32 = 535;
+pub const BIO_TYPE_DESCRIPTOR: u32 = 256;
+pub const BIO_TYPE_FILTER: u32 = 512;
+pub const BIO_TYPE_SOURCE_SINK: u32 = 1024;
+pub const BIO_TYPE_START: u32 = 128;
+pub const BIO_C_SET_CONNECT: u32 = 100;
+pub const BIO_C_DO_STATE_MACHINE: u32 = 101;
+pub const BIO_C_SET_NBIO: u32 = 102;
+pub const BIO_C_SET_PROXY_PARAM: u32 = 103;
+pub const BIO_C_SET_FD: u32 = 104;
+pub const BIO_C_GET_FD: u32 = 105;
+pub const BIO_C_SET_FILE_PTR: u32 = 106;
+pub const BIO_C_GET_FILE_PTR: u32 = 107;
+pub const BIO_C_SET_FILENAME: u32 = 108;
+pub const BIO_C_SET_SSL: u32 = 109;
+pub const BIO_C_GET_SSL: u32 = 110;
+pub const BIO_C_SET_MD: u32 = 111;
+pub const BIO_C_GET_MD: u32 = 112;
+pub const BIO_C_GET_CIPHER_STATUS: u32 = 113;
+pub const BIO_C_SET_BUF_MEM: u32 = 114;
+pub const BIO_C_GET_BUF_MEM_PTR: u32 = 115;
+pub const BIO_C_GET_BUFF_NUM_LINES: u32 = 116;
+pub const BIO_C_SET_BUFF_SIZE: u32 = 117;
+pub const BIO_C_SET_ACCEPT: u32 = 118;
+pub const BIO_C_SSL_MODE: u32 = 119;
+pub const BIO_C_GET_MD_CTX: u32 = 120;
+pub const BIO_C_GET_PROXY_PARAM: u32 = 121;
+pub const BIO_C_SET_BUFF_READ_DATA: u32 = 122;
+pub const BIO_C_GET_ACCEPT: u32 = 124;
+pub const BIO_C_SET_SSL_RENEGOTIATE_BYTES: u32 = 125;
+pub const BIO_C_GET_SSL_NUM_RENEGOTIATES: u32 = 126;
+pub const BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT: u32 = 127;
+pub const BIO_C_FILE_SEEK: u32 = 128;
+pub const BIO_C_GET_CIPHER_CTX: u32 = 129;
+pub const BIO_C_SET_BUF_MEM_EOF_RETURN: u32 = 130;
+pub const BIO_C_SET_BIND_MODE: u32 = 131;
+pub const BIO_C_GET_BIND_MODE: u32 = 132;
+pub const BIO_C_FILE_TELL: u32 = 133;
+pub const BIO_C_GET_SOCKS: u32 = 134;
+pub const BIO_C_SET_SOCKS: u32 = 135;
+pub const BIO_C_SET_WRITE_BUF_SIZE: u32 = 136;
+pub const BIO_C_GET_WRITE_BUF_SIZE: u32 = 137;
+pub const BIO_C_GET_WRITE_GUARANTEE: u32 = 140;
+pub const BIO_C_GET_READ_REQUEST: u32 = 141;
+pub const BIO_C_SHUTDOWN_WR: u32 = 142;
+pub const BIO_C_NREAD0: u32 = 143;
+pub const BIO_C_NREAD: u32 = 144;
+pub const BIO_C_NWRITE0: u32 = 145;
+pub const BIO_C_NWRITE: u32 = 146;
+pub const BIO_C_RESET_READ_REQUEST: u32 = 147;
+pub const BIO_C_SET_MD_CTX: u32 = 148;
+pub const BIO_C_SET_PREFIX: u32 = 149;
+pub const BIO_C_GET_PREFIX: u32 = 150;
+pub const BIO_C_SET_SUFFIX: u32 = 151;
+pub const BIO_C_GET_SUFFIX: u32 = 152;
+pub const BIO_C_SET_EX_ARG: u32 = 153;
+pub const BIO_C_GET_EX_ARG: u32 = 154;
+pub const BIO_R_BAD_FOPEN_MODE: u32 = 100;
+pub const BIO_R_BROKEN_PIPE: u32 = 101;
+pub const BIO_R_CONNECT_ERROR: u32 = 102;
+pub const BIO_R_ERROR_SETTING_NBIO: u32 = 103;
+pub const BIO_R_INVALID_ARGUMENT: u32 = 104;
+pub const BIO_R_IN_USE: u32 = 105;
+pub const BIO_R_KEEPALIVE: u32 = 106;
+pub const BIO_R_NBIO_CONNECT_ERROR: u32 = 107;
+pub const BIO_R_NO_HOSTNAME_SPECIFIED: u32 = 108;
+pub const BIO_R_NO_PORT_SPECIFIED: u32 = 109;
+pub const BIO_R_NO_SUCH_FILE: u32 = 110;
+pub const BIO_R_NULL_PARAMETER: u32 = 111;
+pub const BIO_R_SYS_LIB: u32 = 112;
+pub const BIO_R_UNABLE_TO_CREATE_SOCKET: u32 = 113;
+pub const BIO_R_UNINITIALIZED: u32 = 114;
+pub const BIO_R_UNSUPPORTED_METHOD: u32 = 115;
+pub const BIO_R_WRITE_TO_READ_ONLY_BIO: u32 = 116;
+pub const BN_BITS2: u32 = 64;
+pub const BN_DEC_FMT1: &'static [u8; 4usize] = b"%lu\0";
+pub const BN_DEC_FMT2: &'static [u8; 7usize] = b"%019lu\0";
+pub const BN_HEX_FMT1: &'static [u8; 4usize] = b"%lx\0";
+pub const BN_HEX_FMT2: &'static [u8; 7usize] = b"%016lx\0";
+pub const BN_RAND_TOP_ANY: i32 = -1;
+pub const BN_RAND_TOP_ONE: u32 = 0;
+pub const BN_RAND_TOP_TWO: u32 = 1;
+pub const BN_RAND_BOTTOM_ANY: u32 = 0;
+pub const BN_RAND_BOTTOM_ODD: u32 = 1;
+pub const BN_GENCB_GENERATED: u32 = 0;
+pub const BN_GENCB_PRIME_TEST: u32 = 1;
+pub const BN_prime_checks: u32 = 0;
+pub const BN_FLG_MALLOCED: u32 = 1;
+pub const BN_FLG_STATIC_DATA: u32 = 2;
+pub const BN_R_ARG2_LT_ARG3: u32 = 100;
+pub const BN_R_BAD_RECIPROCAL: u32 = 101;
+pub const BN_R_BIGNUM_TOO_LONG: u32 = 102;
+pub const BN_R_BITS_TOO_SMALL: u32 = 103;
+pub const BN_R_CALLED_WITH_EVEN_MODULUS: u32 = 104;
+pub const BN_R_DIV_BY_ZERO: u32 = 105;
+pub const BN_R_EXPAND_ON_STATIC_BIGNUM_DATA: u32 = 106;
+pub const BN_R_INPUT_NOT_REDUCED: u32 = 107;
+pub const BN_R_INVALID_RANGE: u32 = 108;
+pub const BN_R_NEGATIVE_NUMBER: u32 = 109;
+pub const BN_R_NOT_A_SQUARE: u32 = 110;
+pub const BN_R_NOT_INITIALIZED: u32 = 111;
+pub const BN_R_NO_INVERSE: u32 = 112;
+pub const BN_R_PRIVATE_KEY_TOO_LARGE: u32 = 113;
+pub const BN_R_P_IS_NOT_PRIME: u32 = 114;
+pub const BN_R_TOO_MANY_ITERATIONS: u32 = 115;
+pub const BN_R_TOO_MANY_TEMPORARY_VARIABLES: u32 = 116;
+pub const BN_R_BAD_ENCODING: u32 = 117;
+pub const BN_R_ENCODE_ERROR: u32 = 118;
+pub const BN_R_INVALID_INPUT: u32 = 119;
+pub const V_ASN1_UNIVERSAL: u32 = 0;
+pub const V_ASN1_APPLICATION: u32 = 64;
+pub const V_ASN1_CONTEXT_SPECIFIC: u32 = 128;
+pub const V_ASN1_PRIVATE: u32 = 192;
+pub const V_ASN1_CONSTRUCTED: u32 = 32;
+pub const V_ASN1_PRIMITIVE_TAG: u32 = 31;
+pub const V_ASN1_APP_CHOOSE: i32 = -2;
+pub const V_ASN1_OTHER: i32 = -3;
+pub const V_ASN1_ANY: i32 = -4;
+pub const V_ASN1_NEG: u32 = 256;
+pub const V_ASN1_MAX_UNIVERSAL: u32 = 255;
+pub const V_ASN1_UNDEF: i32 = -1;
+pub const V_ASN1_EOC: u32 = 0;
+pub const V_ASN1_BOOLEAN: u32 = 1;
+pub const V_ASN1_INTEGER: u32 = 2;
+pub const V_ASN1_NEG_INTEGER: u32 = 258;
+pub const V_ASN1_BIT_STRING: u32 = 3;
+pub const V_ASN1_OCTET_STRING: u32 = 4;
+pub const V_ASN1_NULL: u32 = 5;
+pub const V_ASN1_OBJECT: u32 = 6;
+pub const V_ASN1_OBJECT_DESCRIPTOR: u32 = 7;
+pub const V_ASN1_EXTERNAL: u32 = 8;
+pub const V_ASN1_REAL: u32 = 9;
+pub const V_ASN1_ENUMERATED: u32 = 10;
+pub const V_ASN1_NEG_ENUMERATED: u32 = 266;
+pub const V_ASN1_UTF8STRING: u32 = 12;
+pub const V_ASN1_SEQUENCE: u32 = 16;
+pub const V_ASN1_SET: u32 = 17;
+pub const V_ASN1_NUMERICSTRING: u32 = 18;
+pub const V_ASN1_PRINTABLESTRING: u32 = 19;
+pub const V_ASN1_T61STRING: u32 = 20;
+pub const V_ASN1_TELETEXSTRING: u32 = 20;
+pub const V_ASN1_VIDEOTEXSTRING: u32 = 21;
+pub const V_ASN1_IA5STRING: u32 = 22;
+pub const V_ASN1_UTCTIME: u32 = 23;
+pub const V_ASN1_GENERALIZEDTIME: u32 = 24;
+pub const V_ASN1_GRAPHICSTRING: u32 = 25;
+pub const V_ASN1_ISO64STRING: u32 = 26;
+pub const V_ASN1_VISIBLESTRING: u32 = 26;
+pub const V_ASN1_GENERALSTRING: u32 = 27;
+pub const V_ASN1_UNIVERSALSTRING: u32 = 28;
+pub const V_ASN1_BMPSTRING: u32 = 30;
+pub const B_ASN1_NUMERICSTRING: u32 = 1;
+pub const B_ASN1_PRINTABLESTRING: u32 = 2;
+pub const B_ASN1_T61STRING: u32 = 4;
+pub const B_ASN1_TELETEXSTRING: u32 = 4;
+pub const B_ASN1_VIDEOTEXSTRING: u32 = 8;
+pub const B_ASN1_IA5STRING: u32 = 16;
+pub const B_ASN1_GRAPHICSTRING: u32 = 32;
+pub const B_ASN1_ISO64STRING: u32 = 64;
+pub const B_ASN1_VISIBLESTRING: u32 = 64;
+pub const B_ASN1_GENERALSTRING: u32 = 128;
+pub const B_ASN1_UNIVERSALSTRING: u32 = 256;
+pub const B_ASN1_OCTET_STRING: u32 = 512;
+pub const B_ASN1_BIT_STRING: u32 = 1024;
+pub const B_ASN1_BMPSTRING: u32 = 2048;
+pub const B_ASN1_UNKNOWN: u32 = 4096;
+pub const B_ASN1_UTF8STRING: u32 = 8192;
+pub const B_ASN1_UTCTIME: u32 = 16384;
+pub const B_ASN1_GENERALIZEDTIME: u32 = 32768;
+pub const B_ASN1_SEQUENCE: u32 = 65536;
+pub const ASN1_OBJECT_FLAG_DYNAMIC: u32 = 1;
+pub const ASN1_OBJECT_FLAG_DYNAMIC_STRINGS: u32 = 4;
+pub const ASN1_OBJECT_FLAG_DYNAMIC_DATA: u32 = 8;
+pub const ASN1_STRING_FLAG_BITS_LEFT: u32 = 8;
+pub const ASN1_STRING_FLAG_NDEF: u32 = 16;
+pub const ASN1_STRING_FLAG_MSTRING: u32 = 64;
+pub const ASN1_STRFLGS_ESC_2253: u32 = 1;
+pub const ASN1_STRFLGS_ESC_CTRL: u32 = 2;
+pub const ASN1_STRFLGS_ESC_MSB: u32 = 4;
+pub const ASN1_STRFLGS_ESC_QUOTE: u32 = 8;
+pub const ASN1_STRFLGS_UTF8_CONVERT: u32 = 16;
+pub const ASN1_STRFLGS_IGNORE_TYPE: u32 = 32;
+pub const ASN1_STRFLGS_SHOW_TYPE: u32 = 64;
+pub const ASN1_STRFLGS_DUMP_ALL: u32 = 128;
+pub const ASN1_STRFLGS_DUMP_UNKNOWN: u32 = 256;
+pub const ASN1_STRFLGS_DUMP_DER: u32 = 512;
+pub const ASN1_STRFLGS_RFC2253: u32 = 791;
+pub const B_ASN1_TIME: u32 = 49152;
+pub const B_ASN1_PRINTABLE: u32 = 81175;
+pub const B_ASN1_DIRECTORYSTRING: u32 = 10502;
+pub const B_ASN1_DISPLAYTEXT: u32 = 10320;
+pub const ASN1_R_ASN1_LENGTH_MISMATCH: u32 = 100;
+pub const ASN1_R_AUX_ERROR: u32 = 101;
+pub const ASN1_R_BAD_GET_ASN1_OBJECT_CALL: u32 = 102;
+pub const ASN1_R_BAD_OBJECT_HEADER: u32 = 103;
+pub const ASN1_R_BMPSTRING_IS_WRONG_LENGTH: u32 = 104;
+pub const ASN1_R_BN_LIB: u32 = 105;
+pub const ASN1_R_BOOLEAN_IS_WRONG_LENGTH: u32 = 106;
+pub const ASN1_R_BUFFER_TOO_SMALL: u32 = 107;
+pub const ASN1_R_CONTEXT_NOT_INITIALISED: u32 = 108;
+pub const ASN1_R_DECODE_ERROR: u32 = 109;
+pub const ASN1_R_DEPTH_EXCEEDED: u32 = 110;
+pub const ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED: u32 = 111;
+pub const ASN1_R_ENCODE_ERROR: u32 = 112;
+pub const ASN1_R_ERROR_GETTING_TIME: u32 = 113;
+pub const ASN1_R_EXPECTING_AN_ASN1_SEQUENCE: u32 = 114;
+pub const ASN1_R_EXPECTING_AN_INTEGER: u32 = 115;
+pub const ASN1_R_EXPECTING_AN_OBJECT: u32 = 116;
+pub const ASN1_R_EXPECTING_A_BOOLEAN: u32 = 117;
+pub const ASN1_R_EXPECTING_A_TIME: u32 = 118;
+pub const ASN1_R_EXPLICIT_LENGTH_MISMATCH: u32 = 119;
+pub const ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED: u32 = 120;
+pub const ASN1_R_FIELD_MISSING: u32 = 121;
+pub const ASN1_R_FIRST_NUM_TOO_LARGE: u32 = 122;
+pub const ASN1_R_HEADER_TOO_LONG: u32 = 123;
+pub const ASN1_R_ILLEGAL_BITSTRING_FORMAT: u32 = 124;
+pub const ASN1_R_ILLEGAL_BOOLEAN: u32 = 125;
+pub const ASN1_R_ILLEGAL_CHARACTERS: u32 = 126;
+pub const ASN1_R_ILLEGAL_FORMAT: u32 = 127;
+pub const ASN1_R_ILLEGAL_HEX: u32 = 128;
+pub const ASN1_R_ILLEGAL_IMPLICIT_TAG: u32 = 129;
+pub const ASN1_R_ILLEGAL_INTEGER: u32 = 130;
+pub const ASN1_R_ILLEGAL_NESTED_TAGGING: u32 = 131;
+pub const ASN1_R_ILLEGAL_NULL: u32 = 132;
+pub const ASN1_R_ILLEGAL_NULL_VALUE: u32 = 133;
+pub const ASN1_R_ILLEGAL_OBJECT: u32 = 134;
+pub const ASN1_R_ILLEGAL_OPTIONAL_ANY: u32 = 135;
+pub const ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE: u32 = 136;
+pub const ASN1_R_ILLEGAL_TAGGED_ANY: u32 = 137;
+pub const ASN1_R_ILLEGAL_TIME_VALUE: u32 = 138;
+pub const ASN1_R_INTEGER_NOT_ASCII_FORMAT: u32 = 139;
+pub const ASN1_R_INTEGER_TOO_LARGE_FOR_LONG: u32 = 140;
+pub const ASN1_R_INVALID_BIT_STRING_BITS_LEFT: u32 = 141;
+pub const ASN1_R_INVALID_BMPSTRING: u32 = 142;
+pub const ASN1_R_INVALID_DIGIT: u32 = 143;
+pub const ASN1_R_INVALID_MODIFIER: u32 = 144;
+pub const ASN1_R_INVALID_NUMBER: u32 = 145;
+pub const ASN1_R_INVALID_OBJECT_ENCODING: u32 = 146;
+pub const ASN1_R_INVALID_SEPARATOR: u32 = 147;
+pub const ASN1_R_INVALID_TIME_FORMAT: u32 = 148;
+pub const ASN1_R_INVALID_UNIVERSALSTRING: u32 = 149;
+pub const ASN1_R_INVALID_UTF8STRING: u32 = 150;
+pub const ASN1_R_LIST_ERROR: u32 = 151;
+pub const ASN1_R_MISSING_ASN1_EOS: u32 = 152;
+pub const ASN1_R_MISSING_EOC: u32 = 153;
+pub const ASN1_R_MISSING_SECOND_NUMBER: u32 = 154;
+pub const ASN1_R_MISSING_VALUE: u32 = 155;
+pub const ASN1_R_MSTRING_NOT_UNIVERSAL: u32 = 156;
+pub const ASN1_R_MSTRING_WRONG_TAG: u32 = 157;
+pub const ASN1_R_NESTED_ASN1_ERROR: u32 = 158;
+pub const ASN1_R_NESTED_ASN1_STRING: u32 = 159;
+pub const ASN1_R_NON_HEX_CHARACTERS: u32 = 160;
+pub const ASN1_R_NOT_ASCII_FORMAT: u32 = 161;
+pub const ASN1_R_NOT_ENOUGH_DATA: u32 = 162;
+pub const ASN1_R_NO_MATCHING_CHOICE_TYPE: u32 = 163;
+pub const ASN1_R_NULL_IS_WRONG_LENGTH: u32 = 164;
+pub const ASN1_R_OBJECT_NOT_ASCII_FORMAT: u32 = 165;
+pub const ASN1_R_ODD_NUMBER_OF_CHARS: u32 = 166;
+pub const ASN1_R_SECOND_NUMBER_TOO_LARGE: u32 = 167;
+pub const ASN1_R_SEQUENCE_LENGTH_MISMATCH: u32 = 168;
+pub const ASN1_R_SEQUENCE_NOT_CONSTRUCTED: u32 = 169;
+pub const ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG: u32 = 170;
+pub const ASN1_R_SHORT_LINE: u32 = 171;
+pub const ASN1_R_STREAMING_NOT_SUPPORTED: u32 = 172;
+pub const ASN1_R_STRING_TOO_LONG: u32 = 173;
+pub const ASN1_R_STRING_TOO_SHORT: u32 = 174;
+pub const ASN1_R_TAG_VALUE_TOO_HIGH: u32 = 175;
+pub const ASN1_R_TIME_NOT_ASCII_FORMAT: u32 = 176;
+pub const ASN1_R_TOO_LONG: u32 = 177;
+pub const ASN1_R_TYPE_NOT_CONSTRUCTED: u32 = 178;
+pub const ASN1_R_TYPE_NOT_PRIMITIVE: u32 = 179;
+pub const ASN1_R_UNEXPECTED_EOC: u32 = 180;
+pub const ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH: u32 = 181;
+pub const ASN1_R_UNKNOWN_FORMAT: u32 = 182;
+pub const ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM: u32 = 183;
+pub const ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM: u32 = 184;
+pub const ASN1_R_UNKNOWN_TAG: u32 = 185;
+pub const ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE: u32 = 186;
+pub const ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE: u32 = 187;
+pub const ASN1_R_UNSUPPORTED_TYPE: u32 = 188;
+pub const ASN1_R_WRONG_PUBLIC_KEY_TYPE: u32 = 189;
+pub const ASN1_R_WRONG_TAG: u32 = 190;
+pub const ASN1_R_WRONG_TYPE: u32 = 191;
+pub const ASN1_R_NESTED_TOO_DEEP: u32 = 192;
+pub const ASN1_TFLG_OPTIONAL: u32 = 1;
+pub const ASN1_TFLG_SET_OF: u32 = 2;
+pub const ASN1_TFLG_SEQUENCE_OF: u32 = 4;
+pub const ASN1_TFLG_SET_ORDER: u32 = 6;
+pub const ASN1_TFLG_SK_MASK: u32 = 6;
+pub const ASN1_TFLG_IMPTAG: u32 = 8;
+pub const ASN1_TFLG_EXPTAG: u32 = 16;
+pub const ASN1_TFLG_TAG_MASK: u32 = 24;
+pub const ASN1_TFLG_UNIVERSAL: u32 = 0;
+pub const ASN1_TFLG_APPLICATION: u32 = 64;
+pub const ASN1_TFLG_CONTEXT: u32 = 128;
+pub const ASN1_TFLG_PRIVATE: u32 = 192;
+pub const ASN1_TFLG_TAG_CLASS: u32 = 192;
+pub const ASN1_TFLG_ADB_MASK: u32 = 768;
+pub const ASN1_TFLG_ADB_OID: u32 = 256;
+pub const ASN1_TFLG_ADB_INT: u32 = 512;
+pub const ASN1_TFLG_COMBINE: u32 = 1024;
+pub const ASN1_TFLG_NDEF: u32 = 2048;
+pub const ASN1_ITYPE_PRIMITIVE: u32 = 0;
+pub const ASN1_ITYPE_SEQUENCE: u32 = 1;
+pub const ASN1_ITYPE_CHOICE: u32 = 2;
+pub const ASN1_ITYPE_COMPAT: u32 = 3;
+pub const ASN1_ITYPE_EXTERN: u32 = 4;
+pub const ASN1_ITYPE_MSTRING: u32 = 5;
+pub const ASN1_ITYPE_NDEF_SEQUENCE: u32 = 6;
+pub const ASN1_AFLG_REFCOUNT: u32 = 1;
+pub const ASN1_AFLG_ENCODING: u32 = 2;
+pub const ASN1_AFLG_BROKEN: u32 = 4;
+pub const ASN1_OP_NEW_PRE: u32 = 0;
+pub const ASN1_OP_NEW_POST: u32 = 1;
+pub const ASN1_OP_FREE_PRE: u32 = 2;
+pub const ASN1_OP_FREE_POST: u32 = 3;
+pub const ASN1_OP_D2I_PRE: u32 = 4;
+pub const ASN1_OP_D2I_POST: u32 = 5;
+pub const ASN1_OP_I2D_PRE: u32 = 6;
+pub const ASN1_OP_I2D_POST: u32 = 7;
+pub const ASN1_OP_PRINT_PRE: u32 = 8;
+pub const ASN1_OP_PRINT_POST: u32 = 9;
+pub const ASN1_OP_STREAM_PRE: u32 = 10;
+pub const ASN1_OP_STREAM_POST: u32 = 11;
+pub const ASN1_OP_DETACHED_PRE: u32 = 12;
+pub const ASN1_OP_DETACHED_POST: u32 = 13;
+pub const CBS_ASN1_BOOLEAN: u32 = 1;
+pub const CBS_ASN1_INTEGER: u32 = 2;
+pub const CBS_ASN1_BITSTRING: u32 = 3;
+pub const CBS_ASN1_OCTETSTRING: u32 = 4;
+pub const CBS_ASN1_NULL: u32 = 5;
+pub const CBS_ASN1_OBJECT: u32 = 6;
+pub const CBS_ASN1_ENUMERATED: u32 = 10;
+pub const CBS_ASN1_UTF8STRING: u32 = 12;
+pub const CBS_ASN1_NUMERICSTRING: u32 = 18;
+pub const CBS_ASN1_PRINTABLESTRING: u32 = 19;
+pub const CBS_ASN1_T61STRING: u32 = 20;
+pub const CBS_ASN1_VIDEOTEXSTRING: u32 = 21;
+pub const CBS_ASN1_IA5STRING: u32 = 22;
+pub const CBS_ASN1_UTCTIME: u32 = 23;
+pub const CBS_ASN1_GENERALIZEDTIME: u32 = 24;
+pub const CBS_ASN1_GRAPHICSTRING: u32 = 25;
+pub const CBS_ASN1_VISIBLESTRING: u32 = 26;
+pub const CBS_ASN1_GENERALSTRING: u32 = 27;
+pub const CBS_ASN1_UNIVERSALSTRING: u32 = 28;
+pub const CBS_ASN1_BMPSTRING: u32 = 30;
+pub const CBS_ASN1_TAG_SHIFT: u32 = 24;
+pub const CBS_ASN1_CONSTRUCTED: u32 = 536870912;
+pub const CBS_ASN1_UNIVERSAL: u32 = 0;
+pub const CBS_ASN1_APPLICATION: u32 = 1073741824;
+pub const CBS_ASN1_CONTEXT_SPECIFIC: u32 = 2147483648;
+pub const CBS_ASN1_PRIVATE: u32 = 3221225472;
+pub const CBS_ASN1_CLASS_MASK: u32 = 3221225472;
+pub const CBS_ASN1_TAG_NUMBER_MASK: u32 = 536870911;
+pub const CAST_ENCRYPT: u32 = 1;
+pub const CAST_DECRYPT: u32 = 0;
+pub const CAST_BLOCK: u32 = 8;
+pub const CAST_KEY_LENGTH: u32 = 16;
+pub const EVP_CIPH_STREAM_CIPHER: u32 = 0;
+pub const EVP_CIPH_ECB_MODE: u32 = 1;
+pub const EVP_CIPH_CBC_MODE: u32 = 2;
+pub const EVP_CIPH_CFB_MODE: u32 = 3;
+pub const EVP_CIPH_OFB_MODE: u32 = 4;
+pub const EVP_CIPH_CTR_MODE: u32 = 5;
+pub const EVP_CIPH_GCM_MODE: u32 = 6;
+pub const EVP_CIPH_XTS_MODE: u32 = 7;
+pub const EVP_CIPH_VARIABLE_LENGTH: u32 = 64;
+pub const EVP_CIPH_ALWAYS_CALL_INIT: u32 = 128;
+pub const EVP_CIPH_CUSTOM_IV: u32 = 256;
+pub const EVP_CIPH_CTRL_INIT: u32 = 512;
+pub const EVP_CIPH_FLAG_CUSTOM_CIPHER: u32 = 1024;
+pub const EVP_CIPH_FLAG_AEAD_CIPHER: u32 = 2048;
+pub const EVP_CIPH_CUSTOM_COPY: u32 = 4096;
+pub const EVP_CIPH_CCM_MODE: i32 = -1;
+pub const EVP_CIPH_OCB_MODE: i32 = -2;
+pub const EVP_CIPH_WRAP_MODE: i32 = -3;
+pub const EVP_CIPHER_CTX_FLAG_WRAP_ALLOW: u32 = 0;
+pub const EVP_CIPH_NO_PADDING: u32 = 2048;
+pub const EVP_CTRL_INIT: u32 = 0;
+pub const EVP_CTRL_SET_KEY_LENGTH: u32 = 1;
+pub const EVP_CTRL_GET_RC2_KEY_BITS: u32 = 2;
+pub const EVP_CTRL_SET_RC2_KEY_BITS: u32 = 3;
+pub const EVP_CTRL_GET_RC5_ROUNDS: u32 = 4;
+pub const EVP_CTRL_SET_RC5_ROUNDS: u32 = 5;
+pub const EVP_CTRL_RAND_KEY: u32 = 6;
+pub const EVP_CTRL_PBE_PRF_NID: u32 = 7;
+pub const EVP_CTRL_COPY: u32 = 8;
+pub const EVP_CTRL_AEAD_SET_IVLEN: u32 = 9;
+pub const EVP_CTRL_AEAD_GET_TAG: u32 = 16;
+pub const EVP_CTRL_AEAD_SET_TAG: u32 = 17;
+pub const EVP_CTRL_AEAD_SET_IV_FIXED: u32 = 18;
+pub const EVP_CTRL_GCM_IV_GEN: u32 = 19;
+pub const EVP_CTRL_AEAD_SET_MAC_KEY: u32 = 23;
+pub const EVP_CTRL_GCM_SET_IV_INV: u32 = 24;
+pub const EVP_GCM_TLS_FIXED_IV_LEN: u32 = 4;
+pub const EVP_GCM_TLS_EXPLICIT_IV_LEN: u32 = 8;
+pub const EVP_GCM_TLS_TAG_LEN: u32 = 16;
+pub const EVP_CTRL_GCM_SET_IVLEN: u32 = 9;
+pub const EVP_CTRL_GCM_GET_TAG: u32 = 16;
+pub const EVP_CTRL_GCM_SET_TAG: u32 = 17;
+pub const EVP_CTRL_GCM_SET_IV_FIXED: u32 = 18;
+pub const EVP_MAX_KEY_LENGTH: u32 = 64;
+pub const EVP_MAX_IV_LENGTH: u32 = 16;
+pub const EVP_MAX_BLOCK_LENGTH: u32 = 32;
+pub const CIPHER_R_AES_KEY_SETUP_FAILED: u32 = 100;
+pub const CIPHER_R_BAD_DECRYPT: u32 = 101;
+pub const CIPHER_R_BAD_KEY_LENGTH: u32 = 102;
+pub const CIPHER_R_BUFFER_TOO_SMALL: u32 = 103;
+pub const CIPHER_R_CTRL_NOT_IMPLEMENTED: u32 = 104;
+pub const CIPHER_R_CTRL_OPERATION_NOT_IMPLEMENTED: u32 = 105;
+pub const CIPHER_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH: u32 = 106;
+pub const CIPHER_R_INITIALIZATION_ERROR: u32 = 107;
+pub const CIPHER_R_INPUT_NOT_INITIALIZED: u32 = 108;
+pub const CIPHER_R_INVALID_AD_SIZE: u32 = 109;
+pub const CIPHER_R_INVALID_KEY_LENGTH: u32 = 110;
+pub const CIPHER_R_INVALID_NONCE_SIZE: u32 = 111;
+pub const CIPHER_R_INVALID_OPERATION: u32 = 112;
+pub const CIPHER_R_IV_TOO_LARGE: u32 = 113;
+pub const CIPHER_R_NO_CIPHER_SET: u32 = 114;
+pub const CIPHER_R_OUTPUT_ALIASES_INPUT: u32 = 115;
+pub const CIPHER_R_TAG_TOO_LARGE: u32 = 116;
+pub const CIPHER_R_TOO_LARGE: u32 = 117;
+pub const CIPHER_R_UNSUPPORTED_AD_SIZE: u32 = 118;
+pub const CIPHER_R_UNSUPPORTED_INPUT_SIZE: u32 = 119;
+pub const CIPHER_R_UNSUPPORTED_KEY_SIZE: u32 = 120;
+pub const CIPHER_R_UNSUPPORTED_NONCE_SIZE: u32 = 121;
+pub const CIPHER_R_UNSUPPORTED_TAG_SIZE: u32 = 122;
+pub const CIPHER_R_WRONG_FINAL_BLOCK_LENGTH: u32 = 123;
+pub const CIPHER_R_NO_DIRECTION_SET: u32 = 124;
+pub const CIPHER_R_INVALID_NONCE: u32 = 125;
+pub const RAND_MAX: u32 = 2147483647;
+pub const OPENSSL_VERSION_TEXT: &'static [u8; 38usize] = b"OpenSSL 1.1.0 (compatible; BoringSSL)\0";
+pub const OPENSSL_VERSION: u32 = 0;
+pub const OPENSSL_CFLAGS: u32 = 1;
+pub const OPENSSL_BUILT_ON: u32 = 2;
+pub const OPENSSL_PLATFORM: u32 = 3;
+pub const OPENSSL_DIR: u32 = 4;
+pub const SSLEAY_VERSION: u32 = 0;
+pub const SSLEAY_CFLAGS: u32 = 1;
+pub const SSLEAY_BUILT_ON: u32 = 2;
+pub const SSLEAY_PLATFORM: u32 = 3;
+pub const SSLEAY_DIR: u32 = 4;
+pub const OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS: u32 = 0;
+pub const OPENSSL_INIT_LOAD_CRYPTO_STRINGS: u32 = 0;
+pub const OPENSSL_INIT_ADD_ALL_CIPHERS: u32 = 0;
+pub const OPENSSL_INIT_ADD_ALL_DIGESTS: u32 = 0;
+pub const OPENSSL_INIT_NO_ADD_ALL_CIPHERS: u32 = 0;
+pub const OPENSSL_INIT_NO_ADD_ALL_DIGESTS: u32 = 0;
+pub const OPENSSL_INIT_LOAD_CONFIG: u32 = 0;
+pub const OPENSSL_INIT_NO_LOAD_CONFIG: u32 = 0;
+pub const X25519_PRIVATE_KEY_LEN: u32 = 32;
+pub const X25519_PUBLIC_VALUE_LEN: u32 = 32;
+pub const X25519_SHARED_KEY_LEN: u32 = 32;
+pub const ED25519_PRIVATE_KEY_LEN: u32 = 64;
+pub const ED25519_PUBLIC_KEY_LEN: u32 = 32;
+pub const ED25519_SIGNATURE_LEN: u32 = 64;
+pub const DES_ENCRYPT: u32 = 1;
+pub const DES_DECRYPT: u32 = 0;
+pub const DES_CBC_MODE: u32 = 0;
+pub const DES_PCBC_MODE: u32 = 1;
+pub const DH_GENERATOR_2: u32 = 2;
+pub const DH_GENERATOR_5: u32 = 5;
+pub const DH_CHECK_P_NOT_PRIME: u32 = 1;
+pub const DH_CHECK_P_NOT_SAFE_PRIME: u32 = 2;
+pub const DH_CHECK_UNABLE_TO_CHECK_GENERATOR: u32 = 4;
+pub const DH_CHECK_NOT_SUITABLE_GENERATOR: u32 = 8;
+pub const DH_CHECK_Q_NOT_PRIME: u32 = 16;
+pub const DH_CHECK_INVALID_Q_VALUE: u32 = 32;
+pub const DH_CHECK_INVALID_J_VALUE: u32 = 64;
+pub const DH_NOT_SUITABLE_GENERATOR: u32 = 8;
+pub const DH_UNABLE_TO_CHECK_GENERATOR: u32 = 4;
+pub const DH_CHECK_PUBKEY_TOO_SMALL: u32 = 1;
+pub const DH_CHECK_PUBKEY_TOO_LARGE: u32 = 2;
+pub const DH_CHECK_PUBKEY_INVALID: u32 = 4;
+pub const DH_R_BAD_GENERATOR: u32 = 100;
+pub const DH_R_INVALID_PUBKEY: u32 = 101;
+pub const DH_R_MODULUS_TOO_LARGE: u32 = 102;
+pub const DH_R_NO_PRIVATE_VALUE: u32 = 103;
+pub const DH_R_DECODE_ERROR: u32 = 104;
+pub const DH_R_ENCODE_ERROR: u32 = 105;
+pub const EVP_MAX_MD_SIZE: u32 = 64;
+pub const EVP_MAX_MD_BLOCK_SIZE: u32 = 128;
+pub const EVP_MD_FLAG_PKEY_DIGEST: u32 = 1;
+pub const EVP_MD_FLAG_DIGALGID_ABSENT: u32 = 2;
+pub const DIGEST_R_INPUT_NOT_INITIALIZED: u32 = 100;
+pub const DIGEST_R_DECODE_ERROR: u32 = 101;
+pub const DIGEST_R_UNKNOWN_HASH: u32 = 102;
+pub const DSA_R_BAD_Q_VALUE: u32 = 100;
+pub const DSA_R_MISSING_PARAMETERS: u32 = 101;
+pub const DSA_R_MODULUS_TOO_LARGE: u32 = 102;
+pub const DSA_R_NEED_NEW_SETUP_VALUES: u32 = 103;
+pub const DSA_R_BAD_VERSION: u32 = 104;
+pub const DSA_R_DECODE_ERROR: u32 = 105;
+pub const DSA_R_ENCODE_ERROR: u32 = 106;
+pub const OPENSSL_EC_NAMED_CURVE: u32 = 0;
+pub const EC_R_BUFFER_TOO_SMALL: u32 = 100;
+pub const EC_R_COORDINATES_OUT_OF_RANGE: u32 = 101;
+pub const EC_R_D2I_ECPKPARAMETERS_FAILURE: u32 = 102;
+pub const EC_R_EC_GROUP_NEW_BY_NAME_FAILURE: u32 = 103;
+pub const EC_R_GROUP2PKPARAMETERS_FAILURE: u32 = 104;
+pub const EC_R_I2D_ECPKPARAMETERS_FAILURE: u32 = 105;
+pub const EC_R_INCOMPATIBLE_OBJECTS: u32 = 106;
+pub const EC_R_INVALID_COMPRESSED_POINT: u32 = 107;
+pub const EC_R_INVALID_COMPRESSION_BIT: u32 = 108;
+pub const EC_R_INVALID_ENCODING: u32 = 109;
+pub const EC_R_INVALID_FIELD: u32 = 110;
+pub const EC_R_INVALID_FORM: u32 = 111;
+pub const EC_R_INVALID_GROUP_ORDER: u32 = 112;
+pub const EC_R_INVALID_PRIVATE_KEY: u32 = 113;
+pub const EC_R_MISSING_PARAMETERS: u32 = 114;
+pub const EC_R_MISSING_PRIVATE_KEY: u32 = 115;
+pub const EC_R_NON_NAMED_CURVE: u32 = 116;
+pub const EC_R_NOT_INITIALIZED: u32 = 117;
+pub const EC_R_PKPARAMETERS2GROUP_FAILURE: u32 = 118;
+pub const EC_R_POINT_AT_INFINITY: u32 = 119;
+pub const EC_R_POINT_IS_NOT_ON_CURVE: u32 = 120;
+pub const EC_R_SLOT_FULL: u32 = 121;
+pub const EC_R_UNDEFINED_GENERATOR: u32 = 122;
+pub const EC_R_UNKNOWN_GROUP: u32 = 123;
+pub const EC_R_UNKNOWN_ORDER: u32 = 124;
+pub const EC_R_WRONG_ORDER: u32 = 125;
+pub const EC_R_BIGNUM_OUT_OF_RANGE: u32 = 126;
+pub const EC_R_WRONG_CURVE_PARAMETERS: u32 = 127;
+pub const EC_R_DECODE_ERROR: u32 = 128;
+pub const EC_R_ENCODE_ERROR: u32 = 129;
+pub const EC_R_GROUP_MISMATCH: u32 = 130;
+pub const EC_R_INVALID_COFACTOR: u32 = 131;
+pub const EC_R_PUBLIC_KEY_VALIDATION_FAILED: u32 = 132;
+pub const EC_R_INVALID_SCALAR: u32 = 133;
+pub const EC_PKEY_NO_PARAMETERS: u32 = 1;
+pub const EC_PKEY_NO_PUBKEY: u32 = 2;
+pub const ECDSA_FLAG_OPAQUE: u32 = 1;
+pub const ECDH_R_KDF_FAILED: u32 = 100;
+pub const ECDH_R_NO_PRIVATE_VALUE: u32 = 101;
+pub const ECDH_R_POINT_ARITHMETIC_FAILURE: u32 = 102;
+pub const ECDH_R_UNKNOWN_DIGEST_LENGTH: u32 = 103;
+pub const ECDSA_R_BAD_SIGNATURE: u32 = 100;
+pub const ECDSA_R_MISSING_PARAMETERS: u32 = 101;
+pub const ECDSA_R_NEED_NEW_SETUP_VALUES: u32 = 102;
+pub const ECDSA_R_NOT_IMPLEMENTED: u32 = 103;
+pub const ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED: u32 = 104;
+pub const ECDSA_R_ENCODE_ERROR: u32 = 105;
+pub const NID_undef: u32 = 0;
+pub const NID_rsadsi: u32 = 1;
+pub const NID_pkcs: u32 = 2;
+pub const NID_md2: u32 = 3;
+pub const NID_md5: u32 = 4;
+pub const NID_rc4: u32 = 5;
+pub const NID_rsaEncryption: u32 = 6;
+pub const NID_md2WithRSAEncryption: u32 = 7;
+pub const NID_md5WithRSAEncryption: u32 = 8;
+pub const NID_pbeWithMD2AndDES_CBC: u32 = 9;
+pub const NID_pbeWithMD5AndDES_CBC: u32 = 10;
+pub const NID_X500: u32 = 11;
+pub const NID_X509: u32 = 12;
+pub const NID_commonName: u32 = 13;
+pub const NID_countryName: u32 = 14;
+pub const NID_localityName: u32 = 15;
+pub const NID_stateOrProvinceName: u32 = 16;
+pub const NID_organizationName: u32 = 17;
+pub const NID_organizationalUnitName: u32 = 18;
+pub const NID_rsa: u32 = 19;
+pub const NID_pkcs7: u32 = 20;
+pub const NID_pkcs7_data: u32 = 21;
+pub const NID_pkcs7_signed: u32 = 22;
+pub const NID_pkcs7_enveloped: u32 = 23;
+pub const NID_pkcs7_signedAndEnveloped: u32 = 24;
+pub const NID_pkcs7_digest: u32 = 25;
+pub const NID_pkcs7_encrypted: u32 = 26;
+pub const NID_pkcs3: u32 = 27;
+pub const NID_dhKeyAgreement: u32 = 28;
+pub const NID_des_ecb: u32 = 29;
+pub const NID_des_cfb64: u32 = 30;
+pub const NID_des_cbc: u32 = 31;
+pub const NID_des_ede_ecb: u32 = 32;
+pub const NID_des_ede3_ecb: u32 = 33;
+pub const NID_idea_cbc: u32 = 34;
+pub const NID_idea_cfb64: u32 = 35;
+pub const NID_idea_ecb: u32 = 36;
+pub const NID_rc2_cbc: u32 = 37;
+pub const NID_rc2_ecb: u32 = 38;
+pub const NID_rc2_cfb64: u32 = 39;
+pub const NID_rc2_ofb64: u32 = 40;
+pub const NID_sha: u32 = 41;
+pub const NID_shaWithRSAEncryption: u32 = 42;
+pub const NID_des_ede_cbc: u32 = 43;
+pub const NID_des_ede3_cbc: u32 = 44;
+pub const NID_des_ofb64: u32 = 45;
+pub const NID_idea_ofb64: u32 = 46;
+pub const NID_pkcs9: u32 = 47;
+pub const NID_pkcs9_emailAddress: u32 = 48;
+pub const NID_pkcs9_unstructuredName: u32 = 49;
+pub const NID_pkcs9_contentType: u32 = 50;
+pub const NID_pkcs9_messageDigest: u32 = 51;
+pub const NID_pkcs9_signingTime: u32 = 52;
+pub const NID_pkcs9_countersignature: u32 = 53;
+pub const NID_pkcs9_challengePassword: u32 = 54;
+pub const NID_pkcs9_unstructuredAddress: u32 = 55;
+pub const NID_pkcs9_extCertAttributes: u32 = 56;
+pub const NID_netscape: u32 = 57;
+pub const NID_netscape_cert_extension: u32 = 58;
+pub const NID_netscape_data_type: u32 = 59;
+pub const NID_des_ede_cfb64: u32 = 60;
+pub const NID_des_ede3_cfb64: u32 = 61;
+pub const NID_des_ede_ofb64: u32 = 62;
+pub const NID_des_ede3_ofb64: u32 = 63;
+pub const NID_sha1: u32 = 64;
+pub const NID_sha1WithRSAEncryption: u32 = 65;
+pub const NID_dsaWithSHA: u32 = 66;
+pub const NID_dsa_2: u32 = 67;
+pub const NID_pbeWithSHA1AndRC2_CBC: u32 = 68;
+pub const NID_id_pbkdf2: u32 = 69;
+pub const NID_dsaWithSHA1_2: u32 = 70;
+pub const NID_netscape_cert_type: u32 = 71;
+pub const NID_netscape_base_url: u32 = 72;
+pub const NID_netscape_revocation_url: u32 = 73;
+pub const NID_netscape_ca_revocation_url: u32 = 74;
+pub const NID_netscape_renewal_url: u32 = 75;
+pub const NID_netscape_ca_policy_url: u32 = 76;
+pub const NID_netscape_ssl_server_name: u32 = 77;
+pub const NID_netscape_comment: u32 = 78;
+pub const NID_netscape_cert_sequence: u32 = 79;
+pub const NID_desx_cbc: u32 = 80;
+pub const NID_id_ce: u32 = 81;
+pub const NID_subject_key_identifier: u32 = 82;
+pub const NID_key_usage: u32 = 83;
+pub const NID_private_key_usage_period: u32 = 84;
+pub const NID_subject_alt_name: u32 = 85;
+pub const NID_issuer_alt_name: u32 = 86;
+pub const NID_basic_constraints: u32 = 87;
+pub const NID_crl_number: u32 = 88;
+pub const NID_certificate_policies: u32 = 89;
+pub const NID_authority_key_identifier: u32 = 90;
+pub const NID_bf_cbc: u32 = 91;
+pub const NID_bf_ecb: u32 = 92;
+pub const NID_bf_cfb64: u32 = 93;
+pub const NID_bf_ofb64: u32 = 94;
+pub const NID_mdc2: u32 = 95;
+pub const NID_mdc2WithRSA: u32 = 96;
+pub const NID_rc4_40: u32 = 97;
+pub const NID_rc2_40_cbc: u32 = 98;
+pub const NID_givenName: u32 = 99;
+pub const NID_surname: u32 = 100;
+pub const NID_initials: u32 = 101;
+pub const NID_crl_distribution_points: u32 = 103;
+pub const NID_md5WithRSA: u32 = 104;
+pub const NID_serialNumber: u32 = 105;
+pub const NID_title: u32 = 106;
+pub const NID_description: u32 = 107;
+pub const NID_cast5_cbc: u32 = 108;
+pub const NID_cast5_ecb: u32 = 109;
+pub const NID_cast5_cfb64: u32 = 110;
+pub const NID_cast5_ofb64: u32 = 111;
+pub const NID_pbeWithMD5AndCast5_CBC: u32 = 112;
+pub const NID_dsaWithSHA1: u32 = 113;
+pub const NID_md5_sha1: u32 = 114;
+pub const NID_sha1WithRSA: u32 = 115;
+pub const NID_dsa: u32 = 116;
+pub const NID_ripemd160: u32 = 117;
+pub const NID_ripemd160WithRSA: u32 = 119;
+pub const NID_rc5_cbc: u32 = 120;
+pub const NID_rc5_ecb: u32 = 121;
+pub const NID_rc5_cfb64: u32 = 122;
+pub const NID_rc5_ofb64: u32 = 123;
+pub const NID_zlib_compression: u32 = 125;
+pub const NID_ext_key_usage: u32 = 126;
+pub const NID_id_pkix: u32 = 127;
+pub const NID_id_kp: u32 = 128;
+pub const NID_server_auth: u32 = 129;
+pub const NID_client_auth: u32 = 130;
+pub const NID_code_sign: u32 = 131;
+pub const NID_email_protect: u32 = 132;
+pub const NID_time_stamp: u32 = 133;
+pub const NID_ms_code_ind: u32 = 134;
+pub const NID_ms_code_com: u32 = 135;
+pub const NID_ms_ctl_sign: u32 = 136;
+pub const NID_ms_sgc: u32 = 137;
+pub const NID_ms_efs: u32 = 138;
+pub const NID_ns_sgc: u32 = 139;
+pub const NID_delta_crl: u32 = 140;
+pub const NID_crl_reason: u32 = 141;
+pub const NID_invalidity_date: u32 = 142;
+pub const NID_sxnet: u32 = 143;
+pub const NID_pbe_WithSHA1And128BitRC4: u32 = 144;
+pub const NID_pbe_WithSHA1And40BitRC4: u32 = 145;
+pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC: u32 = 146;
+pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC: u32 = 147;
+pub const NID_pbe_WithSHA1And128BitRC2_CBC: u32 = 148;
+pub const NID_pbe_WithSHA1And40BitRC2_CBC: u32 = 149;
+pub const NID_keyBag: u32 = 150;
+pub const NID_pkcs8ShroudedKeyBag: u32 = 151;
+pub const NID_certBag: u32 = 152;
+pub const NID_crlBag: u32 = 153;
+pub const NID_secretBag: u32 = 154;
+pub const NID_safeContentsBag: u32 = 155;
+pub const NID_friendlyName: u32 = 156;
+pub const NID_localKeyID: u32 = 157;
+pub const NID_x509Certificate: u32 = 158;
+pub const NID_sdsiCertificate: u32 = 159;
+pub const NID_x509Crl: u32 = 160;
+pub const NID_pbes2: u32 = 161;
+pub const NID_pbmac1: u32 = 162;
+pub const NID_hmacWithSHA1: u32 = 163;
+pub const NID_id_qt_cps: u32 = 164;
+pub const NID_id_qt_unotice: u32 = 165;
+pub const NID_rc2_64_cbc: u32 = 166;
+pub const NID_SMIMECapabilities: u32 = 167;
+pub const NID_pbeWithMD2AndRC2_CBC: u32 = 168;
+pub const NID_pbeWithMD5AndRC2_CBC: u32 = 169;
+pub const NID_pbeWithSHA1AndDES_CBC: u32 = 170;
+pub const NID_ms_ext_req: u32 = 171;
+pub const NID_ext_req: u32 = 172;
+pub const NID_name: u32 = 173;
+pub const NID_dnQualifier: u32 = 174;
+pub const NID_id_pe: u32 = 175;
+pub const NID_id_ad: u32 = 176;
+pub const NID_info_access: u32 = 177;
+pub const NID_ad_OCSP: u32 = 178;
+pub const NID_ad_ca_issuers: u32 = 179;
+pub const NID_OCSP_sign: u32 = 180;
+pub const NID_iso: u32 = 181;
+pub const NID_member_body: u32 = 182;
+pub const NID_ISO_US: u32 = 183;
+pub const NID_X9_57: u32 = 184;
+pub const NID_X9cm: u32 = 185;
+pub const NID_pkcs1: u32 = 186;
+pub const NID_pkcs5: u32 = 187;
+pub const NID_SMIME: u32 = 188;
+pub const NID_id_smime_mod: u32 = 189;
+pub const NID_id_smime_ct: u32 = 190;
+pub const NID_id_smime_aa: u32 = 191;
+pub const NID_id_smime_alg: u32 = 192;
+pub const NID_id_smime_cd: u32 = 193;
+pub const NID_id_smime_spq: u32 = 194;
+pub const NID_id_smime_cti: u32 = 195;
+pub const NID_id_smime_mod_cms: u32 = 196;
+pub const NID_id_smime_mod_ess: u32 = 197;
+pub const NID_id_smime_mod_oid: u32 = 198;
+pub const NID_id_smime_mod_msg_v3: u32 = 199;
+pub const NID_id_smime_mod_ets_eSignature_88: u32 = 200;
+pub const NID_id_smime_mod_ets_eSignature_97: u32 = 201;
+pub const NID_id_smime_mod_ets_eSigPolicy_88: u32 = 202;
+pub const NID_id_smime_mod_ets_eSigPolicy_97: u32 = 203;
+pub const NID_id_smime_ct_receipt: u32 = 204;
+pub const NID_id_smime_ct_authData: u32 = 205;
+pub const NID_id_smime_ct_publishCert: u32 = 206;
+pub const NID_id_smime_ct_TSTInfo: u32 = 207;
+pub const NID_id_smime_ct_TDTInfo: u32 = 208;
+pub const NID_id_smime_ct_contentInfo: u32 = 209;
+pub const NID_id_smime_ct_DVCSRequestData: u32 = 210;
+pub const NID_id_smime_ct_DVCSResponseData: u32 = 211;
+pub const NID_id_smime_aa_receiptRequest: u32 = 212;
+pub const NID_id_smime_aa_securityLabel: u32 = 213;
+pub const NID_id_smime_aa_mlExpandHistory: u32 = 214;
+pub const NID_id_smime_aa_contentHint: u32 = 215;
+pub const NID_id_smime_aa_msgSigDigest: u32 = 216;
+pub const NID_id_smime_aa_encapContentType: u32 = 217;
+pub const NID_id_smime_aa_contentIdentifier: u32 = 218;
+pub const NID_id_smime_aa_macValue: u32 = 219;
+pub const NID_id_smime_aa_equivalentLabels: u32 = 220;
+pub const NID_id_smime_aa_contentReference: u32 = 221;
+pub const NID_id_smime_aa_encrypKeyPref: u32 = 222;
+pub const NID_id_smime_aa_signingCertificate: u32 = 223;
+pub const NID_id_smime_aa_smimeEncryptCerts: u32 = 224;
+pub const NID_id_smime_aa_timeStampToken: u32 = 225;
+pub const NID_id_smime_aa_ets_sigPolicyId: u32 = 226;
+pub const NID_id_smime_aa_ets_commitmentType: u32 = 227;
+pub const NID_id_smime_aa_ets_signerLocation: u32 = 228;
+pub const NID_id_smime_aa_ets_signerAttr: u32 = 229;
+pub const NID_id_smime_aa_ets_otherSigCert: u32 = 230;
+pub const NID_id_smime_aa_ets_contentTimestamp: u32 = 231;
+pub const NID_id_smime_aa_ets_CertificateRefs: u32 = 232;
+pub const NID_id_smime_aa_ets_RevocationRefs: u32 = 233;
+pub const NID_id_smime_aa_ets_certValues: u32 = 234;
+pub const NID_id_smime_aa_ets_revocationValues: u32 = 235;
+pub const NID_id_smime_aa_ets_escTimeStamp: u32 = 236;
+pub const NID_id_smime_aa_ets_certCRLTimestamp: u32 = 237;
+pub const NID_id_smime_aa_ets_archiveTimeStamp: u32 = 238;
+pub const NID_id_smime_aa_signatureType: u32 = 239;
+pub const NID_id_smime_aa_dvcs_dvc: u32 = 240;
+pub const NID_id_smime_alg_ESDHwith3DES: u32 = 241;
+pub const NID_id_smime_alg_ESDHwithRC2: u32 = 242;
+pub const NID_id_smime_alg_3DESwrap: u32 = 243;
+pub const NID_id_smime_alg_RC2wrap: u32 = 244;
+pub const NID_id_smime_alg_ESDH: u32 = 245;
+pub const NID_id_smime_alg_CMS3DESwrap: u32 = 246;
+pub const NID_id_smime_alg_CMSRC2wrap: u32 = 247;
+pub const NID_id_smime_cd_ldap: u32 = 248;
+pub const NID_id_smime_spq_ets_sqt_uri: u32 = 249;
+pub const NID_id_smime_spq_ets_sqt_unotice: u32 = 250;
+pub const NID_id_smime_cti_ets_proofOfOrigin: u32 = 251;
+pub const NID_id_smime_cti_ets_proofOfReceipt: u32 = 252;
+pub const NID_id_smime_cti_ets_proofOfDelivery: u32 = 253;
+pub const NID_id_smime_cti_ets_proofOfSender: u32 = 254;
+pub const NID_id_smime_cti_ets_proofOfApproval: u32 = 255;
+pub const NID_id_smime_cti_ets_proofOfCreation: u32 = 256;
+pub const NID_md4: u32 = 257;
+pub const NID_id_pkix_mod: u32 = 258;
+pub const NID_id_qt: u32 = 259;
+pub const NID_id_it: u32 = 260;
+pub const NID_id_pkip: u32 = 261;
+pub const NID_id_alg: u32 = 262;
+pub const NID_id_cmc: u32 = 263;
+pub const NID_id_on: u32 = 264;
+pub const NID_id_pda: u32 = 265;
+pub const NID_id_aca: u32 = 266;
+pub const NID_id_qcs: u32 = 267;
+pub const NID_id_cct: u32 = 268;
+pub const NID_id_pkix1_explicit_88: u32 = 269;
+pub const NID_id_pkix1_implicit_88: u32 = 270;
+pub const NID_id_pkix1_explicit_93: u32 = 271;
+pub const NID_id_pkix1_implicit_93: u32 = 272;
+pub const NID_id_mod_crmf: u32 = 273;
+pub const NID_id_mod_cmc: u32 = 274;
+pub const NID_id_mod_kea_profile_88: u32 = 275;
+pub const NID_id_mod_kea_profile_93: u32 = 276;
+pub const NID_id_mod_cmp: u32 = 277;
+pub const NID_id_mod_qualified_cert_88: u32 = 278;
+pub const NID_id_mod_qualified_cert_93: u32 = 279;
+pub const NID_id_mod_attribute_cert: u32 = 280;
+pub const NID_id_mod_timestamp_protocol: u32 = 281;
+pub const NID_id_mod_ocsp: u32 = 282;
+pub const NID_id_mod_dvcs: u32 = 283;
+pub const NID_id_mod_cmp2000: u32 = 284;
+pub const NID_biometricInfo: u32 = 285;
+pub const NID_qcStatements: u32 = 286;
+pub const NID_ac_auditEntity: u32 = 287;
+pub const NID_ac_targeting: u32 = 288;
+pub const NID_aaControls: u32 = 289;
+pub const NID_sbgp_ipAddrBlock: u32 = 290;
+pub const NID_sbgp_autonomousSysNum: u32 = 291;
+pub const NID_sbgp_routerIdentifier: u32 = 292;
+pub const NID_textNotice: u32 = 293;
+pub const NID_ipsecEndSystem: u32 = 294;
+pub const NID_ipsecTunnel: u32 = 295;
+pub const NID_ipsecUser: u32 = 296;
+pub const NID_dvcs: u32 = 297;
+pub const NID_id_it_caProtEncCert: u32 = 298;
+pub const NID_id_it_signKeyPairTypes: u32 = 299;
+pub const NID_id_it_encKeyPairTypes: u32 = 300;
+pub const NID_id_it_preferredSymmAlg: u32 = 301;
+pub const NID_id_it_caKeyUpdateInfo: u32 = 302;
+pub const NID_id_it_currentCRL: u32 = 303;
+pub const NID_id_it_unsupportedOIDs: u32 = 304;
+pub const NID_id_it_subscriptionRequest: u32 = 305;
+pub const NID_id_it_subscriptionResponse: u32 = 306;
+pub const NID_id_it_keyPairParamReq: u32 = 307;
+pub const NID_id_it_keyPairParamRep: u32 = 308;
+pub const NID_id_it_revPassphrase: u32 = 309;
+pub const NID_id_it_implicitConfirm: u32 = 310;
+pub const NID_id_it_confirmWaitTime: u32 = 311;
+pub const NID_id_it_origPKIMessage: u32 = 312;
+pub const NID_id_regCtrl: u32 = 313;
+pub const NID_id_regInfo: u32 = 314;
+pub const NID_id_regCtrl_regToken: u32 = 315;
+pub const NID_id_regCtrl_authenticator: u32 = 316;
+pub const NID_id_regCtrl_pkiPublicationInfo: u32 = 317;
+pub const NID_id_regCtrl_pkiArchiveOptions: u32 = 318;
+pub const NID_id_regCtrl_oldCertID: u32 = 319;
+pub const NID_id_regCtrl_protocolEncrKey: u32 = 320;
+pub const NID_id_regInfo_utf8Pairs: u32 = 321;
+pub const NID_id_regInfo_certReq: u32 = 322;
+pub const NID_id_alg_des40: u32 = 323;
+pub const NID_id_alg_noSignature: u32 = 324;
+pub const NID_id_alg_dh_sig_hmac_sha1: u32 = 325;
+pub const NID_id_alg_dh_pop: u32 = 326;
+pub const NID_id_cmc_statusInfo: u32 = 327;
+pub const NID_id_cmc_identification: u32 = 328;
+pub const NID_id_cmc_identityProof: u32 = 329;
+pub const NID_id_cmc_dataReturn: u32 = 330;
+pub const NID_id_cmc_transactionId: u32 = 331;
+pub const NID_id_cmc_senderNonce: u32 = 332;
+pub const NID_id_cmc_recipientNonce: u32 = 333;
+pub const NID_id_cmc_addExtensions: u32 = 334;
+pub const NID_id_cmc_encryptedPOP: u32 = 335;
+pub const NID_id_cmc_decryptedPOP: u32 = 336;
+pub const NID_id_cmc_lraPOPWitness: u32 = 337;
+pub const NID_id_cmc_getCert: u32 = 338;
+pub const NID_id_cmc_getCRL: u32 = 339;
+pub const NID_id_cmc_revokeRequest: u32 = 340;
+pub const NID_id_cmc_regInfo: u32 = 341;
+pub const NID_id_cmc_responseInfo: u32 = 342;
+pub const NID_id_cmc_queryPending: u32 = 343;
+pub const NID_id_cmc_popLinkRandom: u32 = 344;
+pub const NID_id_cmc_popLinkWitness: u32 = 345;
+pub const NID_id_cmc_confirmCertAcceptance: u32 = 346;
+pub const NID_id_on_personalData: u32 = 347;
+pub const NID_id_pda_dateOfBirth: u32 = 348;
+pub const NID_id_pda_placeOfBirth: u32 = 349;
+pub const NID_id_pda_gender: u32 = 351;
+pub const NID_id_pda_countryOfCitizenship: u32 = 352;
+pub const NID_id_pda_countryOfResidence: u32 = 353;
+pub const NID_id_aca_authenticationInfo: u32 = 354;
+pub const NID_id_aca_accessIdentity: u32 = 355;
+pub const NID_id_aca_chargingIdentity: u32 = 356;
+pub const NID_id_aca_group: u32 = 357;
+pub const NID_id_aca_role: u32 = 358;
+pub const NID_id_qcs_pkixQCSyntax_v1: u32 = 359;
+pub const NID_id_cct_crs: u32 = 360;
+pub const NID_id_cct_PKIData: u32 = 361;
+pub const NID_id_cct_PKIResponse: u32 = 362;
+pub const NID_ad_timeStamping: u32 = 363;
+pub const NID_ad_dvcs: u32 = 364;
+pub const NID_id_pkix_OCSP_basic: u32 = 365;
+pub const NID_id_pkix_OCSP_Nonce: u32 = 366;
+pub const NID_id_pkix_OCSP_CrlID: u32 = 367;
+pub const NID_id_pkix_OCSP_acceptableResponses: u32 = 368;
+pub const NID_id_pkix_OCSP_noCheck: u32 = 369;
+pub const NID_id_pkix_OCSP_archiveCutoff: u32 = 370;
+pub const NID_id_pkix_OCSP_serviceLocator: u32 = 371;
+pub const NID_id_pkix_OCSP_extendedStatus: u32 = 372;
+pub const NID_id_pkix_OCSP_valid: u32 = 373;
+pub const NID_id_pkix_OCSP_path: u32 = 374;
+pub const NID_id_pkix_OCSP_trustRoot: u32 = 375;
+pub const NID_algorithm: u32 = 376;
+pub const NID_rsaSignature: u32 = 377;
+pub const NID_X500algorithms: u32 = 378;
+pub const NID_org: u32 = 379;
+pub const NID_dod: u32 = 380;
+pub const NID_iana: u32 = 381;
+pub const NID_Directory: u32 = 382;
+pub const NID_Management: u32 = 383;
+pub const NID_Experimental: u32 = 384;
+pub const NID_Private: u32 = 385;
+pub const NID_Security: u32 = 386;
+pub const NID_SNMPv2: u32 = 387;
+pub const NID_Mail: u32 = 388;
+pub const NID_Enterprises: u32 = 389;
+pub const NID_dcObject: u32 = 390;
+pub const NID_domainComponent: u32 = 391;
+pub const NID_Domain: u32 = 392;
+pub const NID_selected_attribute_types: u32 = 394;
+pub const NID_clearance: u32 = 395;
+pub const NID_md4WithRSAEncryption: u32 = 396;
+pub const NID_ac_proxying: u32 = 397;
+pub const NID_sinfo_access: u32 = 398;
+pub const NID_id_aca_encAttrs: u32 = 399;
+pub const NID_role: u32 = 400;
+pub const NID_policy_constraints: u32 = 401;
+pub const NID_target_information: u32 = 402;
+pub const NID_no_rev_avail: u32 = 403;
+pub const NID_ansi_X9_62: u32 = 405;
+pub const NID_X9_62_prime_field: u32 = 406;
+pub const NID_X9_62_characteristic_two_field: u32 = 407;
+pub const NID_X9_62_id_ecPublicKey: u32 = 408;
+pub const NID_X9_62_prime192v1: u32 = 409;
+pub const NID_X9_62_prime192v2: u32 = 410;
+pub const NID_X9_62_prime192v3: u32 = 411;
+pub const NID_X9_62_prime239v1: u32 = 412;
+pub const NID_X9_62_prime239v2: u32 = 413;
+pub const NID_X9_62_prime239v3: u32 = 414;
+pub const NID_X9_62_prime256v1: u32 = 415;
+pub const NID_ecdsa_with_SHA1: u32 = 416;
+pub const NID_ms_csp_name: u32 = 417;
+pub const NID_aes_128_ecb: u32 = 418;
+pub const NID_aes_128_cbc: u32 = 419;
+pub const NID_aes_128_ofb128: u32 = 420;
+pub const NID_aes_128_cfb128: u32 = 421;
+pub const NID_aes_192_ecb: u32 = 422;
+pub const NID_aes_192_cbc: u32 = 423;
+pub const NID_aes_192_ofb128: u32 = 424;
+pub const NID_aes_192_cfb128: u32 = 425;
+pub const NID_aes_256_ecb: u32 = 426;
+pub const NID_aes_256_cbc: u32 = 427;
+pub const NID_aes_256_ofb128: u32 = 428;
+pub const NID_aes_256_cfb128: u32 = 429;
+pub const NID_hold_instruction_code: u32 = 430;
+pub const NID_hold_instruction_none: u32 = 431;
+pub const NID_hold_instruction_call_issuer: u32 = 432;
+pub const NID_hold_instruction_reject: u32 = 433;
+pub const NID_data: u32 = 434;
+pub const NID_pss: u32 = 435;
+pub const NID_ucl: u32 = 436;
+pub const NID_pilot: u32 = 437;
+pub const NID_pilotAttributeType: u32 = 438;
+pub const NID_pilotAttributeSyntax: u32 = 439;
+pub const NID_pilotObjectClass: u32 = 440;
+pub const NID_pilotGroups: u32 = 441;
+pub const NID_iA5StringSyntax: u32 = 442;
+pub const NID_caseIgnoreIA5StringSyntax: u32 = 443;
+pub const NID_pilotObject: u32 = 444;
+pub const NID_pilotPerson: u32 = 445;
+pub const NID_account: u32 = 446;
+pub const NID_document: u32 = 447;
+pub const NID_room: u32 = 448;
+pub const NID_documentSeries: u32 = 449;
+pub const NID_rFC822localPart: u32 = 450;
+pub const NID_dNSDomain: u32 = 451;
+pub const NID_domainRelatedObject: u32 = 452;
+pub const NID_friendlyCountry: u32 = 453;
+pub const NID_simpleSecurityObject: u32 = 454;
+pub const NID_pilotOrganization: u32 = 455;
+pub const NID_pilotDSA: u32 = 456;
+pub const NID_qualityLabelledData: u32 = 457;
+pub const NID_userId: u32 = 458;
+pub const NID_textEncodedORAddress: u32 = 459;
+pub const NID_rfc822Mailbox: u32 = 460;
+pub const NID_info: u32 = 461;
+pub const NID_favouriteDrink: u32 = 462;
+pub const NID_roomNumber: u32 = 463;
+pub const NID_photo: u32 = 464;
+pub const NID_userClass: u32 = 465;
+pub const NID_host: u32 = 466;
+pub const NID_manager: u32 = 467;
+pub const NID_documentIdentifier: u32 = 468;
+pub const NID_documentTitle: u32 = 469;
+pub const NID_documentVersion: u32 = 470;
+pub const NID_documentAuthor: u32 = 471;
+pub const NID_documentLocation: u32 = 472;
+pub const NID_homeTelephoneNumber: u32 = 473;
+pub const NID_secretary: u32 = 474;
+pub const NID_otherMailbox: u32 = 475;
+pub const NID_lastModifiedTime: u32 = 476;
+pub const NID_lastModifiedBy: u32 = 477;
+pub const NID_aRecord: u32 = 478;
+pub const NID_pilotAttributeType27: u32 = 479;
+pub const NID_mXRecord: u32 = 480;
+pub const NID_nSRecord: u32 = 481;
+pub const NID_sOARecord: u32 = 482;
+pub const NID_cNAMERecord: u32 = 483;
+pub const NID_associatedDomain: u32 = 484;
+pub const NID_associatedName: u32 = 485;
+pub const NID_homePostalAddress: u32 = 486;
+pub const NID_personalTitle: u32 = 487;
+pub const NID_mobileTelephoneNumber: u32 = 488;
+pub const NID_pagerTelephoneNumber: u32 = 489;
+pub const NID_friendlyCountryName: u32 = 490;
+pub const NID_organizationalStatus: u32 = 491;
+pub const NID_janetMailbox: u32 = 492;
+pub const NID_mailPreferenceOption: u32 = 493;
+pub const NID_buildingName: u32 = 494;
+pub const NID_dSAQuality: u32 = 495;
+pub const NID_singleLevelQuality: u32 = 496;
+pub const NID_subtreeMinimumQuality: u32 = 497;
+pub const NID_subtreeMaximumQuality: u32 = 498;
+pub const NID_personalSignature: u32 = 499;
+pub const NID_dITRedirect: u32 = 500;
+pub const NID_audio: u32 = 501;
+pub const NID_documentPublisher: u32 = 502;
+pub const NID_x500UniqueIdentifier: u32 = 503;
+pub const NID_mime_mhs: u32 = 504;
+pub const NID_mime_mhs_headings: u32 = 505;
+pub const NID_mime_mhs_bodies: u32 = 506;
+pub const NID_id_hex_partial_message: u32 = 507;
+pub const NID_id_hex_multipart_message: u32 = 508;
+pub const NID_generationQualifier: u32 = 509;
+pub const NID_pseudonym: u32 = 510;
+pub const NID_id_set: u32 = 512;
+pub const NID_set_ctype: u32 = 513;
+pub const NID_set_msgExt: u32 = 514;
+pub const NID_set_attr: u32 = 515;
+pub const NID_set_policy: u32 = 516;
+pub const NID_set_certExt: u32 = 517;
+pub const NID_set_brand: u32 = 518;
+pub const NID_setct_PANData: u32 = 519;
+pub const NID_setct_PANToken: u32 = 520;
+pub const NID_setct_PANOnly: u32 = 521;
+pub const NID_setct_OIData: u32 = 522;
+pub const NID_setct_PI: u32 = 523;
+pub const NID_setct_PIData: u32 = 524;
+pub const NID_setct_PIDataUnsigned: u32 = 525;
+pub const NID_setct_HODInput: u32 = 526;
+pub const NID_setct_AuthResBaggage: u32 = 527;
+pub const NID_setct_AuthRevReqBaggage: u32 = 528;
+pub const NID_setct_AuthRevResBaggage: u32 = 529;
+pub const NID_setct_CapTokenSeq: u32 = 530;
+pub const NID_setct_PInitResData: u32 = 531;
+pub const NID_setct_PI_TBS: u32 = 532;
+pub const NID_setct_PResData: u32 = 533;
+pub const NID_setct_AuthReqTBS: u32 = 534;
+pub const NID_setct_AuthResTBS: u32 = 535;
+pub const NID_setct_AuthResTBSX: u32 = 536;
+pub const NID_setct_AuthTokenTBS: u32 = 537;
+pub const NID_setct_CapTokenData: u32 = 538;
+pub const NID_setct_CapTokenTBS: u32 = 539;
+pub const NID_setct_AcqCardCodeMsg: u32 = 540;
+pub const NID_setct_AuthRevReqTBS: u32 = 541;
+pub const NID_setct_AuthRevResData: u32 = 542;
+pub const NID_setct_AuthRevResTBS: u32 = 543;
+pub const NID_setct_CapReqTBS: u32 = 544;
+pub const NID_setct_CapReqTBSX: u32 = 545;
+pub const NID_setct_CapResData: u32 = 546;
+pub const NID_setct_CapRevReqTBS: u32 = 547;
+pub const NID_setct_CapRevReqTBSX: u32 = 548;
+pub const NID_setct_CapRevResData: u32 = 549;
+pub const NID_setct_CredReqTBS: u32 = 550;
+pub const NID_setct_CredReqTBSX: u32 = 551;
+pub const NID_setct_CredResData: u32 = 552;
+pub const NID_setct_CredRevReqTBS: u32 = 553;
+pub const NID_setct_CredRevReqTBSX: u32 = 554;
+pub const NID_setct_CredRevResData: u32 = 555;
+pub const NID_setct_PCertReqData: u32 = 556;
+pub const NID_setct_PCertResTBS: u32 = 557;
+pub const NID_setct_BatchAdminReqData: u32 = 558;
+pub const NID_setct_BatchAdminResData: u32 = 559;
+pub const NID_setct_CardCInitResTBS: u32 = 560;
+pub const NID_setct_MeAqCInitResTBS: u32 = 561;
+pub const NID_setct_RegFormResTBS: u32 = 562;
+pub const NID_setct_CertReqData: u32 = 563;
+pub const NID_setct_CertReqTBS: u32 = 564;
+pub const NID_setct_CertResData: u32 = 565;
+pub const NID_setct_CertInqReqTBS: u32 = 566;
+pub const NID_setct_ErrorTBS: u32 = 567;
+pub const NID_setct_PIDualSignedTBE: u32 = 568;
+pub const NID_setct_PIUnsignedTBE: u32 = 569;
+pub const NID_setct_AuthReqTBE: u32 = 570;
+pub const NID_setct_AuthResTBE: u32 = 571;
+pub const NID_setct_AuthResTBEX: u32 = 572;
+pub const NID_setct_AuthTokenTBE: u32 = 573;
+pub const NID_setct_CapTokenTBE: u32 = 574;
+pub const NID_setct_CapTokenTBEX: u32 = 575;
+pub const NID_setct_AcqCardCodeMsgTBE: u32 = 576;
+pub const NID_setct_AuthRevReqTBE: u32 = 577;
+pub const NID_setct_AuthRevResTBE: u32 = 578;
+pub const NID_setct_AuthRevResTBEB: u32 = 579;
+pub const NID_setct_CapReqTBE: u32 = 580;
+pub const NID_setct_CapReqTBEX: u32 = 581;
+pub const NID_setct_CapResTBE: u32 = 582;
+pub const NID_setct_CapRevReqTBE: u32 = 583;
+pub const NID_setct_CapRevReqTBEX: u32 = 584;
+pub const NID_setct_CapRevResTBE: u32 = 585;
+pub const NID_setct_CredReqTBE: u32 = 586;
+pub const NID_setct_CredReqTBEX: u32 = 587;
+pub const NID_setct_CredResTBE: u32 = 588;
+pub const NID_setct_CredRevReqTBE: u32 = 589;
+pub const NID_setct_CredRevReqTBEX: u32 = 590;
+pub const NID_setct_CredRevResTBE: u32 = 591;
+pub const NID_setct_BatchAdminReqTBE: u32 = 592;
+pub const NID_setct_BatchAdminResTBE: u32 = 593;
+pub const NID_setct_RegFormReqTBE: u32 = 594;
+pub const NID_setct_CertReqTBE: u32 = 595;
+pub const NID_setct_CertReqTBEX: u32 = 596;
+pub const NID_setct_CertResTBE: u32 = 597;
+pub const NID_setct_CRLNotificationTBS: u32 = 598;
+pub const NID_setct_CRLNotificationResTBS: u32 = 599;
+pub const NID_setct_BCIDistributionTBS: u32 = 600;
+pub const NID_setext_genCrypt: u32 = 601;
+pub const NID_setext_miAuth: u32 = 602;
+pub const NID_setext_pinSecure: u32 = 603;
+pub const NID_setext_pinAny: u32 = 604;
+pub const NID_setext_track2: u32 = 605;
+pub const NID_setext_cv: u32 = 606;
+pub const NID_set_policy_root: u32 = 607;
+pub const NID_setCext_hashedRoot: u32 = 608;
+pub const NID_setCext_certType: u32 = 609;
+pub const NID_setCext_merchData: u32 = 610;
+pub const NID_setCext_cCertRequired: u32 = 611;
+pub const NID_setCext_tunneling: u32 = 612;
+pub const NID_setCext_setExt: u32 = 613;
+pub const NID_setCext_setQualf: u32 = 614;
+pub const NID_setCext_PGWYcapabilities: u32 = 615;
+pub const NID_setCext_TokenIdentifier: u32 = 616;
+pub const NID_setCext_Track2Data: u32 = 617;
+pub const NID_setCext_TokenType: u32 = 618;
+pub const NID_setCext_IssuerCapabilities: u32 = 619;
+pub const NID_setAttr_Cert: u32 = 620;
+pub const NID_setAttr_PGWYcap: u32 = 621;
+pub const NID_setAttr_TokenType: u32 = 622;
+pub const NID_setAttr_IssCap: u32 = 623;
+pub const NID_set_rootKeyThumb: u32 = 624;
+pub const NID_set_addPolicy: u32 = 625;
+pub const NID_setAttr_Token_EMV: u32 = 626;
+pub const NID_setAttr_Token_B0Prime: u32 = 627;
+pub const NID_setAttr_IssCap_CVM: u32 = 628;
+pub const NID_setAttr_IssCap_T2: u32 = 629;
+pub const NID_setAttr_IssCap_Sig: u32 = 630;
+pub const NID_setAttr_GenCryptgrm: u32 = 631;
+pub const NID_setAttr_T2Enc: u32 = 632;
+pub const NID_setAttr_T2cleartxt: u32 = 633;
+pub const NID_setAttr_TokICCsig: u32 = 634;
+pub const NID_setAttr_SecDevSig: u32 = 635;
+pub const NID_set_brand_IATA_ATA: u32 = 636;
+pub const NID_set_brand_Diners: u32 = 637;
+pub const NID_set_brand_AmericanExpress: u32 = 638;
+pub const NID_set_brand_JCB: u32 = 639;
+pub const NID_set_brand_Visa: u32 = 640;
+pub const NID_set_brand_MasterCard: u32 = 641;
+pub const NID_set_brand_Novus: u32 = 642;
+pub const NID_des_cdmf: u32 = 643;
+pub const NID_rsaOAEPEncryptionSET: u32 = 644;
+pub const NID_itu_t: u32 = 645;
+pub const NID_joint_iso_itu_t: u32 = 646;
+pub const NID_international_organizations: u32 = 647;
+pub const NID_ms_smartcard_login: u32 = 648;
+pub const NID_ms_upn: u32 = 649;
+pub const NID_aes_128_cfb1: u32 = 650;
+pub const NID_aes_192_cfb1: u32 = 651;
+pub const NID_aes_256_cfb1: u32 = 652;
+pub const NID_aes_128_cfb8: u32 = 653;
+pub const NID_aes_192_cfb8: u32 = 654;
+pub const NID_aes_256_cfb8: u32 = 655;
+pub const NID_des_cfb1: u32 = 656;
+pub const NID_des_cfb8: u32 = 657;
+pub const NID_des_ede3_cfb1: u32 = 658;
+pub const NID_des_ede3_cfb8: u32 = 659;
+pub const NID_streetAddress: u32 = 660;
+pub const NID_postalCode: u32 = 661;
+pub const NID_id_ppl: u32 = 662;
+pub const NID_proxyCertInfo: u32 = 663;
+pub const NID_id_ppl_anyLanguage: u32 = 664;
+pub const NID_id_ppl_inheritAll: u32 = 665;
+pub const NID_name_constraints: u32 = 666;
+pub const NID_Independent: u32 = 667;
+pub const NID_sha256WithRSAEncryption: u32 = 668;
+pub const NID_sha384WithRSAEncryption: u32 = 669;
+pub const NID_sha512WithRSAEncryption: u32 = 670;
+pub const NID_sha224WithRSAEncryption: u32 = 671;
+pub const NID_sha256: u32 = 672;
+pub const NID_sha384: u32 = 673;
+pub const NID_sha512: u32 = 674;
+pub const NID_sha224: u32 = 675;
+pub const NID_identified_organization: u32 = 676;
+pub const NID_certicom_arc: u32 = 677;
+pub const NID_wap: u32 = 678;
+pub const NID_wap_wsg: u32 = 679;
+pub const NID_X9_62_id_characteristic_two_basis: u32 = 680;
+pub const NID_X9_62_onBasis: u32 = 681;
+pub const NID_X9_62_tpBasis: u32 = 682;
+pub const NID_X9_62_ppBasis: u32 = 683;
+pub const NID_X9_62_c2pnb163v1: u32 = 684;
+pub const NID_X9_62_c2pnb163v2: u32 = 685;
+pub const NID_X9_62_c2pnb163v3: u32 = 686;
+pub const NID_X9_62_c2pnb176v1: u32 = 687;
+pub const NID_X9_62_c2tnb191v1: u32 = 688;
+pub const NID_X9_62_c2tnb191v2: u32 = 689;
+pub const NID_X9_62_c2tnb191v3: u32 = 690;
+pub const NID_X9_62_c2onb191v4: u32 = 691;
+pub const NID_X9_62_c2onb191v5: u32 = 692;
+pub const NID_X9_62_c2pnb208w1: u32 = 693;
+pub const NID_X9_62_c2tnb239v1: u32 = 694;
+pub const NID_X9_62_c2tnb239v2: u32 = 695;
+pub const NID_X9_62_c2tnb239v3: u32 = 696;
+pub const NID_X9_62_c2onb239v4: u32 = 697;
+pub const NID_X9_62_c2onb239v5: u32 = 698;
+pub const NID_X9_62_c2pnb272w1: u32 = 699;
+pub const NID_X9_62_c2pnb304w1: u32 = 700;
+pub const NID_X9_62_c2tnb359v1: u32 = 701;
+pub const NID_X9_62_c2pnb368w1: u32 = 702;
+pub const NID_X9_62_c2tnb431r1: u32 = 703;
+pub const NID_secp112r1: u32 = 704;
+pub const NID_secp112r2: u32 = 705;
+pub const NID_secp128r1: u32 = 706;
+pub const NID_secp128r2: u32 = 707;
+pub const NID_secp160k1: u32 = 708;
+pub const NID_secp160r1: u32 = 709;
+pub const NID_secp160r2: u32 = 710;
+pub const NID_secp192k1: u32 = 711;
+pub const NID_secp224k1: u32 = 712;
+pub const NID_secp224r1: u32 = 713;
+pub const NID_secp256k1: u32 = 714;
+pub const NID_secp384r1: u32 = 715;
+pub const NID_secp521r1: u32 = 716;
+pub const NID_sect113r1: u32 = 717;
+pub const NID_sect113r2: u32 = 718;
+pub const NID_sect131r1: u32 = 719;
+pub const NID_sect131r2: u32 = 720;
+pub const NID_sect163k1: u32 = 721;
+pub const NID_sect163r1: u32 = 722;
+pub const NID_sect163r2: u32 = 723;
+pub const NID_sect193r1: u32 = 724;
+pub const NID_sect193r2: u32 = 725;
+pub const NID_sect233k1: u32 = 726;
+pub const NID_sect233r1: u32 = 727;
+pub const NID_sect239k1: u32 = 728;
+pub const NID_sect283k1: u32 = 729;
+pub const NID_sect283r1: u32 = 730;
+pub const NID_sect409k1: u32 = 731;
+pub const NID_sect409r1: u32 = 732;
+pub const NID_sect571k1: u32 = 733;
+pub const NID_sect571r1: u32 = 734;
+pub const NID_wap_wsg_idm_ecid_wtls1: u32 = 735;
+pub const NID_wap_wsg_idm_ecid_wtls3: u32 = 736;
+pub const NID_wap_wsg_idm_ecid_wtls4: u32 = 737;
+pub const NID_wap_wsg_idm_ecid_wtls5: u32 = 738;
+pub const NID_wap_wsg_idm_ecid_wtls6: u32 = 739;
+pub const NID_wap_wsg_idm_ecid_wtls7: u32 = 740;
+pub const NID_wap_wsg_idm_ecid_wtls8: u32 = 741;
+pub const NID_wap_wsg_idm_ecid_wtls9: u32 = 742;
+pub const NID_wap_wsg_idm_ecid_wtls10: u32 = 743;
+pub const NID_wap_wsg_idm_ecid_wtls11: u32 = 744;
+pub const NID_wap_wsg_idm_ecid_wtls12: u32 = 745;
+pub const NID_any_policy: u32 = 746;
+pub const NID_policy_mappings: u32 = 747;
+pub const NID_inhibit_any_policy: u32 = 748;
+pub const NID_ipsec3: u32 = 749;
+pub const NID_ipsec4: u32 = 750;
+pub const NID_camellia_128_cbc: u32 = 751;
+pub const NID_camellia_192_cbc: u32 = 752;
+pub const NID_camellia_256_cbc: u32 = 753;
+pub const NID_camellia_128_ecb: u32 = 754;
+pub const NID_camellia_192_ecb: u32 = 755;
+pub const NID_camellia_256_ecb: u32 = 756;
+pub const NID_camellia_128_cfb128: u32 = 757;
+pub const NID_camellia_192_cfb128: u32 = 758;
+pub const NID_camellia_256_cfb128: u32 = 759;
+pub const NID_camellia_128_cfb1: u32 = 760;
+pub const NID_camellia_192_cfb1: u32 = 761;
+pub const NID_camellia_256_cfb1: u32 = 762;
+pub const NID_camellia_128_cfb8: u32 = 763;
+pub const NID_camellia_192_cfb8: u32 = 764;
+pub const NID_camellia_256_cfb8: u32 = 765;
+pub const NID_camellia_128_ofb128: u32 = 766;
+pub const NID_camellia_192_ofb128: u32 = 767;
+pub const NID_camellia_256_ofb128: u32 = 768;
+pub const NID_subject_directory_attributes: u32 = 769;
+pub const NID_issuing_distribution_point: u32 = 770;
+pub const NID_certificate_issuer: u32 = 771;
+pub const NID_kisa: u32 = 773;
+pub const NID_seed_ecb: u32 = 776;
+pub const NID_seed_cbc: u32 = 777;
+pub const NID_seed_ofb128: u32 = 778;
+pub const NID_seed_cfb128: u32 = 779;
+pub const NID_hmac_md5: u32 = 780;
+pub const NID_hmac_sha1: u32 = 781;
+pub const NID_id_PasswordBasedMAC: u32 = 782;
+pub const NID_id_DHBasedMac: u32 = 783;
+pub const NID_id_it_suppLangTags: u32 = 784;
+pub const NID_caRepository: u32 = 785;
+pub const NID_id_smime_ct_compressedData: u32 = 786;
+pub const NID_id_ct_asciiTextWithCRLF: u32 = 787;
+pub const NID_id_aes128_wrap: u32 = 788;
+pub const NID_id_aes192_wrap: u32 = 789;
+pub const NID_id_aes256_wrap: u32 = 790;
+pub const NID_ecdsa_with_Recommended: u32 = 791;
+pub const NID_ecdsa_with_Specified: u32 = 792;
+pub const NID_ecdsa_with_SHA224: u32 = 793;
+pub const NID_ecdsa_with_SHA256: u32 = 794;
+pub const NID_ecdsa_with_SHA384: u32 = 795;
+pub const NID_ecdsa_with_SHA512: u32 = 796;
+pub const NID_hmacWithMD5: u32 = 797;
+pub const NID_hmacWithSHA224: u32 = 798;
+pub const NID_hmacWithSHA256: u32 = 799;
+pub const NID_hmacWithSHA384: u32 = 800;
+pub const NID_hmacWithSHA512: u32 = 801;
+pub const NID_dsa_with_SHA224: u32 = 802;
+pub const NID_dsa_with_SHA256: u32 = 803;
+pub const NID_whirlpool: u32 = 804;
+pub const NID_cryptopro: u32 = 805;
+pub const NID_cryptocom: u32 = 806;
+pub const NID_id_GostR3411_94_with_GostR3410_2001: u32 = 807;
+pub const NID_id_GostR3411_94_with_GostR3410_94: u32 = 808;
+pub const NID_id_GostR3411_94: u32 = 809;
+pub const NID_id_HMACGostR3411_94: u32 = 810;
+pub const NID_id_GostR3410_2001: u32 = 811;
+pub const NID_id_GostR3410_94: u32 = 812;
+pub const NID_id_Gost28147_89: u32 = 813;
+pub const NID_gost89_cnt: u32 = 814;
+pub const NID_id_Gost28147_89_MAC: u32 = 815;
+pub const NID_id_GostR3411_94_prf: u32 = 816;
+pub const NID_id_GostR3410_2001DH: u32 = 817;
+pub const NID_id_GostR3410_94DH: u32 = 818;
+pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing: u32 = 819;
+pub const NID_id_Gost28147_89_None_KeyMeshing: u32 = 820;
+pub const NID_id_GostR3411_94_TestParamSet: u32 = 821;
+pub const NID_id_GostR3411_94_CryptoProParamSet: u32 = 822;
+pub const NID_id_Gost28147_89_TestParamSet: u32 = 823;
+pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet: u32 = 824;
+pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet: u32 = 825;
+pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet: u32 = 826;
+pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet: u32 = 827;
+pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: u32 = 828;
+pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: u32 = 829;
+pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: u32 = 830;
+pub const NID_id_GostR3410_94_TestParamSet: u32 = 831;
+pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet: u32 = 832;
+pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet: u32 = 833;
+pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet: u32 = 834;
+pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet: u32 = 835;
+pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet: u32 = 836;
+pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet: u32 = 837;
+pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet: u32 = 838;
+pub const NID_id_GostR3410_2001_TestParamSet: u32 = 839;
+pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet: u32 = 840;
+pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet: u32 = 841;
+pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet: u32 = 842;
+pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: u32 = 843;
+pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: u32 = 844;
+pub const NID_id_GostR3410_94_a: u32 = 845;
+pub const NID_id_GostR3410_94_aBis: u32 = 846;
+pub const NID_id_GostR3410_94_b: u32 = 847;
+pub const NID_id_GostR3410_94_bBis: u32 = 848;
+pub const NID_id_Gost28147_89_cc: u32 = 849;
+pub const NID_id_GostR3410_94_cc: u32 = 850;
+pub const NID_id_GostR3410_2001_cc: u32 = 851;
+pub const NID_id_GostR3411_94_with_GostR3410_94_cc: u32 = 852;
+pub const NID_id_GostR3411_94_with_GostR3410_2001_cc: u32 = 853;
+pub const NID_id_GostR3410_2001_ParamSet_cc: u32 = 854;
+pub const NID_hmac: u32 = 855;
+pub const NID_LocalKeySet: u32 = 856;
+pub const NID_freshest_crl: u32 = 857;
+pub const NID_id_on_permanentIdentifier: u32 = 858;
+pub const NID_searchGuide: u32 = 859;
+pub const NID_businessCategory: u32 = 860;
+pub const NID_postalAddress: u32 = 861;
+pub const NID_postOfficeBox: u32 = 862;
+pub const NID_physicalDeliveryOfficeName: u32 = 863;
+pub const NID_telephoneNumber: u32 = 864;
+pub const NID_telexNumber: u32 = 865;
+pub const NID_teletexTerminalIdentifier: u32 = 866;
+pub const NID_facsimileTelephoneNumber: u32 = 867;
+pub const NID_x121Address: u32 = 868;
+pub const NID_internationaliSDNNumber: u32 = 869;
+pub const NID_registeredAddress: u32 = 870;
+pub const NID_destinationIndicator: u32 = 871;
+pub const NID_preferredDeliveryMethod: u32 = 872;
+pub const NID_presentationAddress: u32 = 873;
+pub const NID_supportedApplicationContext: u32 = 874;
+pub const NID_member: u32 = 875;
+pub const NID_owner: u32 = 876;
+pub const NID_roleOccupant: u32 = 877;
+pub const NID_seeAlso: u32 = 878;
+pub const NID_userPassword: u32 = 879;
+pub const NID_userCertificate: u32 = 880;
+pub const NID_cACertificate: u32 = 881;
+pub const NID_authorityRevocationList: u32 = 882;
+pub const NID_certificateRevocationList: u32 = 883;
+pub const NID_crossCertificatePair: u32 = 884;
+pub const NID_enhancedSearchGuide: u32 = 885;
+pub const NID_protocolInformation: u32 = 886;
+pub const NID_distinguishedName: u32 = 887;
+pub const NID_uniqueMember: u32 = 888;
+pub const NID_houseIdentifier: u32 = 889;
+pub const NID_supportedAlgorithms: u32 = 890;
+pub const NID_deltaRevocationList: u32 = 891;
+pub const NID_dmdName: u32 = 892;
+pub const NID_id_alg_PWRI_KEK: u32 = 893;
+pub const NID_cmac: u32 = 894;
+pub const NID_aes_128_gcm: u32 = 895;
+pub const NID_aes_128_ccm: u32 = 896;
+pub const NID_id_aes128_wrap_pad: u32 = 897;
+pub const NID_aes_192_gcm: u32 = 898;
+pub const NID_aes_192_ccm: u32 = 899;
+pub const NID_id_aes192_wrap_pad: u32 = 900;
+pub const NID_aes_256_gcm: u32 = 901;
+pub const NID_aes_256_ccm: u32 = 902;
+pub const NID_id_aes256_wrap_pad: u32 = 903;
+pub const NID_aes_128_ctr: u32 = 904;
+pub const NID_aes_192_ctr: u32 = 905;
+pub const NID_aes_256_ctr: u32 = 906;
+pub const NID_id_camellia128_wrap: u32 = 907;
+pub const NID_id_camellia192_wrap: u32 = 908;
+pub const NID_id_camellia256_wrap: u32 = 909;
+pub const NID_anyExtendedKeyUsage: u32 = 910;
+pub const NID_mgf1: u32 = 911;
+pub const NID_rsassaPss: u32 = 912;
+pub const NID_aes_128_xts: u32 = 913;
+pub const NID_aes_256_xts: u32 = 914;
+pub const NID_rc4_hmac_md5: u32 = 915;
+pub const NID_aes_128_cbc_hmac_sha1: u32 = 916;
+pub const NID_aes_192_cbc_hmac_sha1: u32 = 917;
+pub const NID_aes_256_cbc_hmac_sha1: u32 = 918;
+pub const NID_rsaesOaep: u32 = 919;
+pub const NID_dhpublicnumber: u32 = 920;
+pub const NID_brainpoolP160r1: u32 = 921;
+pub const NID_brainpoolP160t1: u32 = 922;
+pub const NID_brainpoolP192r1: u32 = 923;
+pub const NID_brainpoolP192t1: u32 = 924;
+pub const NID_brainpoolP224r1: u32 = 925;
+pub const NID_brainpoolP224t1: u32 = 926;
+pub const NID_brainpoolP256r1: u32 = 927;
+pub const NID_brainpoolP256t1: u32 = 928;
+pub const NID_brainpoolP320r1: u32 = 929;
+pub const NID_brainpoolP320t1: u32 = 930;
+pub const NID_brainpoolP384r1: u32 = 931;
+pub const NID_brainpoolP384t1: u32 = 932;
+pub const NID_brainpoolP512r1: u32 = 933;
+pub const NID_brainpoolP512t1: u32 = 934;
+pub const NID_pSpecified: u32 = 935;
+pub const NID_dhSinglePass_stdDH_sha1kdf_scheme: u32 = 936;
+pub const NID_dhSinglePass_stdDH_sha224kdf_scheme: u32 = 937;
+pub const NID_dhSinglePass_stdDH_sha256kdf_scheme: u32 = 938;
+pub const NID_dhSinglePass_stdDH_sha384kdf_scheme: u32 = 939;
+pub const NID_dhSinglePass_stdDH_sha512kdf_scheme: u32 = 940;
+pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme: u32 = 941;
+pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme: u32 = 942;
+pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme: u32 = 943;
+pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme: u32 = 944;
+pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme: u32 = 945;
+pub const NID_dh_std_kdf: u32 = 946;
+pub const NID_dh_cofactor_kdf: u32 = 947;
+pub const NID_X25519: u32 = 948;
+pub const NID_ED25519: u32 = 949;
+pub const NID_chacha20_poly1305: u32 = 950;
+pub const NID_kx_rsa: u32 = 951;
+pub const NID_kx_ecdhe: u32 = 952;
+pub const NID_kx_psk: u32 = 953;
+pub const NID_auth_rsa: u32 = 954;
+pub const NID_auth_ecdsa: u32 = 955;
+pub const NID_auth_psk: u32 = 956;
+pub const NID_kx_any: u32 = 957;
+pub const NID_auth_any: u32 = 958;
+pub const EVP_PKEY_NONE: u32 = 0;
+pub const EVP_PKEY_RSA: u32 = 6;
+pub const EVP_PKEY_RSA_PSS: u32 = 912;
+pub const EVP_PKEY_DSA: u32 = 116;
+pub const EVP_PKEY_EC: u32 = 408;
+pub const EVP_PKEY_ED25519: u32 = 949;
+pub const EVP_PKEY_DH: u32 = 28;
+pub const EVP_PKEY_RSA2: u32 = 19;
+pub const EVP_R_BUFFER_TOO_SMALL: u32 = 100;
+pub const EVP_R_COMMAND_NOT_SUPPORTED: u32 = 101;
+pub const EVP_R_DECODE_ERROR: u32 = 102;
+pub const EVP_R_DIFFERENT_KEY_TYPES: u32 = 103;
+pub const EVP_R_DIFFERENT_PARAMETERS: u32 = 104;
+pub const EVP_R_ENCODE_ERROR: u32 = 105;
+pub const EVP_R_EXPECTING_AN_EC_KEY_KEY: u32 = 106;
+pub const EVP_R_EXPECTING_AN_RSA_KEY: u32 = 107;
+pub const EVP_R_EXPECTING_A_DSA_KEY: u32 = 108;
+pub const EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE: u32 = 109;
+pub const EVP_R_INVALID_DIGEST_LENGTH: u32 = 110;
+pub const EVP_R_INVALID_DIGEST_TYPE: u32 = 111;
+pub const EVP_R_INVALID_KEYBITS: u32 = 112;
+pub const EVP_R_INVALID_MGF1_MD: u32 = 113;
+pub const EVP_R_INVALID_OPERATION: u32 = 114;
+pub const EVP_R_INVALID_PADDING_MODE: u32 = 115;
+pub const EVP_R_INVALID_PSS_SALTLEN: u32 = 116;
+pub const EVP_R_KEYS_NOT_SET: u32 = 117;
+pub const EVP_R_MISSING_PARAMETERS: u32 = 118;
+pub const EVP_R_NO_DEFAULT_DIGEST: u32 = 119;
+pub const EVP_R_NO_KEY_SET: u32 = 120;
+pub const EVP_R_NO_MDC2_SUPPORT: u32 = 121;
+pub const EVP_R_NO_NID_FOR_CURVE: u32 = 122;
+pub const EVP_R_NO_OPERATION_SET: u32 = 123;
+pub const EVP_R_NO_PARAMETERS_SET: u32 = 124;
+pub const EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE: u32 = 125;
+pub const EVP_R_OPERATON_NOT_INITIALIZED: u32 = 126;
+pub const EVP_R_UNKNOWN_PUBLIC_KEY_TYPE: u32 = 127;
+pub const EVP_R_UNSUPPORTED_ALGORITHM: u32 = 128;
+pub const EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE: u32 = 129;
+pub const EVP_R_NOT_A_PRIVATE_KEY: u32 = 130;
+pub const EVP_R_INVALID_SIGNATURE: u32 = 131;
+pub const EVP_R_MEMORY_LIMIT_EXCEEDED: u32 = 132;
+pub const EVP_R_INVALID_PARAMETERS: u32 = 133;
+pub const RSA_PKCS1_PADDING: u32 = 1;
+pub const RSA_NO_PADDING: u32 = 3;
+pub const RSA_PKCS1_OAEP_PADDING: u32 = 4;
+pub const RSA_PKCS1_PSS_PADDING: u32 = 6;
+pub const RSA_FLAG_OPAQUE: u32 = 1;
+pub const RSA_FLAG_NO_BLINDING: u32 = 8;
+pub const RSA_FLAG_EXT_PKEY: u32 = 32;
+pub const RSA_3: u32 = 3;
+pub const RSA_F4: u32 = 65537;
+pub const RSA_METHOD_FLAG_NO_CHECK: u32 = 1;
+pub const RSA_R_BAD_ENCODING: u32 = 100;
+pub const RSA_R_BAD_E_VALUE: u32 = 101;
+pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: u32 = 102;
+pub const RSA_R_BAD_PAD_BYTE_COUNT: u32 = 103;
+pub const RSA_R_BAD_RSA_PARAMETERS: u32 = 104;
+pub const RSA_R_BAD_SIGNATURE: u32 = 105;
+pub const RSA_R_BAD_VERSION: u32 = 106;
+pub const RSA_R_BLOCK_TYPE_IS_NOT_01: u32 = 107;
+pub const RSA_R_BN_NOT_INITIALIZED: u32 = 108;
+pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: u32 = 109;
+pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: u32 = 110;
+pub const RSA_R_CRT_VALUES_INCORRECT: u32 = 111;
+pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: u32 = 112;
+pub const RSA_R_DATA_TOO_LARGE: u32 = 113;
+pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: u32 = 114;
+pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: u32 = 115;
+pub const RSA_R_DATA_TOO_SMALL: u32 = 116;
+pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: u32 = 117;
+pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: u32 = 118;
+pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: u32 = 119;
+pub const RSA_R_EMPTY_PUBLIC_KEY: u32 = 120;
+pub const RSA_R_ENCODE_ERROR: u32 = 121;
+pub const RSA_R_FIRST_OCTET_INVALID: u32 = 122;
+pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: u32 = 123;
+pub const RSA_R_INTERNAL_ERROR: u32 = 124;
+pub const RSA_R_INVALID_MESSAGE_LENGTH: u32 = 125;
+pub const RSA_R_KEY_SIZE_TOO_SMALL: u32 = 126;
+pub const RSA_R_LAST_OCTET_INVALID: u32 = 127;
+pub const RSA_R_MODULUS_TOO_LARGE: u32 = 128;
+pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: u32 = 129;
+pub const RSA_R_NO_PUBLIC_EXPONENT: u32 = 130;
+pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: u32 = 131;
+pub const RSA_R_N_NOT_EQUAL_P_Q: u32 = 132;
+pub const RSA_R_OAEP_DECODING_ERROR: u32 = 133;
+pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: u32 = 134;
+pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: u32 = 135;
+pub const RSA_R_PADDING_CHECK_FAILED: u32 = 136;
+pub const RSA_R_PKCS_DECODING_ERROR: u32 = 137;
+pub const RSA_R_SLEN_CHECK_FAILED: u32 = 138;
+pub const RSA_R_SLEN_RECOVERY_FAILED: u32 = 139;
+pub const RSA_R_TOO_LONG: u32 = 140;
+pub const RSA_R_TOO_MANY_ITERATIONS: u32 = 141;
+pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: u32 = 142;
+pub const RSA_R_UNKNOWN_PADDING_TYPE: u32 = 143;
+pub const RSA_R_VALUE_MISSING: u32 = 144;
+pub const RSA_R_WRONG_SIGNATURE_LENGTH: u32 = 145;
+pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: u32 = 146;
+pub const RSA_R_D_OUT_OF_RANGE: u32 = 147;
+pub const RSA_R_BLOCK_TYPE_IS_NOT_02: u32 = 148;
+pub const SHA_CBLOCK: u32 = 64;
+pub const SHA_DIGEST_LENGTH: u32 = 20;
+pub const SHA224_CBLOCK: u32 = 64;
+pub const SHA224_DIGEST_LENGTH: u32 = 28;
+pub const SHA256_CBLOCK: u32 = 64;
+pub const SHA256_DIGEST_LENGTH: u32 = 32;
+pub const SHA384_CBLOCK: u32 = 128;
+pub const SHA384_DIGEST_LENGTH: u32 = 48;
+pub const SHA512_CBLOCK: u32 = 128;
+pub const SHA512_DIGEST_LENGTH: u32 = 64;
+pub const OPENSSL_NPN_UNSUPPORTED: u32 = 0;
+pub const OPENSSL_NPN_NEGOTIATED: u32 = 1;
+pub const OPENSSL_NPN_NO_OVERLAP: u32 = 2;
+pub const OPENSSL_INIT_NO_LOAD_SSL_STRINGS: u32 = 0;
+pub const OPENSSL_INIT_LOAD_SSL_STRINGS: u32 = 0;
+pub const OPENSSL_INIT_SSL_DEFAULT: u32 = 0;
+pub type __off_t = ::std::os::raw::c_long;
+pub type __off64_t = ::std::os::raw::c_long;
+pub type __time_t = ::std::os::raw::c_long;
+pub type time_t = __time_t;
+pub type CRYPTO_THREADID = ::std::os::raw::c_int;
+pub type ASN1_BOOLEAN = ::std::os::raw::c_int;
+pub type ASN1_NULL = ::std::os::raw::c_int;
+pub type ASN1_ITEM = ASN1_ITEM_st;
+pub type ASN1_OBJECT = asn1_object_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct asn1_pctx_st {
+    _unused: [u8; 0],
+}
+pub type ASN1_PCTX = asn1_pctx_st;
+pub type ASN1_BIT_STRING = asn1_string_st;
+pub type ASN1_BMPSTRING = asn1_string_st;
+pub type ASN1_ENUMERATED = asn1_string_st;
+pub type ASN1_GENERALIZEDTIME = asn1_string_st;
+pub type ASN1_GENERALSTRING = asn1_string_st;
+pub type ASN1_IA5STRING = asn1_string_st;
+pub type ASN1_INTEGER = asn1_string_st;
+pub type ASN1_OCTET_STRING = asn1_string_st;
+pub type ASN1_PRINTABLESTRING = asn1_string_st;
+pub type ASN1_STRING = asn1_string_st;
+pub type ASN1_T61STRING = asn1_string_st;
+pub type ASN1_TIME = asn1_string_st;
+pub type ASN1_UNIVERSALSTRING = asn1_string_st;
+pub type ASN1_UTCTIME = asn1_string_st;
+pub type ASN1_UTF8STRING = asn1_string_st;
+pub type ASN1_VISIBLESTRING = asn1_string_st;
+pub type ASN1_TYPE = asn1_type_st;
+pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st;
+pub type DSA_SIG = DSA_SIG_st;
+pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
+pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_POLICY_CACHE_st {
+    _unused: [u8; 0],
+}
+pub type X509_POLICY_CACHE = X509_POLICY_CACHE_st;
+pub type X509_ALGOR = X509_algor_st;
+pub type X509_CRL_INFO = X509_crl_info_st;
+pub type X509_CRL = X509_crl_st;
+pub type X509_NAME = X509_name_st;
+pub type X509_PUBKEY = X509_pubkey_st;
+pub type X509_REQ_INFO = X509_req_info_st;
+pub type X509_REQ = X509_req_st;
+pub type X509_VAL = X509_val_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bignum_ctx {
+    _unused: [u8; 0],
+}
+pub type BN_CTX = bignum_ctx;
+pub type BIGNUM = bignum_st;
+pub type BIO_METHOD = bio_method_st;
+pub type BIO = bio_st;
+pub type BN_GENCB = bn_gencb_st;
+pub type BN_MONT_CTX = bn_mont_ctx_st;
+pub type BUF_MEM = buf_mem_st;
+pub type CBB = cbb_st;
+pub type CBS = cbs_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct conf_st {
+    _unused: [u8; 0],
+}
+pub type CONF = conf_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct crypto_buffer_pool_st {
+    _unused: [u8; 0],
+}
+pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct crypto_buffer_st {
+    _unused: [u8; 0],
+}
+pub type CRYPTO_BUFFER = crypto_buffer_st;
+pub type DH = dh_st;
+pub type DSA = dsa_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ec_group_st {
+    _unused: [u8; 0],
+}
+pub type EC_GROUP = ec_group_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ec_key_st {
+    _unused: [u8; 0],
+}
+pub type EC_KEY = ec_key_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ec_point_st {
+    _unused: [u8; 0],
+}
+pub type EC_POINT = ec_point_st;
+pub type ECDSA_METHOD = ecdsa_method_st;
+pub type ECDSA_SIG = ecdsa_sig_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct engine_st {
+    _unused: [u8; 0],
+}
+pub type ENGINE = engine_st;
+pub type EVP_MD_CTX = env_md_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct env_md_st {
+    _unused: [u8; 0],
+}
+pub type EVP_MD = env_md_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_aead_st {
+    _unused: [u8; 0],
+}
+pub type EVP_AEAD = evp_aead_st;
+pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
+pub type EVP_CIPHER = evp_cipher_st;
+pub type EVP_ENCODE_CTX = evp_encode_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_pkey_asn1_method_st {
+    _unused: [u8; 0],
+}
+pub type EVP_PKEY_ASN1_METHOD = evp_pkey_asn1_method_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_pkey_ctx_st {
+    _unused: [u8; 0],
+}
+pub type EVP_PKEY_CTX = evp_pkey_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_pkey_method_st {
+    _unused: [u8; 0],
+}
+pub type EVP_PKEY_METHOD = evp_pkey_method_st;
+pub type EVP_PKEY = evp_pkey_st;
+pub type HMAC_CTX = hmac_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ossl_init_settings_st {
+    _unused: [u8; 0],
+}
+pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st;
+pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
+pub type RAND_METHOD = rand_meth_st;
+pub type RSA_METHOD = rsa_meth_st;
+pub type RSA = rsa_st;
+pub type SHA256_CTX = sha256_state_st;
+pub type SHA512_CTX = sha512_state_st;
+pub type SHA_CTX = sha_state_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_st {
+    _unused: [u8; 0],
+}
+pub type SSL = ssl_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct st_ERR_FNS {
+    _unused: [u8; 0],
+}
+pub type ERR_FNS = st_ERR_FNS;
+pub type X509V3_CTX = v3_ext_ctx;
+pub type X509_CERT_AUX = x509_cert_aux_st;
+pub type X509_CINF = x509_cinf_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_crl_method_st {
+    _unused: [u8; 0],
+}
+pub type X509_CRL_METHOD = x509_crl_method_st;
+pub type X509 = x509_st;
+pub type OPENSSL_BLOCK = *mut ::std::os::raw::c_void;
+extern "C" {
+    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_has_aes_hardware() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
+}
+extern "C" {
+    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
+}
+extern "C" {
+    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
+}
+extern "C" {
+    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_aead_ctx_st {
+    pub aead: *const EVP_AEAD,
+    pub aead_state: *mut ::std::os::raw::c_void,
+    pub tag_len: u8,
+}
+#[test]
+fn bindgen_test_layout_evp_aead_ctx_st() {
+    assert_eq!(
+        ::std::mem::size_of::<evp_aead_ctx_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(evp_aead_ctx_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_aead_ctx_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_aead_ctx_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_aead_ctx_st>())).aead as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_aead_ctx_st), "::", stringify!(aead))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_aead_ctx_st>())).aead_state as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(evp_aead_ctx_st), "::", stringify!(aead_state))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_aead_ctx_st>())).tag_len as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(evp_aead_ctx_st), "::", stringify!(tag_len))
+    );
+}
+pub type EVP_AEAD_CTX = evp_aead_ctx_st;
+extern "C" {
+    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_new(
+        aead: *const EVP_AEAD,
+        key: *const u8,
+        key_len: usize,
+        tag_len: usize,
+    ) -> *mut EVP_AEAD_CTX;
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_init(
+        ctx: *mut EVP_AEAD_CTX,
+        aead: *const EVP_AEAD,
+        key: *const u8,
+        key_len: usize,
+        tag_len: usize,
+        impl_: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_seal(
+        ctx: *const EVP_AEAD_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out_len: usize,
+        nonce: *const u8,
+        nonce_len: usize,
+        in_: *const u8,
+        in_len: usize,
+        ad: *const u8,
+        ad_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_open(
+        ctx: *const EVP_AEAD_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out_len: usize,
+        nonce: *const u8,
+        nonce_len: usize,
+        in_: *const u8,
+        in_len: usize,
+        ad: *const u8,
+        ad_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_seal_scatter(
+        ctx: *const EVP_AEAD_CTX,
+        out: *mut u8,
+        out_tag: *mut u8,
+        out_tag_len: *mut usize,
+        max_out_tag_len: usize,
+        nonce: *const u8,
+        nonce_len: usize,
+        in_: *const u8,
+        in_len: usize,
+        extra_in: *const u8,
+        extra_in_len: usize,
+        ad: *const u8,
+        ad_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_open_gather(
+        ctx: *const EVP_AEAD_CTX,
+        out: *mut u8,
+        nonce: *const u8,
+        nonce_len: usize,
+        in_: *const u8,
+        in_len: usize,
+        in_tag: *const u8,
+        in_tag_len: usize,
+        ad: *const u8,
+        ad_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_cbc_sha256_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_cbc_sha384_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_null_sha1_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
+}
+extern "C" {
+    pub fn EVP_aead_aes_256_gcm_tls13() -> *const EVP_AEAD;
+}
+pub const evp_aead_direction_t_evp_aead_open: evp_aead_direction_t = 0;
+pub const evp_aead_direction_t_evp_aead_seal: evp_aead_direction_t = 1;
+pub type evp_aead_direction_t = u32;
+extern "C" {
+    pub fn EVP_AEAD_CTX_init_with_direction(
+        ctx: *mut EVP_AEAD_CTX,
+        aead: *const EVP_AEAD,
+        key: *const u8,
+        key_len: usize,
+        tag_len: usize,
+        dir: evp_aead_direction_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_get_iv(
+        ctx: *const EVP_AEAD_CTX,
+        out_iv: *mut *const u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_AEAD_CTX_tag_len(
+        ctx: *const EVP_AEAD_CTX,
+        out_tag_len: *mut usize,
+        in_len: usize,
+        extra_in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+pub type FILE = _IO_FILE;
+pub type va_list = __builtin_va_list;
+pub type _IO_lock_t = ::std::os::raw::c_void;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _IO_marker {
+    pub _next: *mut _IO_marker,
+    pub _sbuf: *mut _IO_FILE,
+    pub _pos: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout__IO_marker() {
+    assert_eq!(
+        ::std::mem::size_of::<_IO_marker>(),
+        24usize,
+        concat!("Size of: ", stringify!(_IO_marker))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<_IO_marker>(),
+        8usize,
+        concat!("Alignment of ", stringify!(_IO_marker))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._next as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(_IO_marker), "::", stringify!(_next))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._sbuf as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(_IO_marker), "::", stringify!(_sbuf))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._pos as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(_IO_marker), "::", stringify!(_pos))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _IO_FILE {
+    pub _flags: ::std::os::raw::c_int,
+    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
+    pub _IO_read_end: *mut ::std::os::raw::c_char,
+    pub _IO_read_base: *mut ::std::os::raw::c_char,
+    pub _IO_write_base: *mut ::std::os::raw::c_char,
+    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
+    pub _IO_write_end: *mut ::std::os::raw::c_char,
+    pub _IO_buf_base: *mut ::std::os::raw::c_char,
+    pub _IO_buf_end: *mut ::std::os::raw::c_char,
+    pub _IO_save_base: *mut ::std::os::raw::c_char,
+    pub _IO_backup_base: *mut ::std::os::raw::c_char,
+    pub _IO_save_end: *mut ::std::os::raw::c_char,
+    pub _markers: *mut _IO_marker,
+    pub _chain: *mut _IO_FILE,
+    pub _fileno: ::std::os::raw::c_int,
+    pub _flags2: ::std::os::raw::c_int,
+    pub _old_offset: __off_t,
+    pub _cur_column: ::std::os::raw::c_ushort,
+    pub _vtable_offset: ::std::os::raw::c_schar,
+    pub _shortbuf: [::std::os::raw::c_char; 1usize],
+    pub _lock: *mut _IO_lock_t,
+    pub _offset: __off64_t,
+    pub __pad1: *mut ::std::os::raw::c_void,
+    pub __pad2: *mut ::std::os::raw::c_void,
+    pub __pad3: *mut ::std::os::raw::c_void,
+    pub __pad4: *mut ::std::os::raw::c_void,
+    pub __pad5: usize,
+    pub _mode: ::std::os::raw::c_int,
+    pub _unused2: [::std::os::raw::c_char; 20usize],
+}
+#[test]
+fn bindgen_test_layout__IO_FILE() {
+    assert_eq!(
+        ::std::mem::size_of::<_IO_FILE>(),
+        216usize,
+        concat!("Size of: ", stringify!(_IO_FILE))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<_IO_FILE>(),
+        8usize,
+        concat!("Alignment of ", stringify!(_IO_FILE))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_ptr as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_read_ptr))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_end as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_read_end))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_base as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_read_base))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_base as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_write_base))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_ptr as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_write_ptr))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_end as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_write_end))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_base as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_buf_base))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_end as *const _ as usize },
+        64usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_buf_end))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_base as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_save_base))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_backup_base as *const _ as usize },
+        80usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_backup_base))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_end as *const _ as usize },
+        88usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_IO_save_end))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._markers as *const _ as usize },
+        96usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_markers))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._chain as *const _ as usize },
+        104usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_chain))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._fileno as *const _ as usize },
+        112usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_fileno))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags2 as *const _ as usize },
+        116usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_flags2))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._old_offset as *const _ as usize },
+        120usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_old_offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._cur_column as *const _ as usize },
+        128usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_cur_column))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._vtable_offset as *const _ as usize },
+        130usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_vtable_offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._shortbuf as *const _ as usize },
+        131usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_shortbuf))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._lock as *const _ as usize },
+        136usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_lock))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._offset as *const _ as usize },
+        144usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad1 as *const _ as usize },
+        152usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(__pad1))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad2 as *const _ as usize },
+        160usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(__pad2))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad3 as *const _ as usize },
+        168usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(__pad3))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad4 as *const _ as usize },
+        176usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(__pad4))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad5 as *const _ as usize },
+        184usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(__pad5))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._mode as *const _ as usize },
+        192usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_mode))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._unused2 as *const _ as usize },
+        196usize,
+        concat!("Offset of field: ", stringify!(_IO_FILE), "::", stringify!(_unused2))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct buf_mem_st {
+    pub length: usize,
+    pub data: *mut ::std::os::raw::c_char,
+    pub max: usize,
+}
+#[test]
+fn bindgen_test_layout_buf_mem_st() {
+    assert_eq!(
+        ::std::mem::size_of::<buf_mem_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(buf_mem_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<buf_mem_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(buf_mem_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<buf_mem_st>())).length as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(buf_mem_st), "::", stringify!(length))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<buf_mem_st>())).data as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(buf_mem_st), "::", stringify!(data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<buf_mem_st>())).max as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(buf_mem_st), "::", stringify!(max))
+    );
+}
+extern "C" {
+    pub fn ERR_load_BIO_strings();
+}
+extern "C" {
+    pub fn ERR_load_ERR_strings();
+}
+extern "C" {
+    pub fn ERR_load_crypto_strings();
+}
+extern "C" {
+    pub fn ERR_load_RAND_strings();
+}
+extern "C" {
+    pub fn ERR_free_strings();
+}
+extern "C" {
+    pub fn ERR_get_error() -> u32;
+}
+extern "C" {
+    pub fn ERR_get_error_line(
+        file: *mut *const ::std::os::raw::c_char,
+        line: *mut ::std::os::raw::c_int,
+    ) -> u32;
+}
+extern "C" {
+    pub fn ERR_get_error_line_data(
+        file: *mut *const ::std::os::raw::c_char,
+        line: *mut ::std::os::raw::c_int,
+        data: *mut *const ::std::os::raw::c_char,
+        flags: *mut ::std::os::raw::c_int,
+    ) -> u32;
+}
+extern "C" {
+    pub fn ERR_peek_error() -> u32;
+}
+extern "C" {
+    pub fn ERR_peek_error_line(
+        file: *mut *const ::std::os::raw::c_char,
+        line: *mut ::std::os::raw::c_int,
+    ) -> u32;
+}
+extern "C" {
+    pub fn ERR_peek_error_line_data(
+        file: *mut *const ::std::os::raw::c_char,
+        line: *mut ::std::os::raw::c_int,
+        data: *mut *const ::std::os::raw::c_char,
+        flags: *mut ::std::os::raw::c_int,
+    ) -> u32;
+}
+extern "C" {
+    pub fn ERR_peek_last_error() -> u32;
+}
+extern "C" {
+    pub fn ERR_peek_last_error_line(
+        file: *mut *const ::std::os::raw::c_char,
+        line: *mut ::std::os::raw::c_int,
+    ) -> u32;
+}
+extern "C" {
+    pub fn ERR_peek_last_error_line_data(
+        file: *mut *const ::std::os::raw::c_char,
+        line: *mut ::std::os::raw::c_int,
+        data: *mut *const ::std::os::raw::c_char,
+        flags: *mut ::std::os::raw::c_int,
+    ) -> u32;
+}
+extern "C" {
+    pub fn ERR_error_string_n(packed_error: u32, buf: *mut ::std::os::raw::c_char, len: usize);
+}
+extern "C" {
+    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn ERR_reason_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
+}
+pub type ERR_print_errors_callback_t = ::std::option::Option<
+    unsafe extern "C" fn(
+        str: *const ::std::os::raw::c_char,
+        len: usize,
+        ctx: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    pub fn ERR_print_errors_cb(
+        callback: ERR_print_errors_callback_t,
+        ctx: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn ERR_print_errors_fp(file: *mut FILE);
+}
+extern "C" {
+    pub fn ERR_clear_error();
+}
+extern "C" {
+    pub fn ERR_set_mark() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ERR_pop_to_mark() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ERR_get_next_error_library() -> ::std::os::raw::c_int;
+}
+pub const ERR_LIB_NONE: _bindgen_ty_1 = 1;
+pub const ERR_LIB_SYS: _bindgen_ty_1 = 2;
+pub const ERR_LIB_BN: _bindgen_ty_1 = 3;
+pub const ERR_LIB_RSA: _bindgen_ty_1 = 4;
+pub const ERR_LIB_DH: _bindgen_ty_1 = 5;
+pub const ERR_LIB_EVP: _bindgen_ty_1 = 6;
+pub const ERR_LIB_BUF: _bindgen_ty_1 = 7;
+pub const ERR_LIB_OBJ: _bindgen_ty_1 = 8;
+pub const ERR_LIB_PEM: _bindgen_ty_1 = 9;
+pub const ERR_LIB_DSA: _bindgen_ty_1 = 10;
+pub const ERR_LIB_X509: _bindgen_ty_1 = 11;
+pub const ERR_LIB_ASN1: _bindgen_ty_1 = 12;
+pub const ERR_LIB_CONF: _bindgen_ty_1 = 13;
+pub const ERR_LIB_CRYPTO: _bindgen_ty_1 = 14;
+pub const ERR_LIB_EC: _bindgen_ty_1 = 15;
+pub const ERR_LIB_SSL: _bindgen_ty_1 = 16;
+pub const ERR_LIB_BIO: _bindgen_ty_1 = 17;
+pub const ERR_LIB_PKCS7: _bindgen_ty_1 = 18;
+pub const ERR_LIB_PKCS8: _bindgen_ty_1 = 19;
+pub const ERR_LIB_X509V3: _bindgen_ty_1 = 20;
+pub const ERR_LIB_RAND: _bindgen_ty_1 = 21;
+pub const ERR_LIB_ENGINE: _bindgen_ty_1 = 22;
+pub const ERR_LIB_OCSP: _bindgen_ty_1 = 23;
+pub const ERR_LIB_UI: _bindgen_ty_1 = 24;
+pub const ERR_LIB_COMP: _bindgen_ty_1 = 25;
+pub const ERR_LIB_ECDSA: _bindgen_ty_1 = 26;
+pub const ERR_LIB_ECDH: _bindgen_ty_1 = 27;
+pub const ERR_LIB_HMAC: _bindgen_ty_1 = 28;
+pub const ERR_LIB_DIGEST: _bindgen_ty_1 = 29;
+pub const ERR_LIB_CIPHER: _bindgen_ty_1 = 30;
+pub const ERR_LIB_HKDF: _bindgen_ty_1 = 31;
+pub const ERR_LIB_USER: _bindgen_ty_1 = 32;
+pub const ERR_NUM_LIBS: _bindgen_ty_1 = 33;
+pub type _bindgen_ty_1 = u32;
+extern "C" {
+    pub fn ERR_remove_state(pid: ::std::os::raw::c_ulong);
+}
+extern "C" {
+    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
+}
+extern "C" {
+    pub fn ERR_func_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn ERR_error_string(
+        packed_error: u32,
+        buf: *mut ::std::os::raw::c_char,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn ERR_clear_system_error();
+}
+extern "C" {
+    pub fn ERR_put_error(
+        library: ::std::os::raw::c_int,
+        unused: ::std::os::raw::c_int,
+        reason: ::std::os::raw::c_int,
+        file: *const ::std::os::raw::c_char,
+        line: ::std::os::raw::c_uint,
+    );
+}
+extern "C" {
+    pub fn ERR_add_error_data(count: ::std::os::raw::c_uint, ...);
+}
+extern "C" {
+    pub fn ERR_add_error_dataf(format: *const ::std::os::raw::c_char, ...);
+}
+pub type OPENSSL_STRING = *mut ::std::os::raw::c_char;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_void {
+    _unused: [u8; 0],
+}
+pub type CRYPTO_EX_DATA = crypto_ex_data_st;
+pub type CRYPTO_EX_free = ::std::option::Option<
+    unsafe extern "C" fn(
+        parent: *mut ::std::os::raw::c_void,
+        ptr: *mut ::std::os::raw::c_void,
+        ad: *mut CRYPTO_EX_DATA,
+        index: ::std::os::raw::c_int,
+        argl: ::std::os::raw::c_long,
+        argp: *mut ::std::os::raw::c_void,
+    ),
+>;
+extern "C" {
+    pub fn CRYPTO_cleanup_all_ex_data();
+}
+pub type CRYPTO_EX_dup = ::std::option::Option<
+    unsafe extern "C" fn(
+        to: *mut CRYPTO_EX_DATA,
+        from: *const CRYPTO_EX_DATA,
+        from_d: *mut *mut ::std::os::raw::c_void,
+        index: ::std::os::raw::c_int,
+        argl: ::std::os::raw::c_long,
+        argp: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type CRYPTO_EX_unused = ::std::os::raw::c_int;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct crypto_ex_data_st {
+    pub sk: *mut stack_st_void,
+}
+#[test]
+fn bindgen_test_layout_crypto_ex_data_st() {
+    assert_eq!(
+        ::std::mem::size_of::<crypto_ex_data_st>(),
+        8usize,
+        concat!("Size of: ", stringify!(crypto_ex_data_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<crypto_ex_data_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(crypto_ex_data_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<crypto_ex_data_st>())).sk as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(crypto_ex_data_st), "::", stringify!(sk))
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union crypto_mutex_st {
+    pub alignment: f64,
+    pub padding: [u8; 56usize],
+    _bindgen_union_align: [u64; 7usize],
+}
+#[test]
+fn bindgen_test_layout_crypto_mutex_st() {
+    assert_eq!(
+        ::std::mem::size_of::<crypto_mutex_st>(),
+        56usize,
+        concat!("Size of: ", stringify!(crypto_mutex_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<crypto_mutex_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(crypto_mutex_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<crypto_mutex_st>())).alignment as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(crypto_mutex_st), "::", stringify!(alignment))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<crypto_mutex_st>())).padding as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(crypto_mutex_st), "::", stringify!(padding))
+    );
+}
+pub type CRYPTO_MUTEX = crypto_mutex_st;
+pub type CRYPTO_refcount_t = u32;
+extern "C" {
+    pub fn CRYPTO_num_locks() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CRYPTO_set_locking_callback(
+        func: ::std::option::Option<
+            unsafe extern "C" fn(
+                mode: ::std::os::raw::c_int,
+                lock_num: ::std::os::raw::c_int,
+                file: *const ::std::os::raw::c_char,
+                line: ::std::os::raw::c_int,
+            ),
+        >,
+    );
+}
+extern "C" {
+    pub fn CRYPTO_set_add_lock_callback(
+        func: ::std::option::Option<
+            unsafe extern "C" fn(
+                num: *mut ::std::os::raw::c_int,
+                amount: ::std::os::raw::c_int,
+                lock_num: ::std::os::raw::c_int,
+                file: *const ::std::os::raw::c_char,
+                line: ::std::os::raw::c_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+    );
+}
+extern "C" {
+    pub fn CRYPTO_get_locking_callback() -> ::std::option::Option<unsafe extern "C" fn()>;
+}
+extern "C" {
+    pub fn CRYPTO_get_lock_name(lock_num: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn CRYPTO_THREADID_set_callback(
+        threadid_func: ::std::option::Option<unsafe extern "C" fn(threadid: *mut CRYPTO_THREADID)>,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::std::os::raw::c_ulong);
+}
+extern "C" {
+    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
+}
+extern "C" {
+    pub fn CRYPTO_set_id_callback(
+        func: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_ulong>,
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct CRYPTO_dynlock {
+    pub references: ::std::os::raw::c_int,
+    pub data: *mut CRYPTO_dynlock_value,
+}
+#[test]
+fn bindgen_test_layout_CRYPTO_dynlock() {
+    assert_eq!(
+        ::std::mem::size_of::<CRYPTO_dynlock>(),
+        16usize,
+        concat!("Size of: ", stringify!(CRYPTO_dynlock))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<CRYPTO_dynlock>(),
+        8usize,
+        concat!("Alignment of ", stringify!(CRYPTO_dynlock))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<CRYPTO_dynlock>())).references as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(CRYPTO_dynlock), "::", stringify!(references))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<CRYPTO_dynlock>())).data as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(CRYPTO_dynlock), "::", stringify!(data))
+    );
+}
+extern "C" {
+    pub fn CRYPTO_set_dynlock_create_callback(
+        dyn_create_function: ::std::option::Option<
+            unsafe extern "C" fn(file: *const ::std::os::raw::c_char, line: ::std::os::raw::c_int)
+                -> *mut CRYPTO_dynlock_value,
+        >,
+    );
+}
+extern "C" {
+    pub fn CRYPTO_set_dynlock_lock_callback(
+        dyn_lock_function: ::std::option::Option<
+            unsafe extern "C" fn(
+                mode: ::std::os::raw::c_int,
+                l: *mut CRYPTO_dynlock_value,
+                file: *const ::std::os::raw::c_char,
+                line: ::std::os::raw::c_int,
+            ),
+        >,
+    );
+}
+extern "C" {
+    pub fn CRYPTO_set_dynlock_destroy_callback(
+        dyn_destroy_function: ::std::option::Option<
+            unsafe extern "C" fn(
+                l: *mut CRYPTO_dynlock_value,
+                file: *const ::std::os::raw::c_char,
+                line: ::std::os::raw::c_int,
+            ),
+        >,
+    );
+}
+extern "C" {
+    pub fn CRYPTO_get_dynlock_create_callback(
+    ) -> ::std::option::Option<unsafe extern "C" fn() -> *mut CRYPTO_dynlock_value>;
+}
+extern "C" {
+    pub fn CRYPTO_get_dynlock_lock_callback() -> ::std::option::Option<unsafe extern "C" fn()>;
+}
+extern "C" {
+    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::std::option::Option<unsafe extern "C" fn()>;
+}
+extern "C" {
+    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_free(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_vfree(bio: *mut BIO);
+}
+extern "C" {
+    pub fn BIO_up_ref(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_read(
+        bio: *mut BIO,
+        data: *mut ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_gets(
+        bio: *mut BIO,
+        buf: *mut ::std::os::raw::c_char,
+        size: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_write(
+        bio: *mut BIO,
+        data: *const ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_write_all(
+        bio: *mut BIO,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_puts(bio: *mut BIO, buf: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_flush(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_ctrl(
+        bio: *mut BIO,
+        cmd: ::std::os::raw::c_int,
+        larg: ::std::os::raw::c_long,
+        parg: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    pub fn BIO_ptr_ctrl(
+        bp: *mut BIO,
+        cmd: ::std::os::raw::c_int,
+        larg: ::std::os::raw::c_long,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn BIO_int_ctrl(
+        bp: *mut BIO,
+        cmd: ::std::os::raw::c_int,
+        larg: ::std::os::raw::c_long,
+        iarg: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    pub fn BIO_reset(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_eof(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn BIO_test_flags(bio: *const BIO, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_should_read(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_should_write(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_should_retry(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_should_io_special(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn BIO_set_retry_read(bio: *mut BIO);
+}
+extern "C" {
+    pub fn BIO_set_retry_write(bio: *mut BIO);
+}
+extern "C" {
+    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_clear_retry_flags(bio: *mut BIO);
+}
+extern "C" {
+    pub fn BIO_method_type(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+pub type bio_info_cb = ::std::option::Option<
+    unsafe extern "C" fn(
+        bio: *mut BIO,
+        event: ::std::os::raw::c_int,
+        parg: *const ::std::os::raw::c_char,
+        cmd: ::std::os::raw::c_int,
+        larg: ::std::os::raw::c_long,
+        return_value: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_long,
+>;
+extern "C" {
+    pub fn BIO_callback_ctrl(
+        bio: *mut BIO,
+        cmd: ::std::os::raw::c_int,
+        fp: bio_info_cb,
+    ) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    pub fn BIO_pending(bio: *const BIO) -> usize;
+}
+extern "C" {
+    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
+}
+extern "C" {
+    pub fn BIO_wpending(bio: *const BIO) -> usize;
+}
+extern "C" {
+    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::std::os::raw::c_int)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_number_read(bio: *const BIO) -> usize;
+}
+extern "C" {
+    pub fn BIO_number_written(bio: *const BIO) -> usize;
+}
+extern "C" {
+    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_free_all(bio: *mut BIO);
+}
+extern "C" {
+    pub fn BIO_find_type(bio: *mut BIO, type_: ::std::os::raw::c_int) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_copy_next_retry(bio: *mut BIO);
+}
+extern "C" {
+    pub fn BIO_printf(
+        bio: *mut BIO,
+        format: *const ::std::os::raw::c_char,
+        ...
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_indent(
+        bio: *mut BIO,
+        indent: ::std::os::raw::c_uint,
+        max_indent: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_hexdump(
+        bio: *mut BIO,
+        data: *const u8,
+        len: usize,
+        indent: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ERR_print_errors(bio: *mut BIO);
+}
+extern "C" {
+    pub fn BIO_read_asn1(
+        bio: *mut BIO,
+        out: *mut *mut u8,
+        out_len: *mut usize,
+        max_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_s_mem() -> *const BIO_METHOD;
+}
+extern "C" {
+    pub fn BIO_new_mem_buf(
+        buf: *const ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    ) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_mem_contents(
+        bio: *const BIO,
+        out_contents: *mut *const u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_get_mem_data(
+        bio: *mut BIO,
+        contents: *mut *mut ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_mem_buf(
+        bio: *mut BIO,
+        b: *mut BUF_MEM,
+        take_ownership: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_mem_eof_return(
+        bio: *mut BIO,
+        eof_value: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_s_fd() -> *const BIO_METHOD;
+}
+extern "C" {
+    pub fn BIO_new_fd(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_set_fd(
+        bio: *mut BIO,
+        fd: ::std::os::raw::c_int,
+        close_flag: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_s_file() -> *const BIO_METHOD;
+}
+extern "C" {
+    pub fn BIO_new_file(
+        filename: *const ::std::os::raw::c_char,
+        mode: *const ::std::os::raw::c_char,
+    ) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_new_fp(stream: *mut FILE, close_flag: ::std::os::raw::c_int) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_fp(
+        bio: *mut BIO,
+        file: *mut FILE,
+        close_flag: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_read_filename(
+        bio: *mut BIO,
+        filename: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_write_filename(
+        bio: *mut BIO,
+        filename: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_append_filename(
+        bio: *mut BIO,
+        filename: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_rw_filename(
+        bio: *mut BIO,
+        filename: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_s_socket() -> *const BIO_METHOD;
+}
+extern "C" {
+    pub fn BIO_new_socket(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int)
+        -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_s_connect() -> *const BIO_METHOD;
+}
+extern "C" {
+    pub fn BIO_new_connect(host_and_optional_port: *const ::std::os::raw::c_char) -> *mut BIO;
+}
+extern "C" {
+    pub fn BIO_set_conn_hostname(
+        bio: *mut BIO,
+        host_and_optional_port: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_conn_port(
+        bio: *mut BIO,
+        port_str: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_conn_int_port(
+        bio: *mut BIO,
+        port: *const ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_nbio(bio: *mut BIO, on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_do_connect(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_new_bio_pair(
+        out1: *mut *mut BIO,
+        writebuf1: usize,
+        out2: *mut *mut BIO,
+        writebuf2: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
+}
+extern "C" {
+    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
+}
+extern "C" {
+    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_get_new_index() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_meth_new(
+        type_: ::std::os::raw::c_int,
+        name: *const ::std::os::raw::c_char,
+    ) -> *mut BIO_METHOD;
+}
+extern "C" {
+    pub fn BIO_meth_free(method: *mut BIO_METHOD);
+}
+extern "C" {
+    pub fn BIO_meth_set_create(
+        method: *mut BIO_METHOD,
+        create: ::std::option::Option<
+            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_meth_set_destroy(
+        method: *mut BIO_METHOD,
+        destroy: ::std::option::Option<
+            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_meth_set_write(
+        method: *mut BIO_METHOD,
+        write: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: *mut BIO,
+                arg2: *const ::std::os::raw::c_char,
+                arg3: ::std::os::raw::c_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_meth_set_read(
+        method: *mut BIO_METHOD,
+        read: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: *mut BIO,
+                arg2: *mut ::std::os::raw::c_char,
+                arg3: ::std::os::raw::c_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_meth_set_gets(
+        method: *mut BIO_METHOD,
+        gets: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: *mut BIO,
+                arg2: *mut ::std::os::raw::c_char,
+                arg3: ::std::os::raw::c_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_meth_set_ctrl(
+        method: *mut BIO_METHOD,
+        ctrl: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: *mut BIO,
+                arg2: ::std::os::raw::c_int,
+                arg3: ::std::os::raw::c_long,
+                arg4: *mut ::std::os::raw::c_void,
+            ) -> ::std::os::raw::c_long,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn BIO_set_init(bio: *mut BIO, init: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn BIO_get_init(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_f_base64() -> *const BIO_METHOD;
+}
+extern "C" {
+    pub fn BIO_set_retry_special(bio: *mut BIO);
+}
+extern "C" {
+    pub fn BIO_set_write_buffer_size(
+        bio: *mut BIO,
+        buffer_size: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_meth_set_puts(
+        method: *mut BIO_METHOD,
+        puts: ::std::option::Option<
+            unsafe extern "C" fn(arg1: *mut BIO, arg2: *const ::std::os::raw::c_char)
+                -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bio_method_st {
+    pub type_: ::std::os::raw::c_int,
+    pub name: *const ::std::os::raw::c_char,
+    pub bwrite: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut BIO,
+            arg2: *const ::std::os::raw::c_char,
+            arg3: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub bread: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut BIO,
+            arg2: *mut ::std::os::raw::c_char,
+            arg3: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub bputs: ::std::option::Option<
+        unsafe extern "C" fn(arg1: *mut BIO, arg2: *const ::std::os::raw::c_char)
+            -> ::std::os::raw::c_int,
+    >,
+    pub bgets: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut BIO,
+            arg2: *mut ::std::os::raw::c_char,
+            arg3: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub ctrl: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut BIO,
+            arg2: ::std::os::raw::c_int,
+            arg3: ::std::os::raw::c_long,
+            arg4: *mut ::std::os::raw::c_void,
+        ) -> ::std::os::raw::c_long,
+    >,
+    pub create:
+        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
+    pub destroy:
+        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
+    pub callback_ctrl: ::std::option::Option<
+        unsafe extern "C" fn(arg1: *mut BIO, arg2: ::std::os::raw::c_int, arg3: bio_info_cb)
+            -> ::std::os::raw::c_long,
+    >,
+}
+#[test]
+fn bindgen_test_layout_bio_method_st() {
+    assert_eq!(
+        ::std::mem::size_of::<bio_method_st>(),
+        80usize,
+        concat!("Size of: ", stringify!(bio_method_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<bio_method_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(bio_method_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).type_ as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(type_))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).name as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(name))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).bwrite as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(bwrite))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).bread as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(bread))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).bputs as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(bputs))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).bgets as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(bgets))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).ctrl as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(ctrl))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).create as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(create))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).destroy as *const _ as usize },
+        64usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(destroy))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_method_st>())).callback_ctrl as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(bio_method_st), "::", stringify!(callback_ctrl))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bio_st {
+    pub method: *const BIO_METHOD,
+    pub init: ::std::os::raw::c_int,
+    pub shutdown: ::std::os::raw::c_int,
+    pub flags: ::std::os::raw::c_int,
+    pub retry_reason: ::std::os::raw::c_int,
+    pub num: ::std::os::raw::c_int,
+    pub references: CRYPTO_refcount_t,
+    pub ptr: *mut ::std::os::raw::c_void,
+    pub next_bio: *mut BIO,
+    pub num_read: usize,
+    pub num_write: usize,
+}
+#[test]
+fn bindgen_test_layout_bio_st() {
+    assert_eq!(::std::mem::size_of::<bio_st>(), 64usize, concat!("Size of: ", stringify!(bio_st)));
+    assert_eq!(
+        ::std::mem::align_of::<bio_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(bio_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).method as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(method))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).init as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(init))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).shutdown as *const _ as usize },
+        12usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(shutdown))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).flags as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).retry_reason as *const _ as usize },
+        20usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(retry_reason))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).num as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(num))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).references as *const _ as usize },
+        28usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(references))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).ptr as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(ptr))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).next_bio as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(next_bio))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).num_read as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(num_read))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bio_st>())).num_write as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(bio_st), "::", stringify!(num_write))
+    );
+}
+extern "C" {
+    pub fn BN_new() -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_init(bn: *mut BIGNUM);
+}
+extern "C" {
+    pub fn BN_free(bn: *mut BIGNUM);
+}
+extern "C" {
+    pub fn BN_clear_free(bn: *mut BIGNUM);
+}
+extern "C" {
+    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_clear(bn: *mut BIGNUM);
+}
+extern "C" {
+    pub fn BN_value_one() -> *const BIGNUM;
+}
+extern "C" {
+    pub fn BN_num_bits(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn BN_zero(bn: *mut BIGNUM);
+}
+extern "C" {
+    pub fn BN_one(bn: *mut BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_set_word(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn BN_is_negative(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
+}
+extern "C" {
+    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_bn2le_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn BN_hex2bn(
+        outp: *mut *mut BIGNUM,
+        in_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn BN_dec2bn(
+        outp: *mut *mut BIGNUM,
+        in_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_asc2bn(
+        outp: *mut *mut BIGNUM,
+        in_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_get_word(bn: *const BIGNUM) -> u64;
+}
+extern "C" {
+    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_CTX_new() -> *mut BN_CTX;
+}
+extern "C" {
+    pub fn BN_CTX_free(ctx: *mut BN_CTX);
+}
+extern "C" {
+    pub fn BN_CTX_start(ctx: *mut BN_CTX);
+}
+extern "C" {
+    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_CTX_end(ctx: *mut BN_CTX);
+}
+extern "C" {
+    pub fn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_add_word(a: *mut BIGNUM, w: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_sub_word(a: *mut BIGNUM, w: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mul(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mul_word(bn: *mut BIGNUM, w: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_div(
+        quotient: *mut BIGNUM,
+        rem: *mut BIGNUM,
+        numerator: *const BIGNUM,
+        divisor: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: u64) -> u64;
+}
+extern "C" {
+    pub fn BN_sqrt(
+        out_sqrt: *mut BIGNUM,
+        in_: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_cmp_word(a: *const BIGNUM, b: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_abs_is_word(bn: *const BIGNUM, w: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_is_zero(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_is_one(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_is_word(bn: *const BIGNUM, w: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_is_odd(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_is_pow2(a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_lshift(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        n: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_rshift(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        n: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_set_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_word(a: *const BIGNUM, w: u64) -> u64;
+}
+extern "C" {
+    pub fn BN_mod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_nnmod(
+        rem: *mut BIGNUM,
+        numerator: *const BIGNUM,
+        divisor: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_add(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_add_quick(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        m: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_sub(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_sub_quick(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        m: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_mul(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_sqr(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_lshift(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        n: ::std::os::raw::c_int,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_lshift_quick(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        n: ::std::os::raw::c_int,
+        m: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_lshift1(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_lshift1_quick(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        m: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_sqrt(
+        in_: *mut BIGNUM,
+        a: *const BIGNUM,
+        p: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_rand(
+        rnd: *mut BIGNUM,
+        bits: ::std::os::raw::c_int,
+        top: ::std::os::raw::c_int,
+        bottom: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_pseudo_rand(
+        rnd: *mut BIGNUM,
+        bits: ::std::os::raw::c_int,
+        top: ::std::os::raw::c_int,
+        bottom: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_rand_range_ex(
+        r: *mut BIGNUM,
+        min_inclusive: u64,
+        max_exclusive: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bn_gencb_st {
+    pub arg: *mut ::std::os::raw::c_void,
+    pub callback: ::std::option::Option<
+        unsafe extern "C" fn(
+            event: ::std::os::raw::c_int,
+            n: ::std::os::raw::c_int,
+            arg1: *mut bn_gencb_st,
+        ) -> ::std::os::raw::c_int,
+    >,
+}
+#[test]
+fn bindgen_test_layout_bn_gencb_st() {
+    assert_eq!(
+        ::std::mem::size_of::<bn_gencb_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(bn_gencb_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<bn_gencb_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(bn_gencb_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bn_gencb_st>())).arg as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(bn_gencb_st), "::", stringify!(arg))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bn_gencb_st>())).callback as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(bn_gencb_st), "::", stringify!(callback))
+    );
+}
+extern "C" {
+    pub fn BN_GENCB_set(
+        callback: *mut BN_GENCB,
+        f: ::std::option::Option<
+            unsafe extern "C" fn(
+                event: ::std::os::raw::c_int,
+                n: ::std::os::raw::c_int,
+                arg1: *mut BN_GENCB,
+            ) -> ::std::os::raw::c_int,
+        >,
+        arg: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn BN_GENCB_call(
+        callback: *mut BN_GENCB,
+        event: ::std::os::raw::c_int,
+        n: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_generate_prime_ex(
+        ret: *mut BIGNUM,
+        bits: ::std::os::raw::c_int,
+        safe: ::std::os::raw::c_int,
+        add: *const BIGNUM,
+        rem: *const BIGNUM,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+pub const bn_primality_result_t_bn_probably_prime: bn_primality_result_t = 0;
+pub const bn_primality_result_t_bn_composite: bn_primality_result_t = 1;
+pub const bn_primality_result_t_bn_non_prime_power_composite: bn_primality_result_t = 2;
+pub type bn_primality_result_t = u32;
+extern "C" {
+    pub fn BN_enhanced_miller_rabin_primality_test(
+        out_result: *mut bn_primality_result_t,
+        w: *const BIGNUM,
+        iterations: ::std::os::raw::c_int,
+        ctx: *mut BN_CTX,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_primality_test(
+        is_probably_prime: *mut ::std::os::raw::c_int,
+        candidate: *const BIGNUM,
+        checks: ::std::os::raw::c_int,
+        ctx: *mut BN_CTX,
+        do_trial_division: ::std::os::raw::c_int,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_is_prime_fasttest_ex(
+        candidate: *const BIGNUM,
+        checks: ::std::os::raw::c_int,
+        ctx: *mut BN_CTX,
+        do_trial_division: ::std::os::raw::c_int,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_is_prime_ex(
+        candidate: *const BIGNUM,
+        checks: ::std::os::raw::c_int,
+        ctx: *mut BN_CTX,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_gcd(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_inverse(
+        out: *mut BIGNUM,
+        a: *const BIGNUM,
+        n: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_mod_inverse_blinded(
+        out: *mut BIGNUM,
+        out_no_inverse: *mut ::std::os::raw::c_int,
+        a: *const BIGNUM,
+        mont: *const BN_MONT_CTX,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_inverse_odd(
+        out: *mut BIGNUM,
+        out_no_inverse: *mut ::std::os::raw::c_int,
+        a: *const BIGNUM,
+        n: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
+}
+extern "C" {
+    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
+}
+extern "C" {
+    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
+}
+extern "C" {
+    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
+}
+extern "C" {
+    pub fn BN_MONT_CTX_set_locked(
+        pmont: *mut *mut BN_MONT_CTX,
+        lock: *mut CRYPTO_MUTEX,
+        mod_: *const BIGNUM,
+        bn_ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_to_montgomery(
+        ret: *mut BIGNUM,
+        a: *const BIGNUM,
+        mont: *const BN_MONT_CTX,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_from_montgomery(
+        ret: *mut BIGNUM,
+        a: *const BIGNUM,
+        mont: *const BN_MONT_CTX,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_mul_montgomery(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        mont: *const BN_MONT_CTX,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_exp(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        p: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_exp(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        p: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_exp_mont(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        p: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+        mont: *const BN_MONT_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_exp_mont_consttime(
+        rr: *mut BIGNUM,
+        a: *const BIGNUM,
+        p: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+        mont: *const BN_MONT_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
+}
+extern "C" {
+    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn BN_mod_exp_mont_word(
+        r: *mut BIGNUM,
+        a: u64,
+        p: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+        mont: *const BN_MONT_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_mod_exp2_mont(
+        r: *mut BIGNUM,
+        a1: *const BIGNUM,
+        p1: *const BIGNUM,
+        a2: *const BIGNUM,
+        p2: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+        mont: *const BN_MONT_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
+}
+extern "C" {
+    pub fn BN_MONT_CTX_set(
+        mont: *mut BN_MONT_CTX,
+        mod_: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bignum_st {
+    pub d: *mut u64,
+    pub width: ::std::os::raw::c_int,
+    pub dmax: ::std::os::raw::c_int,
+    pub neg: ::std::os::raw::c_int,
+    pub flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_bignum_st() {
+    assert_eq!(
+        ::std::mem::size_of::<bignum_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(bignum_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<bignum_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(bignum_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bignum_st>())).d as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(bignum_st), "::", stringify!(d))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bignum_st>())).width as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(bignum_st), "::", stringify!(width))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bignum_st>())).dmax as *const _ as usize },
+        12usize,
+        concat!("Offset of field: ", stringify!(bignum_st), "::", stringify!(dmax))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bignum_st>())).neg as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(bignum_st), "::", stringify!(neg))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bignum_st>())).flags as *const _ as usize },
+        20usize,
+        concat!("Offset of field: ", stringify!(bignum_st), "::", stringify!(flags))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bn_mont_ctx_st {
+    pub RR: BIGNUM,
+    pub N: BIGNUM,
+    pub n0: [u64; 2usize],
+}
+#[test]
+fn bindgen_test_layout_bn_mont_ctx_st() {
+    assert_eq!(
+        ::std::mem::size_of::<bn_mont_ctx_st>(),
+        64usize,
+        concat!("Size of: ", stringify!(bn_mont_ctx_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<bn_mont_ctx_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(bn_mont_ctx_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bn_mont_ctx_st>())).RR as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(bn_mont_ctx_st), "::", stringify!(RR))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bn_mont_ctx_st>())).N as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(bn_mont_ctx_st), "::", stringify!(N))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<bn_mont_ctx_st>())).n0 as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(bn_mont_ctx_st), "::", stringify!(n0))
+    );
+}
+extern "C" {
+    pub fn BN_num_bits_word(l: u64) -> ::std::os::raw::c_uint;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct asn1_object_st {
+    pub sn: *const ::std::os::raw::c_char,
+    pub ln: *const ::std::os::raw::c_char,
+    pub nid: ::std::os::raw::c_int,
+    pub length: ::std::os::raw::c_int,
+    pub data: *const ::std::os::raw::c_uchar,
+    pub flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_asn1_object_st() {
+    assert_eq!(
+        ::std::mem::size_of::<asn1_object_st>(),
+        40usize,
+        concat!("Size of: ", stringify!(asn1_object_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<asn1_object_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(asn1_object_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_object_st>())).sn as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(asn1_object_st), "::", stringify!(sn))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_object_st>())).ln as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(asn1_object_st), "::", stringify!(ln))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_object_st>())).nid as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(asn1_object_st), "::", stringify!(nid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_object_st>())).length as *const _ as usize },
+        20usize,
+        concat!("Offset of field: ", stringify!(asn1_object_st), "::", stringify!(length))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_object_st>())).data as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(asn1_object_st), "::", stringify!(data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_object_st>())).flags as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(asn1_object_st), "::", stringify!(flags))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_ASN1_OBJECT {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct asn1_string_st {
+    pub length: ::std::os::raw::c_int,
+    pub type_: ::std::os::raw::c_int,
+    pub data: *mut ::std::os::raw::c_uchar,
+    pub flags: ::std::os::raw::c_long,
+}
+#[test]
+fn bindgen_test_layout_asn1_string_st() {
+    assert_eq!(
+        ::std::mem::size_of::<asn1_string_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(asn1_string_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<asn1_string_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(asn1_string_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_st>())).length as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(asn1_string_st), "::", stringify!(length))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_st>())).type_ as *const _ as usize },
+        4usize,
+        concat!("Offset of field: ", stringify!(asn1_string_st), "::", stringify!(type_))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_st>())).data as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(asn1_string_st), "::", stringify!(data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_st>())).flags as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(asn1_string_st), "::", stringify!(flags))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_ENCODING_st {
+    pub enc: *mut ::std::os::raw::c_uchar,
+    pub len: ::std::os::raw::c_long,
+    pub modified: ::std::os::raw::c_int,
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
+    pub __bindgen_padding_0: [u8; 3usize],
+}
+#[test]
+fn bindgen_test_layout_ASN1_ENCODING_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_ENCODING_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(ASN1_ENCODING_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_ENCODING_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_ENCODING_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ENCODING_st>())).enc as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_ENCODING_st), "::", stringify!(enc))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ENCODING_st>())).len as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_ENCODING_st), "::", stringify!(len))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ENCODING_st>())).modified as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_ENCODING_st), "::", stringify!(modified))
+    );
+}
+impl ASN1_ENCODING_st {
+    #[inline]
+    pub fn alias_only(&self) -> ::std::os::raw::c_uint {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+    }
+    #[inline]
+    pub fn set_alias_only(&mut self, val: ::std::os::raw::c_uint) {
+        unsafe {
+            let val: u32 = ::std::mem::transmute(val);
+            self._bitfield_1.set(0usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn alias_only_on_next_parse(&self) -> ::std::os::raw::c_uint {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+    }
+    #[inline]
+    pub fn set_alias_only_on_next_parse(&mut self, val: ::std::os::raw::c_uint) {
+        unsafe {
+            let val: u32 = ::std::mem::transmute(val);
+            self._bitfield_1.set(1usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_bitfield_1(
+        alias_only: ::std::os::raw::c_uint,
+        alias_only_on_next_parse: ::std::os::raw::c_uint,
+    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
+            Default::default();
+        __bindgen_bitfield_unit.set(0usize, 1u8, {
+            let alias_only: u32 = unsafe { ::std::mem::transmute(alias_only) };
+            alias_only as u64
+        });
+        __bindgen_bitfield_unit.set(1usize, 1u8, {
+            let alias_only_on_next_parse: u32 =
+                unsafe { ::std::mem::transmute(alias_only_on_next_parse) };
+            alias_only_on_next_parse as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+pub type ASN1_ENCODING = ASN1_ENCODING_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct asn1_string_table_st {
+    pub nid: ::std::os::raw::c_int,
+    pub minsize: ::std::os::raw::c_long,
+    pub maxsize: ::std::os::raw::c_long,
+    pub mask: ::std::os::raw::c_ulong,
+    pub flags: ::std::os::raw::c_ulong,
+}
+#[test]
+fn bindgen_test_layout_asn1_string_table_st() {
+    assert_eq!(
+        ::std::mem::size_of::<asn1_string_table_st>(),
+        40usize,
+        concat!("Size of: ", stringify!(asn1_string_table_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<asn1_string_table_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(asn1_string_table_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_table_st>())).nid as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(asn1_string_table_st), "::", stringify!(nid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_table_st>())).minsize as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(asn1_string_table_st), "::", stringify!(minsize))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_table_st>())).maxsize as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(asn1_string_table_st), "::", stringify!(maxsize))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_table_st>())).mask as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(asn1_string_table_st), "::", stringify!(mask))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_string_table_st>())).flags as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(asn1_string_table_st), "::", stringify!(flags))
+    );
+}
+pub type ASN1_STRING_TABLE = asn1_string_table_st;
+pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
+pub type ASN1_TLC = ASN1_TLC_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_VALUE_st {
+    _unused: [u8; 0],
+}
+pub type ASN1_VALUE = ASN1_VALUE_st;
+pub type i2d_of_void = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const ::std::os::raw::c_void,
+        arg2: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type ASN1_ITEM_EXP = ASN1_ITEM;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct asn1_type_st {
+    pub type_: ::std::os::raw::c_int,
+    pub value: asn1_type_st__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union asn1_type_st__bindgen_ty_1 {
+    pub ptr: *mut ::std::os::raw::c_char,
+    pub boolean: ASN1_BOOLEAN,
+    pub asn1_string: *mut ASN1_STRING,
+    pub object: *mut ASN1_OBJECT,
+    pub integer: *mut ASN1_INTEGER,
+    pub enumerated: *mut ASN1_ENUMERATED,
+    pub bit_string: *mut ASN1_BIT_STRING,
+    pub octet_string: *mut ASN1_OCTET_STRING,
+    pub printablestring: *mut ASN1_PRINTABLESTRING,
+    pub t61string: *mut ASN1_T61STRING,
+    pub ia5string: *mut ASN1_IA5STRING,
+    pub generalstring: *mut ASN1_GENERALSTRING,
+    pub bmpstring: *mut ASN1_BMPSTRING,
+    pub universalstring: *mut ASN1_UNIVERSALSTRING,
+    pub utctime: *mut ASN1_UTCTIME,
+    pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
+    pub visiblestring: *mut ASN1_VISIBLESTRING,
+    pub utf8string: *mut ASN1_UTF8STRING,
+    pub set: *mut ASN1_STRING,
+    pub sequence: *mut ASN1_STRING,
+    pub asn1_value: *mut ASN1_VALUE,
+    _bindgen_union_align: u64,
+}
+#[test]
+fn bindgen_test_layout_asn1_type_st__bindgen_ty_1() {
+    assert_eq!(
+        ::std::mem::size_of::<asn1_type_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(asn1_type_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<asn1_type_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(asn1_type_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).ptr as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(asn1_type_st__bindgen_ty_1), "::", stringify!(ptr))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).boolean as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(boolean)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).asn1_string as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(asn1_string)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).object as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(object)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).integer as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(integer)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).enumerated as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(enumerated)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).bit_string as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(bit_string)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).octet_string as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(octet_string)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).printablestring as *const _
+                as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(printablestring)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).t61string as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(t61string)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).ia5string as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(ia5string)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).generalstring as *const _
+                as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(generalstring)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).bmpstring as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(bmpstring)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).universalstring as *const _
+                as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(universalstring)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).utctime as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(utctime)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).generalizedtime as *const _
+                as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(generalizedtime)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).visiblestring as *const _
+                as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(visiblestring)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).utf8string as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(utf8string)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).set as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(asn1_type_st__bindgen_ty_1), "::", stringify!(set))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).sequence as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(sequence)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<asn1_type_st__bindgen_ty_1>())).asn1_value as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(asn1_value)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_asn1_type_st() {
+    assert_eq!(
+        ::std::mem::size_of::<asn1_type_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(asn1_type_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<asn1_type_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(asn1_type_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_type_st>())).type_ as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(asn1_type_st), "::", stringify!(type_))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<asn1_type_st>())).value as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(asn1_type_st), "::", stringify!(value))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_ASN1_TYPE {
+    _unused: [u8; 0],
+}
+pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
+extern "C" {
+    #[link_name = "\u{1}ASN1_SEQUENCE_ANY_it"]
+    pub static ASN1_SEQUENCE_ANY_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_SET_ANY_it"]
+    pub static ASN1_SET_ANY_it: ASN1_ITEM;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_algor_st {
+    pub algorithm: *mut ASN1_OBJECT,
+    pub parameter: *mut ASN1_TYPE,
+}
+#[test]
+fn bindgen_test_layout_X509_algor_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509_algor_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(X509_algor_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_algor_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_algor_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_algor_st>())).algorithm as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(X509_algor_st), "::", stringify!(algorithm))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_algor_st>())).parameter as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(X509_algor_st), "::", stringify!(parameter))
+    );
+}
+extern "C" {
+    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
+}
+extern "C" {
+    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_ANY_it"]
+    pub static ASN1_ANY_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_TYPE_get(a: *mut ASN1_TYPE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_TYPE_set(
+        a: *mut ASN1_TYPE,
+        type_: ::std::os::raw::c_int,
+        value: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn ASN1_TYPE_set1(
+        a: *mut ASN1_TYPE,
+        type_: ::std::os::raw::c_int,
+        value: *const ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_OBJECT_new() -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_OBJECT_it"]
+    pub static ASN1_OBJECT_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
+}
+extern "C" {
+    pub fn ASN1_STRING_free(a: *mut ASN1_STRING);
+}
+extern "C" {
+    pub fn ASN1_STRING_copy(
+        dst: *mut ASN1_STRING,
+        str: *const ASN1_STRING,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_dup(a: *const ASN1_STRING) -> *mut ASN1_STRING;
+}
+extern "C" {
+    pub fn ASN1_STRING_type_new(type_: ::std::os::raw::c_int) -> *mut ASN1_STRING;
+}
+extern "C" {
+    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_set(
+        str: *mut ASN1_STRING,
+        data: *const ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_set0(
+        str: *mut ASN1_STRING,
+        data: *mut ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn ASN1_STRING_length(x: *const ASN1_STRING) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_length_set(x: *mut ASN1_STRING, n: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn ASN1_STRING_type(x: *mut ASN1_STRING) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_data(x: *mut ASN1_STRING) -> *mut ::std::os::raw::c_uchar;
+}
+extern "C" {
+    pub fn ASN1_STRING_get0_data(x: *const ASN1_STRING) -> *const ::std::os::raw::c_uchar;
+}
+extern "C" {
+    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
+}
+extern "C" {
+    pub fn ASN1_BIT_STRING_free(a: *mut ASN1_BIT_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_BIT_STRING_it"]
+    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_BIT_STRING_set(
+        a: *mut ASN1_BIT_STRING,
+        d: *mut ::std::os::raw::c_uchar,
+        length: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_BIT_STRING_set_bit(
+        a: *mut ASN1_BIT_STRING,
+        n: ::std::os::raw::c_int,
+        value: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_BIT_STRING_get_bit(
+        a: *mut ASN1_BIT_STRING,
+        n: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_BIT_STRING_check(
+        a: *mut ASN1_BIT_STRING,
+        flags: *mut ::std::os::raw::c_uchar,
+        flags_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    pub fn ASN1_INTEGER_free(a: *mut ASN1_INTEGER);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_INTEGER_it"]
+    pub static ASN1_INTEGER_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    pub fn ASN1_INTEGER_cmp(
+        x: *const ASN1_INTEGER,
+        y: *const ASN1_INTEGER,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
+}
+extern "C" {
+    pub fn ASN1_ENUMERATED_free(a: *mut ASN1_ENUMERATED);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_ENUMERATED_it"]
+    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, t: time_t) -> *mut ASN1_UTCTIME;
+}
+extern "C" {
+    pub fn ASN1_UTCTIME_adj(
+        s: *mut ASN1_UTCTIME,
+        t: time_t,
+        offset_day: ::std::os::raw::c_int,
+        offset_sec: ::std::os::raw::c_long,
+    ) -> *mut ASN1_UTCTIME;
+}
+extern "C" {
+    pub fn ASN1_UTCTIME_set_string(
+        s: *mut ASN1_UTCTIME,
+        str: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_UTCTIME_cmp_time_t(s: *const ASN1_UTCTIME, t: time_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_GENERALIZEDTIME_set(
+        s: *mut ASN1_GENERALIZEDTIME,
+        t: time_t,
+    ) -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    pub fn ASN1_GENERALIZEDTIME_adj(
+        s: *mut ASN1_GENERALIZEDTIME,
+        t: time_t,
+        offset_day: ::std::os::raw::c_int,
+        offset_sec: ::std::os::raw::c_long,
+    ) -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    pub fn ASN1_GENERALIZEDTIME_set_string(
+        s: *mut ASN1_GENERALIZEDTIME,
+        str: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_TIME_diff(
+        pday: *mut ::std::os::raw::c_int,
+        psec: *mut ::std::os::raw::c_int,
+        from: *const ASN1_TIME,
+        to: *const ASN1_TIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    pub fn ASN1_OCTET_STRING_free(a: *mut ASN1_OCTET_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_OCTET_STRING_it"]
+    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    pub fn ASN1_OCTET_STRING_cmp(
+        a: *const ASN1_OCTET_STRING,
+        b: *const ASN1_OCTET_STRING,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_OCTET_STRING_set(
+        str: *mut ASN1_OCTET_STRING,
+        data: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
+}
+extern "C" {
+    pub fn ASN1_VISIBLESTRING_free(a: *mut ASN1_VISIBLESTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_VISIBLESTRING_it"]
+    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
+}
+extern "C" {
+    pub fn ASN1_UNIVERSALSTRING_free(a: *mut ASN1_UNIVERSALSTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_UNIVERSALSTRING_it"]
+    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
+}
+extern "C" {
+    pub fn ASN1_UTF8STRING_free(a: *mut ASN1_UTF8STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_UTF8STRING_it"]
+    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
+}
+extern "C" {
+    pub fn ASN1_NULL_free(a: *mut ASN1_NULL);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_NULL_it"]
+    pub static ASN1_NULL_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
+}
+extern "C" {
+    pub fn ASN1_BMPSTRING_free(a: *mut ASN1_BMPSTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_BMPSTRING_it"]
+    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_PRINTABLE_new() -> *mut ASN1_STRING;
+}
+extern "C" {
+    pub fn ASN1_PRINTABLE_free(a: *mut ASN1_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_PRINTABLE_it"]
+    pub static ASN1_PRINTABLE_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
+}
+extern "C" {
+    pub fn ASN1_PRINTABLESTRING_free(a: *mut ASN1_PRINTABLESTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_PRINTABLESTRING_it"]
+    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
+}
+extern "C" {
+    pub fn ASN1_T61STRING_free(a: *mut ASN1_T61STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_T61STRING_it"]
+    pub static ASN1_T61STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
+}
+extern "C" {
+    pub fn ASN1_IA5STRING_free(a: *mut ASN1_IA5STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_IA5STRING_it"]
+    pub static ASN1_IA5STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
+}
+extern "C" {
+    pub fn ASN1_GENERALSTRING_free(a: *mut ASN1_GENERALSTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_GENERALSTRING_it"]
+    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
+}
+extern "C" {
+    pub fn ASN1_UTCTIME_free(a: *mut ASN1_UTCTIME);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_UTCTIME_it"]
+    pub static ASN1_UTCTIME_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    pub fn ASN1_GENERALIZEDTIME_free(a: *mut ASN1_GENERALIZEDTIME);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_GENERALIZEDTIME_it"]
+    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
+}
+extern "C" {
+    pub fn ASN1_TIME_free(a: *mut ASN1_TIME);
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_TIME_it"]
+    pub static ASN1_TIME_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_OCTET_STRING_NDEF_it"]
+    pub static ASN1_OCTET_STRING_NDEF_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, t: time_t) -> *mut ASN1_TIME;
+}
+extern "C" {
+    pub fn ASN1_TIME_adj(
+        s: *mut ASN1_TIME,
+        t: time_t,
+        offset_day: ::std::os::raw::c_int,
+        offset_sec: ::std::os::raw::c_long,
+    ) -> *mut ASN1_TIME;
+}
+extern "C" {
+    pub fn ASN1_TIME_check(t: *mut ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_TIME_to_generalizedtime(
+        t: *mut ASN1_TIME,
+        out: *mut *mut ASN1_GENERALIZEDTIME,
+    ) -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    pub fn ASN1_TIME_set_string(
+        s: *mut ASN1_TIME,
+        str: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_OBJECT_create(
+        nid: ::std::os::raw::c_int,
+        data: *mut ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+        sn: *const ::std::os::raw::c_char,
+        ln: *const ::std::os::raw::c_char,
+    ) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    pub fn ASN1_INTEGER_set(
+        a: *mut ASN1_INTEGER,
+        v: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn ASN1_ENUMERATED_set(
+        a: *mut ASN1_ENUMERATED,
+        v: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_ENUMERATED_get(a: *mut ASN1_ENUMERATED) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    pub fn BN_to_ASN1_ENUMERATED(bn: *mut BIGNUM, ai: *mut ASN1_ENUMERATED)
+        -> *mut ASN1_ENUMERATED;
+}
+extern "C" {
+    pub fn ASN1_ENUMERATED_to_BN(ai: *mut ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn ASN1_PRINTABLE_type(
+        s: *const ::std::os::raw::c_uchar,
+        max: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_tag2bit(tag: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
+}
+extern "C" {
+    pub fn ASN1_get_object(
+        pp: *mut *const ::std::os::raw::c_uchar,
+        plength: *mut ::std::os::raw::c_long,
+        ptag: *mut ::std::os::raw::c_int,
+        pclass: *mut ::std::os::raw::c_int,
+        omax: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_put_object(
+        pp: *mut *mut ::std::os::raw::c_uchar,
+        constructed: ::std::os::raw::c_int,
+        length: ::std::os::raw::c_int,
+        tag: ::std::os::raw::c_int,
+        xclass: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn ASN1_put_eoc(pp: *mut *mut ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_object_size(
+        constructed: ::std::os::raw::c_int,
+        length: ::std::os::raw::c_int,
+        tag: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_dup(
+        it: *const ASN1_ITEM,
+        x: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn ASN1_item_d2i_fp(
+        it: *const ASN1_ITEM,
+        in_: *mut FILE,
+        x: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn ASN1_item_i2d_fp(
+        it: *const ASN1_ITEM,
+        out: *mut FILE,
+        x: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_print_ex_fp(
+        fp: *mut FILE,
+        str: *mut ASN1_STRING,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_to_UTF8(
+        out: *mut *mut ::std::os::raw::c_uchar,
+        in_: *mut ASN1_STRING,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_d2i_bio(
+        it: *const ASN1_ITEM,
+        in_: *mut BIO,
+        x: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn ASN1_item_i2d_bio(
+        it: *const ASN1_ITEM,
+        out: *mut BIO,
+        x: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_UTCTIME_print(fp: *mut BIO, a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_GENERALIZEDTIME_print(
+        fp: *mut BIO,
+        a: *const ASN1_GENERALIZEDTIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_TIME_print(fp: *mut BIO, a: *const ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_print(bp: *mut BIO, v: *const ASN1_STRING) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_print_ex(
+        out: *mut BIO,
+        str: *mut ASN1_STRING,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_tag2str(tag: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn ASN1_item_unpack(
+        oct: *mut ASN1_STRING,
+        it: *const ASN1_ITEM,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn ASN1_item_pack(
+        obj: *mut ::std::os::raw::c_void,
+        it: *const ASN1_ITEM,
+        oct: *mut *mut ASN1_OCTET_STRING,
+    ) -> *mut ASN1_STRING;
+}
+extern "C" {
+    pub fn ASN1_STRING_set_default_mask(mask: ::std::os::raw::c_ulong);
+}
+extern "C" {
+    pub fn ASN1_STRING_set_default_mask_asc(
+        p: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_get_default_mask() -> ::std::os::raw::c_ulong;
+}
+extern "C" {
+    pub fn ASN1_mbstring_copy(
+        out: *mut *mut ASN1_STRING,
+        in_: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+        inform: ::std::os::raw::c_int,
+        mask: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_mbstring_ncopy(
+        out: *mut *mut ASN1_STRING,
+        in_: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+        inform: ::std::os::raw::c_int,
+        mask: ::std::os::raw::c_ulong,
+        minsize: ::std::os::raw::c_long,
+        maxsize: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_set_by_NID(
+        out: *mut *mut ASN1_STRING,
+        in_: *const ::std::os::raw::c_uchar,
+        inlen: ::std::os::raw::c_int,
+        inform: ::std::os::raw::c_int,
+        nid: ::std::os::raw::c_int,
+    ) -> *mut ASN1_STRING;
+}
+extern "C" {
+    pub fn ASN1_STRING_TABLE_get(nid: ::std::os::raw::c_int) -> *mut ASN1_STRING_TABLE;
+}
+extern "C" {
+    pub fn ASN1_STRING_TABLE_add(
+        arg1: ::std::os::raw::c_int,
+        arg2: ::std::os::raw::c_long,
+        arg3: ::std::os::raw::c_long,
+        arg4: ::std::os::raw::c_ulong,
+        arg5: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_STRING_TABLE_cleanup();
+}
+extern "C" {
+    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
+}
+extern "C" {
+    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
+}
+extern "C" {
+    pub fn ASN1_item_d2i(
+        val: *mut *mut ASN1_VALUE,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+        it: *const ASN1_ITEM,
+    ) -> *mut ASN1_VALUE;
+}
+extern "C" {
+    pub fn ASN1_item_i2d(
+        val: *mut ASN1_VALUE,
+        out: *mut *mut ::std::os::raw::c_uchar,
+        it: *const ASN1_ITEM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_ndef_i2d(
+        val: *mut ASN1_VALUE,
+        out: *mut *mut ::std::os::raw::c_uchar,
+        it: *const ASN1_ITEM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_generate_nconf(
+        str: *mut ::std::os::raw::c_char,
+        nconf: *mut CONF,
+    ) -> *mut ASN1_TYPE;
+}
+extern "C" {
+    pub fn ASN1_generate_v3(
+        str: *mut ::std::os::raw::c_char,
+        cnf: *mut X509V3_CTX,
+    ) -> *mut ASN1_TYPE;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_TEMPLATE_st {
+    pub flags: ::std::os::raw::c_ulong,
+    pub tag: ::std::os::raw::c_long,
+    pub offset: ::std::os::raw::c_ulong,
+    pub field_name: *const ::std::os::raw::c_char,
+    pub item: *mut ASN1_ITEM_EXP,
+}
+#[test]
+fn bindgen_test_layout_ASN1_TEMPLATE_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_TEMPLATE_st>(),
+        40usize,
+        concat!("Size of: ", stringify!(ASN1_TEMPLATE_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_TEMPLATE_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_TEMPLATE_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TEMPLATE_st>())).flags as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_TEMPLATE_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TEMPLATE_st>())).tag as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_TEMPLATE_st), "::", stringify!(tag))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TEMPLATE_st>())).offset as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_TEMPLATE_st), "::", stringify!(offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TEMPLATE_st>())).field_name as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(ASN1_TEMPLATE_st), "::", stringify!(field_name))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TEMPLATE_st>())).item as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(ASN1_TEMPLATE_st), "::", stringify!(item))
+    );
+}
+pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st;
+pub type ASN1_ADB = ASN1_ADB_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct asn1_must_be_null_st {
+    _unused: [u8; 0],
+}
+pub type ASN1_MUST_BE_NULL = asn1_must_be_null_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_ADB_st {
+    pub flags: ::std::os::raw::c_ulong,
+    pub offset: ::std::os::raw::c_ulong,
+    pub unused: *mut ASN1_MUST_BE_NULL,
+    pub tbl: *const ASN1_ADB_TABLE,
+    pub tblcount: ::std::os::raw::c_long,
+    pub default_tt: *const ASN1_TEMPLATE,
+    pub null_tt: *const ASN1_TEMPLATE,
+}
+#[test]
+fn bindgen_test_layout_ASN1_ADB_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_ADB_st>(),
+        56usize,
+        concat!("Size of: ", stringify!(ASN1_ADB_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_ADB_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_ADB_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_st>())).flags as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_st>())).offset as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_st), "::", stringify!(offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_st>())).unused as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_st), "::", stringify!(unused))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_st>())).tbl as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_st), "::", stringify!(tbl))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_st>())).tblcount as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_st), "::", stringify!(tblcount))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_st>())).default_tt as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_st), "::", stringify!(default_tt))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_st>())).null_tt as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_st), "::", stringify!(null_tt))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_ADB_TABLE_st {
+    pub value: ::std::os::raw::c_long,
+    pub tt: ASN1_TEMPLATE,
+}
+#[test]
+fn bindgen_test_layout_ASN1_ADB_TABLE_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_ADB_TABLE_st>(),
+        48usize,
+        concat!("Size of: ", stringify!(ASN1_ADB_TABLE_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_ADB_TABLE_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_ADB_TABLE_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_TABLE_st>())).value as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_TABLE_st), "::", stringify!(value))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ADB_TABLE_st>())).tt as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_ADB_TABLE_st), "::", stringify!(tt))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_ITEM_st {
+    pub itype: ::std::os::raw::c_char,
+    pub utype: ::std::os::raw::c_long,
+    pub templates: *const ASN1_TEMPLATE,
+    pub tcount: ::std::os::raw::c_long,
+    pub funcs: *const ::std::os::raw::c_void,
+    pub size: ::std::os::raw::c_long,
+    pub sname: *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_ASN1_ITEM_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_ITEM_st>(),
+        56usize,
+        concat!("Size of: ", stringify!(ASN1_ITEM_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_ITEM_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_ITEM_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ITEM_st>())).itype as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_ITEM_st), "::", stringify!(itype))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ITEM_st>())).utype as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_ITEM_st), "::", stringify!(utype))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ITEM_st>())).templates as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_ITEM_st), "::", stringify!(templates))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ITEM_st>())).tcount as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(ASN1_ITEM_st), "::", stringify!(tcount))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ITEM_st>())).funcs as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(ASN1_ITEM_st), "::", stringify!(funcs))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ITEM_st>())).size as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(ASN1_ITEM_st), "::", stringify!(size))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_ITEM_st>())).sname as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(ASN1_ITEM_st), "::", stringify!(sname))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_TLC_st {
+    pub valid: ::std::os::raw::c_char,
+    pub ret: ::std::os::raw::c_int,
+    pub plen: ::std::os::raw::c_long,
+    pub ptag: ::std::os::raw::c_int,
+    pub pclass: ::std::os::raw::c_int,
+    pub hdrlen: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ASN1_TLC_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_TLC_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(ASN1_TLC_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_TLC_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_TLC_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TLC_st>())).valid as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_TLC_st), "::", stringify!(valid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TLC_st>())).ret as *const _ as usize },
+        4usize,
+        concat!("Offset of field: ", stringify!(ASN1_TLC_st), "::", stringify!(ret))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TLC_st>())).plen as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_TLC_st), "::", stringify!(plen))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TLC_st>())).ptag as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_TLC_st), "::", stringify!(ptag))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TLC_st>())).pclass as *const _ as usize },
+        20usize,
+        concat!("Offset of field: ", stringify!(ASN1_TLC_st), "::", stringify!(pclass))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_TLC_st>())).hdrlen as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(ASN1_TLC_st), "::", stringify!(hdrlen))
+    );
+}
+pub type ASN1_new_func = ::std::option::Option<unsafe extern "C" fn() -> *mut ASN1_VALUE>;
+pub type ASN1_free_func = ::std::option::Option<unsafe extern "C" fn(a: *mut ASN1_VALUE)>;
+pub type ASN1_d2i_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        a: *mut *mut ASN1_VALUE,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        length: ::std::os::raw::c_long,
+    ) -> *mut ASN1_VALUE,
+>;
+pub type ASN1_i2d_func = ::std::option::Option<
+    unsafe extern "C" fn(a: *mut ASN1_VALUE, in_: *mut *mut ::std::os::raw::c_uchar)
+        -> ::std::os::raw::c_int,
+>;
+pub type ASN1_ex_d2i = ::std::option::Option<
+    unsafe extern "C" fn(
+        pval: *mut *mut ASN1_VALUE,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+        it: *const ASN1_ITEM,
+        tag: ::std::os::raw::c_int,
+        aclass: ::std::os::raw::c_int,
+        opt: ::std::os::raw::c_char,
+        ctx: *mut ASN1_TLC,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type ASN1_ex_i2d = ::std::option::Option<
+    unsafe extern "C" fn(
+        pval: *mut *mut ASN1_VALUE,
+        out: *mut *mut ::std::os::raw::c_uchar,
+        it: *const ASN1_ITEM,
+        tag: ::std::os::raw::c_int,
+        aclass: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type ASN1_ex_new_func = ::std::option::Option<
+    unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM) -> ::std::os::raw::c_int,
+>;
+pub type ASN1_ex_free_func =
+    ::std::option::Option<unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM)>;
+pub type ASN1_ex_print_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        out: *mut BIO,
+        pval: *mut *mut ASN1_VALUE,
+        indent: ::std::os::raw::c_int,
+        fname: *const ::std::os::raw::c_char,
+        pctx: *const ASN1_PCTX,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type ASN1_primitive_i2c = ::std::option::Option<
+    unsafe extern "C" fn(
+        pval: *mut *mut ASN1_VALUE,
+        cont: *mut ::std::os::raw::c_uchar,
+        putype: *mut ::std::os::raw::c_int,
+        it: *const ASN1_ITEM,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type ASN1_primitive_c2i = ::std::option::Option<
+    unsafe extern "C" fn(
+        pval: *mut *mut ASN1_VALUE,
+        cont: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+        utype: ::std::os::raw::c_int,
+        free_cont: *mut ::std::os::raw::c_char,
+        it: *const ASN1_ITEM,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type ASN1_primitive_print = ::std::option::Option<
+    unsafe extern "C" fn(
+        out: *mut BIO,
+        pval: *mut *mut ASN1_VALUE,
+        it: *const ASN1_ITEM,
+        indent: ::std::os::raw::c_int,
+        pctx: *const ASN1_PCTX,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_COMPAT_FUNCS_st {
+    pub asn1_new: ASN1_new_func,
+    pub asn1_free: ASN1_free_func,
+    pub asn1_d2i: ASN1_d2i_func,
+    pub asn1_i2d: ASN1_i2d_func,
+}
+#[test]
+fn bindgen_test_layout_ASN1_COMPAT_FUNCS_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_COMPAT_FUNCS_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(ASN1_COMPAT_FUNCS_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_COMPAT_FUNCS_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_COMPAT_FUNCS_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_COMPAT_FUNCS_st>())).asn1_new as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_COMPAT_FUNCS_st), "::", stringify!(asn1_new))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_COMPAT_FUNCS_st>())).asn1_free as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_COMPAT_FUNCS_st), "::", stringify!(asn1_free))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_COMPAT_FUNCS_st>())).asn1_d2i as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_COMPAT_FUNCS_st), "::", stringify!(asn1_d2i))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_COMPAT_FUNCS_st>())).asn1_i2d as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(ASN1_COMPAT_FUNCS_st), "::", stringify!(asn1_i2d))
+    );
+}
+pub type ASN1_COMPAT_FUNCS = ASN1_COMPAT_FUNCS_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_EXTERN_FUNCS_st {
+    pub app_data: *mut ::std::os::raw::c_void,
+    pub asn1_ex_new: ASN1_ex_new_func,
+    pub asn1_ex_free: ASN1_ex_free_func,
+    pub asn1_ex_clear: ASN1_ex_free_func,
+    pub asn1_ex_d2i: ASN1_ex_d2i,
+    pub asn1_ex_i2d: ASN1_ex_i2d,
+    pub asn1_ex_print: ASN1_ex_print_func,
+}
+#[test]
+fn bindgen_test_layout_ASN1_EXTERN_FUNCS_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_EXTERN_FUNCS_st>(),
+        56usize,
+        concat!("Size of: ", stringify!(ASN1_EXTERN_FUNCS_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_EXTERN_FUNCS_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_EXTERN_FUNCS_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_EXTERN_FUNCS_st>())).app_data as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_EXTERN_FUNCS_st), "::", stringify!(app_data))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_EXTERN_FUNCS_st>())).asn1_ex_new as *const _ as usize
+        },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_new)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_EXTERN_FUNCS_st>())).asn1_ex_free as *const _ as usize
+        },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_free)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_EXTERN_FUNCS_st>())).asn1_ex_clear as *const _ as usize
+        },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_clear)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_EXTERN_FUNCS_st>())).asn1_ex_d2i as *const _ as usize
+        },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_d2i)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_EXTERN_FUNCS_st>())).asn1_ex_i2d as *const _ as usize
+        },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_i2d)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_EXTERN_FUNCS_st>())).asn1_ex_print as *const _ as usize
+        },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_print)
+        )
+    );
+}
+pub type ASN1_EXTERN_FUNCS = ASN1_EXTERN_FUNCS_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_PRIMITIVE_FUNCS_st {
+    pub app_data: *mut ::std::os::raw::c_void,
+    pub flags: ::std::os::raw::c_ulong,
+    pub prim_new: ASN1_ex_new_func,
+    pub prim_free: ASN1_ex_free_func,
+    pub prim_clear: ASN1_ex_free_func,
+    pub prim_c2i: ASN1_primitive_c2i,
+    pub prim_i2c: ASN1_primitive_i2c,
+    pub prim_print: ASN1_primitive_print,
+}
+#[test]
+fn bindgen_test_layout_ASN1_PRIMITIVE_FUNCS_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_PRIMITIVE_FUNCS_st>(),
+        64usize,
+        concat!("Size of: ", stringify!(ASN1_PRIMITIVE_FUNCS_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_PRIMITIVE_FUNCS_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_PRIMITIVE_FUNCS_st))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_PRIMITIVE_FUNCS_st>())).app_data as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_PRIMITIVE_FUNCS_st),
+            "::",
+            stringify!(app_data)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_PRIMITIVE_FUNCS_st>())).flags as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_PRIMITIVE_FUNCS_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_PRIMITIVE_FUNCS_st>())).prim_new as *const _ as usize
+        },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_PRIMITIVE_FUNCS_st),
+            "::",
+            stringify!(prim_new)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_PRIMITIVE_FUNCS_st>())).prim_free as *const _ as usize
+        },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_PRIMITIVE_FUNCS_st),
+            "::",
+            stringify!(prim_free)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_PRIMITIVE_FUNCS_st>())).prim_clear as *const _ as usize
+        },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_PRIMITIVE_FUNCS_st),
+            "::",
+            stringify!(prim_clear)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_PRIMITIVE_FUNCS_st>())).prim_c2i as *const _ as usize
+        },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_PRIMITIVE_FUNCS_st),
+            "::",
+            stringify!(prim_c2i)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_PRIMITIVE_FUNCS_st>())).prim_i2c as *const _ as usize
+        },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_PRIMITIVE_FUNCS_st),
+            "::",
+            stringify!(prim_i2c)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ASN1_PRIMITIVE_FUNCS_st>())).prim_print as *const _ as usize
+        },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_PRIMITIVE_FUNCS_st),
+            "::",
+            stringify!(prim_print)
+        )
+    );
+}
+pub type ASN1_PRIMITIVE_FUNCS = ASN1_PRIMITIVE_FUNCS_st;
+pub type ASN1_aux_cb = ::std::option::Option<
+    unsafe extern "C" fn(
+        operation: ::std::os::raw::c_int,
+        in_: *mut *mut ASN1_VALUE,
+        it: *const ASN1_ITEM,
+        exarg: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_AUX_st {
+    pub app_data: *mut ::std::os::raw::c_void,
+    pub flags: ::std::os::raw::c_int,
+    pub ref_offset: ::std::os::raw::c_int,
+    pub asn1_cb: ASN1_aux_cb,
+    pub enc_offset: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ASN1_AUX_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_AUX_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(ASN1_AUX_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_AUX_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_AUX_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_AUX_st>())).app_data as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_AUX_st), "::", stringify!(app_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_AUX_st>())).flags as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_AUX_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_AUX_st>())).ref_offset as *const _ as usize },
+        12usize,
+        concat!("Offset of field: ", stringify!(ASN1_AUX_st), "::", stringify!(ref_offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_AUX_st>())).asn1_cb as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_AUX_st), "::", stringify!(asn1_cb))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_AUX_st>())).enc_offset as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(ASN1_AUX_st), "::", stringify!(enc_offset))
+    );
+}
+pub type ASN1_AUX = ASN1_AUX_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_PRINT_ARG_st {
+    pub out: *mut BIO,
+    pub indent: ::std::os::raw::c_int,
+    pub pctx: *const ASN1_PCTX,
+}
+#[test]
+fn bindgen_test_layout_ASN1_PRINT_ARG_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_PRINT_ARG_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(ASN1_PRINT_ARG_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_PRINT_ARG_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_PRINT_ARG_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_PRINT_ARG_st>())).out as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_PRINT_ARG_st), "::", stringify!(out))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_PRINT_ARG_st>())).indent as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_PRINT_ARG_st), "::", stringify!(indent))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_PRINT_ARG_st>())).pctx as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_PRINT_ARG_st), "::", stringify!(pctx))
+    );
+}
+pub type ASN1_PRINT_ARG = ASN1_PRINT_ARG_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_STREAM_ARG_st {
+    pub out: *mut BIO,
+    pub ndef_bio: *mut BIO,
+    pub boundary: *mut *mut ::std::os::raw::c_uchar,
+}
+#[test]
+fn bindgen_test_layout_ASN1_STREAM_ARG_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_STREAM_ARG_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(ASN1_STREAM_ARG_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ASN1_STREAM_ARG_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ASN1_STREAM_ARG_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_STREAM_ARG_st>())).out as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ASN1_STREAM_ARG_st), "::", stringify!(out))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_STREAM_ARG_st>())).ndef_bio as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ASN1_STREAM_ARG_st), "::", stringify!(ndef_bio))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ASN1_STREAM_ARG_st>())).boundary as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ASN1_STREAM_ARG_st), "::", stringify!(boundary))
+    );
+}
+pub type ASN1_STREAM_ARG = ASN1_STREAM_ARG_st;
+extern "C" {
+    #[link_name = "\u{1}ASN1_BOOLEAN_it"]
+    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_TBOOLEAN_it"]
+    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_FBOOLEAN_it"]
+    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}ASN1_SEQUENCE_it"]
+    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
+}
+extern "C" {
+    pub fn ASN1_item_ex_new(
+        pval: *mut *mut ASN1_VALUE,
+        it: *const ASN1_ITEM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_ex_free(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM);
+}
+extern "C" {
+    pub fn ASN1_template_new(
+        pval: *mut *mut ASN1_VALUE,
+        tt: *const ASN1_TEMPLATE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_primitive_new(
+        pval: *mut *mut ASN1_VALUE,
+        it: *const ASN1_ITEM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_template_free(pval: *mut *mut ASN1_VALUE, tt: *const ASN1_TEMPLATE);
+}
+extern "C" {
+    pub fn ASN1_item_ex_d2i(
+        pval: *mut *mut ASN1_VALUE,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+        it: *const ASN1_ITEM,
+        tag: ::std::os::raw::c_int,
+        aclass: ::std::os::raw::c_int,
+        opt: ::std::os::raw::c_char,
+        ctx: *mut ASN1_TLC,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_ex_i2d(
+        pval: *mut *mut ASN1_VALUE,
+        out: *mut *mut ::std::os::raw::c_uchar,
+        it: *const ASN1_ITEM,
+        tag: ::std::os::raw::c_int,
+        aclass: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_primitive_free(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM);
+}
+extern "C" {
+    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
+}
+extern "C" {
+    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DecodeBase64(
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out: usize,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
+}
+extern "C" {
+    pub fn EVP_EncodeUpdate(
+        ctx: *mut EVP_ENCODE_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+        in_: *const u8,
+        in_len: usize,
+    );
+}
+extern "C" {
+    pub fn EVP_EncodeFinal(
+        ctx: *mut EVP_ENCODE_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
+}
+extern "C" {
+    pub fn EVP_DecodeUpdate(
+        ctx: *mut EVP_ENCODE_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DecodeFinal(
+        ctx: *mut EVP_ENCODE_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct evp_encode_ctx_st {
+    pub data_used: ::std::os::raw::c_uint,
+    pub data: [u8; 48usize],
+    pub eof_seen: ::std::os::raw::c_char,
+    pub error_encountered: ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_evp_encode_ctx_st() {
+    assert_eq!(
+        ::std::mem::size_of::<evp_encode_ctx_st>(),
+        56usize,
+        concat!("Size of: ", stringify!(evp_encode_ctx_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_encode_ctx_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(evp_encode_ctx_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_encode_ctx_st>())).data_used as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_encode_ctx_st), "::", stringify!(data_used))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_encode_ctx_st>())).data as *const _ as usize },
+        4usize,
+        concat!("Offset of field: ", stringify!(evp_encode_ctx_st), "::", stringify!(data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_encode_ctx_st>())).eof_seen as *const _ as usize },
+        52usize,
+        concat!("Offset of field: ", stringify!(evp_encode_ctx_st), "::", stringify!(eof_seen))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<evp_encode_ctx_st>())).error_encountered as *const _ as usize
+        },
+        53usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_encode_ctx_st),
+            "::",
+            stringify!(error_encountered)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cbs_st {
+    pub data: *const u8,
+    pub len: usize,
+}
+#[test]
+fn bindgen_test_layout_cbs_st() {
+    assert_eq!(::std::mem::size_of::<cbs_st>(), 16usize, concat!("Size of: ", stringify!(cbs_st)));
+    assert_eq!(
+        ::std::mem::align_of::<cbs_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(cbs_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbs_st>())).data as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(cbs_st), "::", stringify!(data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbs_st>())).len as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(cbs_st), "::", stringify!(len))
+    );
+}
+extern "C" {
+    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
+}
+extern "C" {
+    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_data(cbs: *const CBS) -> *const u8;
+}
+extern "C" {
+    pub fn CBS_len(cbs: *const CBS) -> usize;
+}
+extern "C" {
+    pub fn CBS_stow(
+        cbs: *const CBS,
+        out_ptr: *mut *mut u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_strdup(
+        cbs: *const CBS,
+        out_ptr: *mut *mut ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_asn1(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        tag_value: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_asn1_element(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        tag_value: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_peek_asn1_tag(
+        cbs: *const CBS,
+        tag_value: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_any_asn1(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_tag: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_any_asn1_element(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_tag: *mut ::std::os::raw::c_uint,
+        out_header_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_any_ber_asn1_element(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_tag: *mut ::std::os::raw::c_uint,
+        out_header_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_asn1_bool(
+        cbs: *mut CBS,
+        out: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_optional_asn1(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_present: *mut ::std::os::raw::c_int,
+        tag: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_optional_asn1_octet_string(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_present: *mut ::std::os::raw::c_int,
+        tag: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_optional_asn1_uint64(
+        cbs: *mut CBS,
+        out: *mut u64,
+        tag: ::std::os::raw::c_uint,
+        default_value: u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_get_optional_asn1_bool(
+        cbs: *mut CBS,
+        out: *mut ::std::os::raw::c_int,
+        tag: ::std::os::raw::c_uint,
+        default_value: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_asn1_bitstring_has_bit(
+        cbs: *const CBS,
+        bit: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::std::os::raw::c_char;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cbb_buffer_st {
+    pub buf: *mut u8,
+    pub len: usize,
+    pub cap: usize,
+    pub can_resize: ::std::os::raw::c_char,
+    pub error: ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_cbb_buffer_st() {
+    assert_eq!(
+        ::std::mem::size_of::<cbb_buffer_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(cbb_buffer_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<cbb_buffer_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(cbb_buffer_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_buffer_st>())).buf as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(cbb_buffer_st), "::", stringify!(buf))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_buffer_st>())).len as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(cbb_buffer_st), "::", stringify!(len))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_buffer_st>())).cap as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(cbb_buffer_st), "::", stringify!(cap))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_buffer_st>())).can_resize as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(cbb_buffer_st), "::", stringify!(can_resize))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_buffer_st>())).error as *const _ as usize },
+        25usize,
+        concat!("Offset of field: ", stringify!(cbb_buffer_st), "::", stringify!(error))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cbb_st {
+    pub base: *mut cbb_buffer_st,
+    pub child: *mut CBB,
+    pub offset: usize,
+    pub pending_len_len: u8,
+    pub pending_is_asn1: ::std::os::raw::c_char,
+    pub is_top_level: ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_cbb_st() {
+    assert_eq!(::std::mem::size_of::<cbb_st>(), 32usize, concat!("Size of: ", stringify!(cbb_st)));
+    assert_eq!(
+        ::std::mem::align_of::<cbb_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(cbb_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_st>())).base as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(base))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_st>())).child as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(child))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_st>())).offset as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_st>())).pending_len_len as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(pending_len_len))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_st>())).pending_is_asn1 as *const _ as usize },
+        25usize,
+        concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(pending_is_asn1))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cbb_st>())).is_top_level as *const _ as usize },
+        26usize,
+        concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(is_top_level))
+    );
+}
+extern "C" {
+    pub fn CBB_zero(cbb: *mut CBB);
+}
+extern "C" {
+    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_cleanup(cbb: *mut CBB);
+}
+extern "C" {
+    pub fn CBB_finish(
+        cbb: *mut CBB,
+        out_data: *mut *mut u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_flush(cbb: *mut CBB) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_data(cbb: *const CBB) -> *const u8;
+}
+extern "C" {
+    pub fn CBB_len(cbb: *const CBB) -> usize;
+}
+extern "C" {
+    pub fn CBB_add_u8_length_prefixed(
+        cbb: *mut CBB,
+        out_contents: *mut CBB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_u16_length_prefixed(
+        cbb: *mut CBB,
+        out_contents: *mut CBB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_u24_length_prefixed(
+        cbb: *mut CBB,
+        out_contents: *mut CBB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_asn1(
+        cbb: *mut CBB,
+        out_contents: *mut CBB,
+        tag: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_space(
+        cbb: *mut CBB,
+        out_data: *mut *mut u8,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_discard_child(cbb: *mut CBB);
+}
+extern "C" {
+    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_asn1_octet_string(
+        cbb: *mut CBB,
+        data: *const u8,
+        data_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_add_asn1_oid_from_text(
+        cbb: *mut CBB,
+        text: *const ::std::os::raw::c_char,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cast_key_st {
+    pub data: [u32; 32usize],
+    pub short_key: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_cast_key_st() {
+    assert_eq!(
+        ::std::mem::size_of::<cast_key_st>(),
+        132usize,
+        concat!("Size of: ", stringify!(cast_key_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<cast_key_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(cast_key_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cast_key_st>())).data as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(cast_key_st), "::", stringify!(data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<cast_key_st>())).short_key as *const _ as usize },
+        128usize,
+        concat!("Offset of field: ", stringify!(cast_key_st), "::", stringify!(short_key))
+    );
+}
+pub type CAST_KEY = cast_key_st;
+extern "C" {
+    pub fn CAST_set_key(key: *mut CAST_KEY, len: usize, data: *const u8);
+}
+extern "C" {
+    pub fn CAST_ecb_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        key: *const CAST_KEY,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn CAST_encrypt(data: *mut u32, key: *const CAST_KEY);
+}
+extern "C" {
+    pub fn CAST_decrypt(data: *mut u32, key: *const CAST_KEY);
+}
+extern "C" {
+    pub fn CAST_cbc_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        length: ::std::os::raw::c_long,
+        ks: *const CAST_KEY,
+        iv: *mut u8,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn CAST_cfb64_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        length: ::std::os::raw::c_long,
+        schedule: *const CAST_KEY,
+        ivec: *mut u8,
+        num: *mut ::std::os::raw::c_int,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn CRYPTO_chacha_20(
+        out: *mut u8,
+        in_: *const u8,
+        in_len: usize,
+        key: *const u8,
+        nonce: *const u8,
+        counter: u32,
+    );
+}
+extern "C" {
+    pub fn EVP_rc4() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_des_ede() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_enc_null() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_get_cipherbynid(nid: ::std::os::raw::c_int) -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_copy(
+        out: *mut EVP_CIPHER_CTX,
+        in_: *const EVP_CIPHER_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX);
+}
+extern "C" {
+    pub fn EVP_CipherInit_ex(
+        ctx: *mut EVP_CIPHER_CTX,
+        cipher: *const EVP_CIPHER,
+        engine: *mut ENGINE,
+        key: *const u8,
+        iv: *const u8,
+        enc: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_EncryptInit_ex(
+        ctx: *mut EVP_CIPHER_CTX,
+        cipher: *const EVP_CIPHER,
+        impl_: *mut ENGINE,
+        key: *const u8,
+        iv: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DecryptInit_ex(
+        ctx: *mut EVP_CIPHER_CTX,
+        cipher: *const EVP_CIPHER,
+        impl_: *mut ENGINE,
+        key: *const u8,
+        iv: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_EncryptUpdate(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+        in_: *const u8,
+        in_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_EncryptFinal_ex(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DecryptUpdate(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+        in_: *const u8,
+        in_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DecryptFinal_ex(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut ::std::os::raw::c_uchar,
+        out_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_Cipher(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CipherUpdate(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+        in_: *const u8,
+        in_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CipherFinal_ex(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_ctrl(
+        ctx: *mut EVP_CIPHER_CTX,
+        command: ::std::os::raw::c_int,
+        arg: ::std::os::raw::c_int,
+        ptr: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_set_padding(
+        ctx: *mut EVP_CIPHER_CTX,
+        pad: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_set_key_length(
+        ctx: *mut EVP_CIPHER_CTX,
+        key_len: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
+}
+extern "C" {
+    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
+}
+extern "C" {
+    pub fn EVP_BytesToKey(
+        type_: *const EVP_CIPHER,
+        md: *const EVP_MD,
+        salt: *const u8,
+        data: *const u8,
+        data_len: usize,
+        count: ::std::os::raw::c_uint,
+        key: *mut u8,
+        iv: *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_CipherInit(
+        ctx: *mut EVP_CIPHER_CTX,
+        cipher: *const EVP_CIPHER,
+        key: *const u8,
+        iv: *const u8,
+        enc: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_EncryptInit(
+        ctx: *mut EVP_CIPHER_CTX,
+        cipher: *const EVP_CIPHER,
+        key: *const u8,
+        iv: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DecryptInit(
+        ctx: *mut EVP_CIPHER_CTX,
+        cipher: *const EVP_CIPHER,
+        key: *const u8,
+        iv: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_add_cipher_alias(
+        a: *const ::std::os::raw::c_char,
+        b: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_get_cipherbyname(name: *const ::std::os::raw::c_char) -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
+}
+extern "C" {
+    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_cipher_ctx_st {
+    pub cipher: *const EVP_CIPHER,
+    pub app_data: *mut ::std::os::raw::c_void,
+    pub cipher_data: *mut ::std::os::raw::c_void,
+    pub key_len: ::std::os::raw::c_uint,
+    pub encrypt: ::std::os::raw::c_int,
+    pub flags: u32,
+    pub oiv: [u8; 16usize],
+    pub iv: [u8; 16usize],
+    pub buf: [u8; 32usize],
+    pub buf_len: ::std::os::raw::c_int,
+    pub num: ::std::os::raw::c_uint,
+    pub final_used: ::std::os::raw::c_int,
+    pub block_mask: ::std::os::raw::c_int,
+    pub final_: [u8; 32usize],
+}
+#[test]
+fn bindgen_test_layout_evp_cipher_ctx_st() {
+    assert_eq!(
+        ::std::mem::size_of::<evp_cipher_ctx_st>(),
+        152usize,
+        concat!("Size of: ", stringify!(evp_cipher_ctx_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_cipher_ctx_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_cipher_ctx_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).cipher as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(cipher))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).app_data as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(app_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).cipher_data as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(cipher_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).key_len as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(key_len))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).encrypt as *const _ as usize },
+        28usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(encrypt))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).flags as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).oiv as *const _ as usize },
+        36usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(oiv))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).iv as *const _ as usize },
+        52usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(iv))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).buf as *const _ as usize },
+        68usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(buf))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).buf_len as *const _ as usize },
+        100usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(buf_len))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).num as *const _ as usize },
+        104usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(num))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).final_used as *const _ as usize },
+        108usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(final_used))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).block_mask as *const _ as usize },
+        112usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(block_mask))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_ctx_st>())).final_ as *const _ as usize },
+        116usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_ctx_st), "::", stringify!(final_))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_cipher_info_st {
+    pub cipher: *const EVP_CIPHER,
+    pub iv: [::std::os::raw::c_uchar; 16usize],
+}
+#[test]
+fn bindgen_test_layout_evp_cipher_info_st() {
+    assert_eq!(
+        ::std::mem::size_of::<evp_cipher_info_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(evp_cipher_info_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_cipher_info_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_cipher_info_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_info_st>())).cipher as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_info_st), "::", stringify!(cipher))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_info_st>())).iv as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_info_st), "::", stringify!(iv))
+    );
+}
+pub type EVP_CIPHER_INFO = evp_cipher_info_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_cipher_st {
+    pub nid: ::std::os::raw::c_int,
+    pub block_size: ::std::os::raw::c_uint,
+    pub key_len: ::std::os::raw::c_uint,
+    pub iv_len: ::std::os::raw::c_uint,
+    pub ctx_size: ::std::os::raw::c_uint,
+    pub flags: u32,
+    pub app_data: *mut ::std::os::raw::c_void,
+    pub init: ::std::option::Option<
+        unsafe extern "C" fn(
+            ctx: *mut EVP_CIPHER_CTX,
+            key: *const u8,
+            iv: *const u8,
+            enc: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub cipher: ::std::option::Option<
+        unsafe extern "C" fn(ctx: *mut EVP_CIPHER_CTX, out: *mut u8, in_: *const u8, inl: usize)
+            -> ::std::os::raw::c_int,
+    >,
+    pub cleanup: ::std::option::Option<unsafe extern "C" fn(arg1: *mut EVP_CIPHER_CTX)>,
+    pub ctrl: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut EVP_CIPHER_CTX,
+            type_: ::std::os::raw::c_int,
+            arg: ::std::os::raw::c_int,
+            ptr: *mut ::std::os::raw::c_void,
+        ) -> ::std::os::raw::c_int,
+    >,
+}
+#[test]
+fn bindgen_test_layout_evp_cipher_st() {
+    assert_eq!(
+        ::std::mem::size_of::<evp_cipher_st>(),
+        64usize,
+        concat!("Size of: ", stringify!(evp_cipher_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_cipher_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_cipher_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).nid as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(nid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).block_size as *const _ as usize },
+        4usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(block_size))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).key_len as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(key_len))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).iv_len as *const _ as usize },
+        12usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(iv_len))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).ctx_size as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(ctx_size))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).flags as *const _ as usize },
+        20usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).app_data as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(app_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).init as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(init))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).cipher as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(cipher))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).cleanup as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(cleanup))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_cipher_st>())).ctrl as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(evp_cipher_st), "::", stringify!(ctrl))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_CONF_VALUE {
+    _unused: [u8; 0],
+}
+extern "C" {
+    pub fn OPENSSL_config(config_name: *const ::std::os::raw::c_char);
+}
+extern "C" {
+    pub fn OPENSSL_no_config();
+}
+extern "C" {
+    #[link_name = "\u{1}OPENSSL_ia32cap_P"]
+    pub static mut OPENSSL_ia32cap_P: [u32; 4usize];
+}
+extern "C" {
+    pub fn OPENSSL_malloc(size: usize) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn OPENSSL_free(ptr: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    pub fn OPENSSL_realloc(
+        ptr: *mut ::std::os::raw::c_void,
+        new_size: usize,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn OPENSSL_cleanse(ptr: *mut ::std::os::raw::c_void, len: usize);
+}
+extern "C" {
+    pub fn CRYPTO_memcmp(
+        a: *const ::std::os::raw::c_void,
+        b: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn OPENSSL_hash32(ptr: *const ::std::os::raw::c_void, len: usize) -> u32;
+}
+extern "C" {
+    pub fn OPENSSL_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn OPENSSL_strnlen(s: *const ::std::os::raw::c_char, len: usize) -> usize;
+}
+extern "C" {
+    pub fn OPENSSL_tolower(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn OPENSSL_strcasecmp(
+        a: *const ::std::os::raw::c_char,
+        b: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn OPENSSL_strncasecmp(
+        a: *const ::std::os::raw::c_char,
+        b: *const ::std::os::raw::c_char,
+        n: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_snprintf(
+        buf: *mut ::std::os::raw::c_char,
+        n: usize,
+        format: *const ::std::os::raw::c_char,
+        ...
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BIO_vsnprintf(
+        buf: *mut ::std::os::raw::c_char,
+        n: usize,
+        format: *const ::std::os::raw::c_char,
+        args: *mut __va_list_tag,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CRYPTO_library_init();
+}
+extern "C" {
+    pub fn CRYPTO_is_confidential_build() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CRYPTO_has_asm() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CRYPTO_malloc_init() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn OPENSSL_malloc_init() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn OPENSSL_load_builtin_modules();
+}
+extern "C" {
+    pub fn OPENSSL_init_crypto(
+        opts: u64,
+        settings: *const OPENSSL_INIT_SETTINGS,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn OPENSSL_cleanup();
+}
+extern "C" {
+    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
+}
+extern "C" {
+    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
+}
+extern "C" {
+    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
+}
+extern "C" {
+    pub fn ED25519_sign(
+        out_sig: *mut u8,
+        message: *const u8,
+        message_len: usize,
+        private_key: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ED25519_verify(
+        message: *const u8,
+        message_len: usize,
+        signature: *const u8,
+        public_key: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ED25519_keypair_from_seed(
+        out_public_key: *mut u8,
+        out_private_key: *mut u8,
+        seed: *const u8,
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct DES_cblock_st {
+    pub bytes: [u8; 8usize],
+}
+#[test]
+fn bindgen_test_layout_DES_cblock_st() {
+    assert_eq!(
+        ::std::mem::size_of::<DES_cblock_st>(),
+        8usize,
+        concat!("Size of: ", stringify!(DES_cblock_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<DES_cblock_st>(),
+        1usize,
+        concat!("Alignment of ", stringify!(DES_cblock_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<DES_cblock_st>())).bytes as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(DES_cblock_st), "::", stringify!(bytes))
+    );
+}
+pub type DES_cblock = DES_cblock_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct DES_ks {
+    pub subkeys: [[u32; 2usize]; 16usize],
+}
+#[test]
+fn bindgen_test_layout_DES_ks() {
+    assert_eq!(::std::mem::size_of::<DES_ks>(), 128usize, concat!("Size of: ", stringify!(DES_ks)));
+    assert_eq!(
+        ::std::mem::align_of::<DES_ks>(),
+        4usize,
+        concat!("Alignment of ", stringify!(DES_ks))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<DES_ks>())).subkeys as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(DES_ks), "::", stringify!(subkeys))
+    );
+}
+pub type DES_key_schedule = DES_ks;
+extern "C" {
+    pub fn DES_set_key(key: *const DES_cblock, schedule: *mut DES_key_schedule);
+}
+extern "C" {
+    pub fn DES_set_odd_parity(key: *mut DES_cblock);
+}
+extern "C" {
+    pub fn DES_ecb_encrypt(
+        in_: *const DES_cblock,
+        out: *mut DES_cblock,
+        schedule: *const DES_key_schedule,
+        is_encrypt: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn DES_ncbc_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        len: usize,
+        schedule: *const DES_key_schedule,
+        ivec: *mut DES_cblock,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn DES_ecb3_encrypt(
+        input: *const DES_cblock,
+        output: *mut DES_cblock,
+        ks1: *const DES_key_schedule,
+        ks2: *const DES_key_schedule,
+        ks3: *const DES_key_schedule,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn DES_ede3_cbc_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        len: usize,
+        ks1: *const DES_key_schedule,
+        ks2: *const DES_key_schedule,
+        ks3: *const DES_key_schedule,
+        ivec: *mut DES_cblock,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn DES_ede2_cbc_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        len: usize,
+        ks1: *const DES_key_schedule,
+        ks2: *const DES_key_schedule,
+        ivec: *mut DES_cblock,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
+}
+extern "C" {
+    pub fn DES_ede3_cfb64_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        length: ::std::os::raw::c_long,
+        ks1: *mut DES_key_schedule,
+        ks2: *mut DES_key_schedule,
+        ks3: *mut DES_key_schedule,
+        ivec: *mut DES_cblock,
+        num: *mut ::std::os::raw::c_int,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn DES_ede3_cfb_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        numbits: ::std::os::raw::c_int,
+        length: ::std::os::raw::c_long,
+        ks1: *mut DES_key_schedule,
+        ks2: *mut DES_key_schedule,
+        ks3: *mut DES_key_schedule,
+        ivec: *mut DES_cblock,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    pub fn DES_decrypt3(
+        data: *mut u32,
+        ks1: *const DES_key_schedule,
+        ks2: *const DES_key_schedule,
+        ks3: *const DES_key_schedule,
+    );
+}
+extern "C" {
+    pub fn DES_encrypt3(
+        data: *mut u32,
+        ks1: *const DES_key_schedule,
+        ks2: *const DES_key_schedule,
+        ks3: *const DES_key_schedule,
+    );
+}
+extern "C" {
+    pub fn DH_new() -> *mut DH;
+}
+extern "C" {
+    pub fn DH_free(dh: *mut DH);
+}
+extern "C" {
+    pub fn DH_up_ref(dh: *mut DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_get0_key(
+        dh: *const DH,
+        out_pub_key: *mut *const BIGNUM,
+        out_priv_key: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    pub fn DH_set0_key(
+        dh: *mut DH,
+        pub_key: *mut BIGNUM,
+        priv_key: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_get0_pqg(
+        dh: *const DH,
+        out_p: *mut *const BIGNUM,
+        out_q: *mut *const BIGNUM,
+        out_g: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    pub fn DH_set0_pqg(
+        dh: *mut DH,
+        p: *mut BIGNUM,
+        q: *mut BIGNUM,
+        g: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    pub fn DH_generate_parameters_ex(
+        dh: *mut DH,
+        prime_bits: ::std::os::raw::c_int,
+        generator: ::std::os::raw::c_int,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_generate_key(dh: *mut DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_compute_key(
+        out: *mut u8,
+        peers_key: *const BIGNUM,
+        dh: *mut DH,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_size(dh: *const DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_num_bits(dh: *const DH) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn DH_check(dh: *const DH, out_flags: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_check_pub_key(
+        dh: *const DH,
+        pub_key: *const BIGNUM,
+        out_flags: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
+}
+extern "C" {
+    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_get_ex_new_index(
+        argl: ::std::os::raw::c_long,
+        argp: *mut ::std::os::raw::c_void,
+        unused: *mut CRYPTO_EX_unused,
+        dup_unused: CRYPTO_EX_dup,
+        free_func: CRYPTO_EX_free,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_set_ex_data(
+        d: *mut DH,
+        idx: ::std::os::raw::c_int,
+        arg: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DH_get_ex_data(d: *mut DH, idx: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn DH_generate_parameters(
+        prime_len: ::std::os::raw::c_int,
+        generator: ::std::os::raw::c_int,
+        callback: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: ::std::os::raw::c_int,
+                arg2: ::std::os::raw::c_int,
+                arg3: *mut ::std::os::raw::c_void,
+            ),
+        >,
+        cb_arg: *mut ::std::os::raw::c_void,
+    ) -> *mut DH;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct dh_st {
+    pub p: *mut BIGNUM,
+    pub g: *mut BIGNUM,
+    pub pub_key: *mut BIGNUM,
+    pub priv_key: *mut BIGNUM,
+    pub priv_length: ::std::os::raw::c_uint,
+    pub method_mont_p_lock: CRYPTO_MUTEX,
+    pub method_mont_p: *mut BN_MONT_CTX,
+    pub q: *mut BIGNUM,
+    pub j: *mut BIGNUM,
+    pub seed: *mut ::std::os::raw::c_uchar,
+    pub seedlen: ::std::os::raw::c_int,
+    pub counter: *mut BIGNUM,
+    pub flags: ::std::os::raw::c_int,
+    pub references: CRYPTO_refcount_t,
+    pub ex_data: CRYPTO_EX_DATA,
+}
+#[test]
+fn bindgen_test_layout_dh_st() {
+    assert_eq!(::std::mem::size_of::<dh_st>(), 160usize, concat!("Size of: ", stringify!(dh_st)));
+    assert_eq!(
+        ::std::mem::align_of::<dh_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(dh_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).p as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(p))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).g as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(g))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).pub_key as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(pub_key))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).priv_key as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(priv_key))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).priv_length as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(priv_length))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).method_mont_p_lock as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(method_mont_p_lock))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).method_mont_p as *const _ as usize },
+        96usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(method_mont_p))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).q as *const _ as usize },
+        104usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(q))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).j as *const _ as usize },
+        112usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(j))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).seed as *const _ as usize },
+        120usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(seed))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).seedlen as *const _ as usize },
+        128usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(seedlen))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).counter as *const _ as usize },
+        136usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(counter))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).flags as *const _ as usize },
+        144usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).references as *const _ as usize },
+        148usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(references))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dh_st>())).ex_data as *const _ as usize },
+        152usize,
+        concat!("Offset of field: ", stringify!(dh_st), "::", stringify!(ex_data))
+    );
+}
+extern "C" {
+    pub fn EVP_md4() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_md5() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_sha1() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_sha224() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_sha256() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_sha384() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_sha512() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_md5_sha1() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_get_digestbynid(nid: ::std::os::raw::c_int) -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
+}
+extern "C" {
+    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
+}
+extern "C" {
+    pub fn EVP_MD_CTX_copy_ex(
+        out: *mut EVP_MD_CTX,
+        in_: *const EVP_MD_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestInit_ex(
+        ctx: *mut EVP_MD_CTX,
+        type_: *const EVP_MD,
+        engine: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestUpdate(
+        ctx: *mut EVP_MD_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestFinal_ex(
+        ctx: *mut EVP_MD_CTX,
+        md_out: *mut u8,
+        out_size: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestFinal(
+        ctx: *mut EVP_MD_CTX,
+        md_out: *mut u8,
+        out_size: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_Digest(
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+        md_out: *mut u8,
+        md_out_size: *mut ::std::os::raw::c_uint,
+        type_: *const EVP_MD,
+        impl_: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_MD_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
+}
+extern "C" {
+    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
+}
+extern "C" {
+    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_get_digestbyname(arg1: *const ::std::os::raw::c_char) -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_dss1() -> *const EVP_MD;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
+}
+extern "C" {
+    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_md_pctx_ops {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct env_md_ctx_st {
+    pub digest: *const EVP_MD,
+    pub md_data: *mut ::std::os::raw::c_void,
+    pub pctx: *mut EVP_PKEY_CTX,
+    pub pctx_ops: *const evp_md_pctx_ops,
+}
+#[test]
+fn bindgen_test_layout_env_md_ctx_st() {
+    assert_eq!(
+        ::std::mem::size_of::<env_md_ctx_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(env_md_ctx_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<env_md_ctx_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(env_md_ctx_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<env_md_ctx_st>())).digest as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(env_md_ctx_st), "::", stringify!(digest))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<env_md_ctx_st>())).md_data as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(env_md_ctx_st), "::", stringify!(md_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<env_md_ctx_st>())).pctx as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(env_md_ctx_st), "::", stringify!(pctx))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<env_md_ctx_st>())).pctx_ops as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(env_md_ctx_st), "::", stringify!(pctx_ops))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct openssl_method_common_st {
+    pub references: ::std::os::raw::c_int,
+    pub is_static: ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_openssl_method_common_st() {
+    assert_eq!(
+        ::std::mem::size_of::<openssl_method_common_st>(),
+        8usize,
+        concat!("Size of: ", stringify!(openssl_method_common_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<openssl_method_common_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(openssl_method_common_st))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<openssl_method_common_st>())).references as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(openssl_method_common_st),
+            "::",
+            stringify!(references)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<openssl_method_common_st>())).is_static as *const _ as usize
+        },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(openssl_method_common_st),
+            "::",
+            stringify!(is_static)
+        )
+    );
+}
+extern "C" {
+    pub fn DSA_new() -> *mut DSA;
+}
+extern "C" {
+    pub fn DSA_free(dsa: *mut DSA);
+}
+extern "C" {
+    pub fn DSA_up_ref(dsa: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_get0_key(
+        dsa: *const DSA,
+        out_pub_key: *mut *const BIGNUM,
+        out_priv_key: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    pub fn DSA_get0_pqg(
+        dsa: *const DSA,
+        out_p: *mut *const BIGNUM,
+        out_q: *mut *const BIGNUM,
+        out_g: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    pub fn DSA_set0_key(
+        dsa: *mut DSA,
+        pub_key: *mut BIGNUM,
+        priv_key: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_set0_pqg(
+        dsa: *mut DSA,
+        p: *mut BIGNUM,
+        q: *mut BIGNUM,
+        g: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_generate_parameters_ex(
+        dsa: *mut DSA,
+        bits: ::std::os::raw::c_uint,
+        seed: *const u8,
+        seed_len: usize,
+        out_counter: *mut ::std::os::raw::c_int,
+        out_h: *mut ::std::os::raw::c_ulong,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_generate_key(dsa: *mut DSA) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct DSA_SIG_st {
+    pub r: *mut BIGNUM,
+    pub s: *mut BIGNUM,
+}
+#[test]
+fn bindgen_test_layout_DSA_SIG_st() {
+    assert_eq!(
+        ::std::mem::size_of::<DSA_SIG_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(DSA_SIG_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<DSA_SIG_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(DSA_SIG_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<DSA_SIG_st>())).r as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(DSA_SIG_st), "::", stringify!(r))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<DSA_SIG_st>())).s as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(DSA_SIG_st), "::", stringify!(s))
+    );
+}
+extern "C" {
+    pub fn DSA_SIG_new() -> *mut DSA_SIG;
+}
+extern "C" {
+    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
+}
+extern "C" {
+    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
+}
+extern "C" {
+    pub fn DSA_do_verify(
+        digest: *const u8,
+        digest_len: usize,
+        sig: *mut DSA_SIG,
+        dsa: *const DSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_do_check_signature(
+        out_valid: *mut ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        sig: *mut DSA_SIG,
+        dsa: *const DSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_sign(
+        type_: ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        out_sig: *mut u8,
+        out_siglen: *mut ::std::os::raw::c_uint,
+        dsa: *const DSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_verify(
+        type_: ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        sig: *const u8,
+        sig_len: usize,
+        dsa: *const DSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_check_signature(
+        out_valid: *mut ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        sig: *const u8,
+        sig_len: usize,
+        dsa: *const DSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_size(dsa: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
+}
+extern "C" {
+    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
+}
+extern "C" {
+    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
+}
+extern "C" {
+    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
+}
+extern "C" {
+    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
+}
+extern "C" {
+    pub fn DSA_get_ex_new_index(
+        argl: ::std::os::raw::c_long,
+        argp: *mut ::std::os::raw::c_void,
+        unused: *mut CRYPTO_EX_unused,
+        dup_unused: CRYPTO_EX_dup,
+        free_func: CRYPTO_EX_free,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_set_ex_data(
+        dsa: *mut DSA,
+        idx: ::std::os::raw::c_int,
+        arg: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn DSA_get_ex_data(
+        dsa: *const DSA,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn DSA_generate_parameters(
+        bits: ::std::os::raw::c_int,
+        seed: *mut ::std::os::raw::c_uchar,
+        seed_len: ::std::os::raw::c_int,
+        counter_ret: *mut ::std::os::raw::c_int,
+        h_ret: *mut ::std::os::raw::c_ulong,
+        callback: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: ::std::os::raw::c_int,
+                arg2: ::std::os::raw::c_int,
+                arg3: *mut ::std::os::raw::c_void,
+            ),
+        >,
+        cb_arg: *mut ::std::os::raw::c_void,
+    ) -> *mut DSA;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct dsa_st {
+    pub version: ::std::os::raw::c_long,
+    pub p: *mut BIGNUM,
+    pub q: *mut BIGNUM,
+    pub g: *mut BIGNUM,
+    pub pub_key: *mut BIGNUM,
+    pub priv_key: *mut BIGNUM,
+    pub flags: ::std::os::raw::c_int,
+    pub method_mont_lock: CRYPTO_MUTEX,
+    pub method_mont_p: *mut BN_MONT_CTX,
+    pub method_mont_q: *mut BN_MONT_CTX,
+    pub references: CRYPTO_refcount_t,
+    pub ex_data: CRYPTO_EX_DATA,
+}
+#[test]
+fn bindgen_test_layout_dsa_st() {
+    assert_eq!(::std::mem::size_of::<dsa_st>(), 144usize, concat!("Size of: ", stringify!(dsa_st)));
+    assert_eq!(
+        ::std::mem::align_of::<dsa_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(dsa_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).version as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(version))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).p as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(p))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).q as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(q))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).g as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(g))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).pub_key as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(pub_key))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).priv_key as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(priv_key))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).flags as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).method_mont_lock as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(method_mont_lock))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).method_mont_p as *const _ as usize },
+        112usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(method_mont_p))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).method_mont_q as *const _ as usize },
+        120usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(method_mont_q))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).references as *const _ as usize },
+        128usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(references))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<dsa_st>())).ex_data as *const _ as usize },
+        136usize,
+        concat!("Offset of field: ", stringify!(dsa_st), "::", stringify!(ex_data))
+    );
+}
+pub const point_conversion_form_t_POINT_CONVERSION_COMPRESSED: point_conversion_form_t = 2;
+pub const point_conversion_form_t_POINT_CONVERSION_UNCOMPRESSED: point_conversion_form_t = 4;
+pub const point_conversion_form_t_POINT_CONVERSION_HYBRID: point_conversion_form_t = 6;
+pub type point_conversion_form_t = u32;
+extern "C" {
+    pub fn EC_GROUP_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
+}
+extern "C" {
+    pub fn EC_GROUP_free(group: *mut EC_GROUP);
+}
+extern "C" {
+    pub fn EC_GROUP_dup(a: *const EC_GROUP) -> *mut EC_GROUP;
+}
+extern "C" {
+    pub fn EC_GROUP_cmp(
+        a: *const EC_GROUP,
+        b: *const EC_GROUP,
+        ignored: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
+}
+extern "C" {
+    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
+}
+extern "C" {
+    pub fn EC_GROUP_get_cofactor(
+        group: *const EC_GROUP,
+        cofactor: *mut BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_GROUP_get_curve_GFp(
+        group: *const EC_GROUP,
+        out_p: *mut BIGNUM,
+        out_a: *mut BIGNUM,
+        out_b: *mut BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn EC_curve_nid2nist(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
+}
+extern "C" {
+    pub fn EC_POINT_free(point: *mut EC_POINT);
+}
+extern "C" {
+    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
+}
+extern "C" {
+    pub fn EC_POINT_set_to_infinity(
+        group: *const EC_GROUP,
+        point: *mut EC_POINT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_is_at_infinity(
+        group: *const EC_GROUP,
+        point: *const EC_POINT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_is_on_curve(
+        group: *const EC_GROUP,
+        point: *const EC_POINT,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_cmp(
+        group: *const EC_GROUP,
+        a: *const EC_POINT,
+        b: *const EC_POINT,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_get_affine_coordinates_GFp(
+        group: *const EC_GROUP,
+        point: *const EC_POINT,
+        x: *mut BIGNUM,
+        y: *mut BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_set_affine_coordinates_GFp(
+        group: *const EC_GROUP,
+        point: *mut EC_POINT,
+        x: *const BIGNUM,
+        y: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_point2oct(
+        group: *const EC_GROUP,
+        point: *const EC_POINT,
+        form: point_conversion_form_t,
+        buf: *mut u8,
+        len: usize,
+        ctx: *mut BN_CTX,
+    ) -> usize;
+}
+extern "C" {
+    pub fn EC_POINT_point2cbb(
+        out: *mut CBB,
+        group: *const EC_GROUP,
+        point: *const EC_POINT,
+        form: point_conversion_form_t,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_oct2point(
+        group: *const EC_GROUP,
+        point: *mut EC_POINT,
+        buf: *const u8,
+        len: usize,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_set_compressed_coordinates_GFp(
+        group: *const EC_GROUP,
+        point: *mut EC_POINT,
+        x: *const BIGNUM,
+        y_bit: ::std::os::raw::c_int,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_add(
+        group: *const EC_GROUP,
+        r: *mut EC_POINT,
+        a: *const EC_POINT,
+        b: *const EC_POINT,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_dbl(
+        group: *const EC_GROUP,
+        r: *mut EC_POINT,
+        a: *const EC_POINT,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_invert(
+        group: *const EC_GROUP,
+        a: *mut EC_POINT,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_POINT_mul(
+        group: *const EC_GROUP,
+        r: *mut EC_POINT,
+        n: *const BIGNUM,
+        q: *const EC_POINT,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_GROUP_new_curve_GFp(
+        p: *const BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> *mut EC_GROUP;
+}
+extern "C" {
+    pub fn EC_GROUP_set_generator(
+        group: *mut EC_GROUP,
+        generator: *const EC_POINT,
+        order: *const BIGNUM,
+        cofactor: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_GROUP_get_order(
+        group: *const EC_GROUP,
+        order: *mut BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::std::os::raw::c_int);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ec_method_st {
+    _unused: [u8; 0],
+}
+pub type EC_METHOD = ec_method_st;
+extern "C" {
+    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
+}
+extern "C" {
+    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct EC_builtin_curve {
+    pub nid: ::std::os::raw::c_int,
+    pub comment: *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_EC_builtin_curve() {
+    assert_eq!(
+        ::std::mem::size_of::<EC_builtin_curve>(),
+        16usize,
+        concat!("Size of: ", stringify!(EC_builtin_curve))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<EC_builtin_curve>(),
+        8usize,
+        concat!("Alignment of ", stringify!(EC_builtin_curve))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<EC_builtin_curve>())).nid as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(EC_builtin_curve), "::", stringify!(nid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<EC_builtin_curve>())).comment as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(EC_builtin_curve), "::", stringify!(comment))
+    );
+}
+extern "C" {
+    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
+        -> usize;
+}
+extern "C" {
+    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
+}
+extern "C" {
+    pub fn EC_KEY_new() -> *mut EC_KEY;
+}
+extern "C" {
+    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
+}
+extern "C" {
+    pub fn EC_KEY_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_KEY;
+}
+extern "C" {
+    pub fn EC_KEY_free(key: *mut EC_KEY);
+}
+extern "C" {
+    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
+}
+extern "C" {
+    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
+}
+extern "C" {
+    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
+}
+extern "C" {
+    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, prv: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
+}
+extern "C" {
+    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::std::os::raw::c_uint);
+}
+extern "C" {
+    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
+}
+extern "C" {
+    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
+}
+extern "C" {
+    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_set_public_key_affine_coordinates(
+        key: *mut EC_KEY,
+        x: *mut BIGNUM,
+        y: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
+}
+extern "C" {
+    pub fn EC_KEY_marshal_private_key(
+        cbb: *mut CBB,
+        key: *const EC_KEY,
+        enc_flags: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
+}
+extern "C" {
+    pub fn EC_KEY_marshal_curve_name(
+        cbb: *mut CBB,
+        group: *const EC_GROUP,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
+}
+extern "C" {
+    pub fn EC_KEY_get_ex_new_index(
+        argl: ::std::os::raw::c_long,
+        argp: *mut ::std::os::raw::c_void,
+        unused: *mut CRYPTO_EX_unused,
+        dup_unused: CRYPTO_EX_dup,
+        free_func: CRYPTO_EX_free,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_set_ex_data(
+        r: *mut EC_KEY,
+        idx: ::std::os::raw::c_int,
+        arg: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EC_KEY_get_ex_data(
+        r: *const EC_KEY,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ecdsa_method_st {
+    pub common: openssl_method_common_st,
+    pub app_data: *mut ::std::os::raw::c_void,
+    pub init:
+        ::std::option::Option<unsafe extern "C" fn(key: *mut EC_KEY) -> ::std::os::raw::c_int>,
+    pub finish:
+        ::std::option::Option<unsafe extern "C" fn(key: *mut EC_KEY) -> ::std::os::raw::c_int>,
+    pub group_order_size: ::std::option::Option<unsafe extern "C" fn(key: *const EC_KEY) -> usize>,
+    pub sign: ::std::option::Option<
+        unsafe extern "C" fn(
+            digest: *const u8,
+            digest_len: usize,
+            sig: *mut u8,
+            sig_len: *mut ::std::os::raw::c_uint,
+            eckey: *mut EC_KEY,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ecdsa_method_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ecdsa_method_st>(),
+        56usize,
+        concat!("Size of: ", stringify!(ecdsa_method_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ecdsa_method_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ecdsa_method_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ecdsa_method_st>())).common as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ecdsa_method_st), "::", stringify!(common))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ecdsa_method_st>())).app_data as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ecdsa_method_st), "::", stringify!(app_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ecdsa_method_st>())).init as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(ecdsa_method_st), "::", stringify!(init))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ecdsa_method_st>())).finish as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(ecdsa_method_st), "::", stringify!(finish))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ecdsa_method_st>())).group_order_size as *const _ as usize
+        },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ecdsa_method_st),
+            "::",
+            stringify!(group_order_size)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ecdsa_method_st>())).sign as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(ecdsa_method_st), "::", stringify!(sign))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ecdsa_method_st>())).flags as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(ecdsa_method_st), "::", stringify!(flags))
+    );
+}
+extern "C" {
+    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn ECDH_compute_key(
+        out: *mut ::std::os::raw::c_void,
+        outlen: usize,
+        pub_key: *const EC_POINT,
+        priv_key: *const EC_KEY,
+        kdf: ::std::option::Option<
+            unsafe extern "C" fn(
+                in_: *const ::std::os::raw::c_void,
+                inlen: usize,
+                out: *mut ::std::os::raw::c_void,
+                outlen: *mut usize,
+            ) -> *mut ::std::os::raw::c_void,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ECDH_compute_key_fips(
+        out: *mut u8,
+        out_len: usize,
+        pub_key: *const EC_POINT,
+        priv_key: *const EC_KEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ECDSA_sign(
+        type_: ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        sig: *mut u8,
+        sig_len: *mut ::std::os::raw::c_uint,
+        key: *const EC_KEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ECDSA_verify(
+        type_: ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        sig: *const u8,
+        sig_len: usize,
+        key: *const EC_KEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ecdsa_sig_st {
+    pub r: *mut BIGNUM,
+    pub s: *mut BIGNUM,
+}
+#[test]
+fn bindgen_test_layout_ecdsa_sig_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ecdsa_sig_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(ecdsa_sig_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ecdsa_sig_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ecdsa_sig_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ecdsa_sig_st>())).r as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(ecdsa_sig_st), "::", stringify!(r))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ecdsa_sig_st>())).s as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ecdsa_sig_st), "::", stringify!(s))
+    );
+}
+extern "C" {
+    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
+}
+extern "C" {
+    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
+}
+extern "C" {
+    pub fn ECDSA_SIG_get0(
+        sig: *const ECDSA_SIG,
+        out_r: *mut *const BIGNUM,
+        out_s: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    pub fn ECDSA_SIG_set0(
+        sig: *mut ECDSA_SIG,
+        r: *mut BIGNUM,
+        s: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ECDSA_do_sign(
+        digest: *const u8,
+        digest_len: usize,
+        key: *const EC_KEY,
+    ) -> *mut ECDSA_SIG;
+}
+extern "C" {
+    pub fn ECDSA_do_verify(
+        digest: *const u8,
+        digest_len: usize,
+        sig: *const ECDSA_SIG,
+        key: *const EC_KEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
+}
+extern "C" {
+    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
+}
+extern "C" {
+    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ECDSA_SIG_to_bytes(
+        out_bytes: *mut *mut u8,
+        out_len: *mut usize,
+        sig: *const ECDSA_SIG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
+}
+extern "C" {
+    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
+}
+extern "C" {
+    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
+}
+extern "C" {
+    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_copy_parameters(
+        to: *mut EVP_PKEY,
+        from: *const EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_type(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
+}
+extern "C" {
+    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
+}
+extern "C" {
+    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
+}
+extern "C" {
+    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
+}
+extern "C" {
+    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
+}
+extern "C" {
+    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
+}
+extern "C" {
+    pub fn EVP_PKEY_new_ed25519_public(public_key: *const u8) -> *mut EVP_PKEY;
+}
+extern "C" {
+    pub fn EVP_PKEY_new_ed25519_private(private_key: *const u8) -> *mut EVP_PKEY;
+}
+extern "C" {
+    pub fn EVP_PKEY_assign(
+        pkey: *mut EVP_PKEY,
+        type_: ::std::os::raw::c_int,
+        key: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_set_type(
+        pkey: *mut EVP_PKEY,
+        type_: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
+}
+extern "C" {
+    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
+}
+extern "C" {
+    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestSignInit(
+        ctx: *mut EVP_MD_CTX,
+        pctx: *mut *mut EVP_PKEY_CTX,
+        type_: *const EVP_MD,
+        e: *mut ENGINE,
+        pkey: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestSignUpdate(
+        ctx: *mut EVP_MD_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestSignFinal(
+        ctx: *mut EVP_MD_CTX,
+        out_sig: *mut u8,
+        out_sig_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestSign(
+        ctx: *mut EVP_MD_CTX,
+        out_sig: *mut u8,
+        out_sig_len: *mut usize,
+        data: *const u8,
+        data_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestVerifyInit(
+        ctx: *mut EVP_MD_CTX,
+        pctx: *mut *mut EVP_PKEY_CTX,
+        type_: *const EVP_MD,
+        e: *mut ENGINE,
+        pkey: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestVerifyUpdate(
+        ctx: *mut EVP_MD_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestVerifyFinal(
+        ctx: *mut EVP_MD_CTX,
+        sig: *const u8,
+        sig_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_DigestVerify(
+        ctx: *mut EVP_MD_CTX,
+        sig: *const u8,
+        sig_len: usize,
+        data: *const u8,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_SignInit_ex(
+        ctx: *mut EVP_MD_CTX,
+        type_: *const EVP_MD,
+        impl_: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_SignUpdate(
+        ctx: *mut EVP_MD_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_SignFinal(
+        ctx: *const EVP_MD_CTX,
+        sig: *mut u8,
+        out_sig_len: *mut ::std::os::raw::c_uint,
+        pkey: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_VerifyInit_ex(
+        ctx: *mut EVP_MD_CTX,
+        type_: *const EVP_MD,
+        impl_: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_VerifyUpdate(
+        ctx: *mut EVP_MD_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_VerifyFinal(
+        ctx: *mut EVP_MD_CTX,
+        sig: *const u8,
+        sig_len: usize,
+        pkey: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_print_public(
+        out: *mut BIO,
+        pkey: *const EVP_PKEY,
+        indent: ::std::os::raw::c_int,
+        pctx: *mut ASN1_PCTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_print_private(
+        out: *mut BIO,
+        pkey: *const EVP_PKEY,
+        indent: ::std::os::raw::c_int,
+        pctx: *mut ASN1_PCTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_print_params(
+        out: *mut BIO,
+        pkey: *const EVP_PKEY,
+        indent: ::std::os::raw::c_int,
+        pctx: *mut ASN1_PCTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn PKCS5_PBKDF2_HMAC(
+        password: *const ::std::os::raw::c_char,
+        password_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+        iterations: ::std::os::raw::c_uint,
+        digest: *const EVP_MD,
+        key_len: usize,
+        out_key: *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn PKCS5_PBKDF2_HMAC_SHA1(
+        password: *const ::std::os::raw::c_char,
+        password_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+        iterations: ::std::os::raw::c_uint,
+        key_len: usize,
+        out_key: *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PBE_scrypt(
+        password: *const ::std::os::raw::c_char,
+        password_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+        N: u64,
+        r: u64,
+        p: u64,
+        max_mem: usize,
+        out_key: *mut u8,
+        key_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_new_id(id: ::std::os::raw::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
+}
+extern "C" {
+    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_sign(
+        ctx: *mut EVP_PKEY_CTX,
+        sig: *mut u8,
+        sig_len: *mut usize,
+        digest: *const u8,
+        digest_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_verify(
+        ctx: *mut EVP_PKEY_CTX,
+        sig: *const u8,
+        sig_len: usize,
+        digest: *const u8,
+        digest_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_encrypt(
+        ctx: *mut EVP_PKEY_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_decrypt(
+        ctx: *mut EVP_PKEY_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_verify_recover(
+        ctx: *mut EVP_PKEY_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+        sig: *const u8,
+        siglen: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_derive_set_peer(
+        ctx: *mut EVP_PKEY_CTX,
+        peer: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_derive(
+        ctx: *mut EVP_PKEY_CTX,
+        key: *mut u8,
+        out_key_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_keygen(
+        ctx: *mut EVP_PKEY_CTX,
+        ppkey: *mut *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_set_signature_md(
+        ctx: *mut EVP_PKEY_CTX,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_get_signature_md(
+        ctx: *mut EVP_PKEY_CTX,
+        out_md: *mut *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_set_rsa_padding(
+        ctx: *mut EVP_PKEY_CTX,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_get_rsa_padding(
+        ctx: *mut EVP_PKEY_CTX,
+        out_padding: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen(
+        ctx: *mut EVP_PKEY_CTX,
+        salt_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen(
+        ctx: *mut EVP_PKEY_CTX,
+        out_salt_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_set_rsa_keygen_bits(
+        ctx: *mut EVP_PKEY_CTX,
+        bits: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
+        ctx: *mut EVP_PKEY_CTX,
+        e: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_set_rsa_oaep_md(
+        ctx: *mut EVP_PKEY_CTX,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_get_rsa_oaep_md(
+        ctx: *mut EVP_PKEY_CTX,
+        out_md: *mut *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_set_rsa_mgf1_md(
+        ctx: *mut EVP_PKEY_CTX,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_get_rsa_mgf1_md(
+        ctx: *mut EVP_PKEY_CTX,
+        out_md: *mut *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_set0_rsa_oaep_label(
+        ctx: *mut EVP_PKEY_CTX,
+        label: *mut u8,
+        label_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKEY_CTX_get0_rsa_oaep_label(
+        ctx: *mut EVP_PKEY_CTX,
+        out_label: *mut *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn OPENSSL_add_all_algorithms_conf();
+}
+extern "C" {
+    pub fn EVP_cleanup();
+}
+extern "C" {
+    pub fn EVP_CIPHER_do_all_sorted(
+        callback: ::std::option::Option<
+            unsafe extern "C" fn(
+                cipher: *const EVP_CIPHER,
+                name: *const ::std::os::raw::c_char,
+                unused: *const ::std::os::raw::c_char,
+                arg: *mut ::std::os::raw::c_void,
+            ),
+        >,
+        arg: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn EVP_MD_do_all_sorted(
+        callback: ::std::option::Option<
+            unsafe extern "C" fn(
+                cipher: *const EVP_MD,
+                name: *const ::std::os::raw::c_char,
+                unused: *const ::std::os::raw::c_char,
+                arg: *mut ::std::os::raw::c_void,
+            ),
+        >,
+        arg: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
+}
+extern "C" {
+    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct evp_pkey_st {
+    pub references: CRYPTO_refcount_t,
+    pub type_: ::std::os::raw::c_int,
+    pub pkey: evp_pkey_st__bindgen_ty_1,
+    pub ameth: *const EVP_PKEY_ASN1_METHOD,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union evp_pkey_st__bindgen_ty_1 {
+    pub ptr: *mut ::std::os::raw::c_void,
+    pub rsa: *mut RSA,
+    pub dsa: *mut DSA,
+    pub dh: *mut DH,
+    pub ec: *mut EC_KEY,
+    _bindgen_union_align: u64,
+}
+#[test]
+fn bindgen_test_layout_evp_pkey_st__bindgen_ty_1() {
+    assert_eq!(
+        ::std::mem::size_of::<evp_pkey_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(evp_pkey_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_pkey_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_pkey_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st__bindgen_ty_1>())).ptr as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st__bindgen_ty_1), "::", stringify!(ptr))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st__bindgen_ty_1>())).rsa as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st__bindgen_ty_1), "::", stringify!(rsa))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st__bindgen_ty_1>())).dsa as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st__bindgen_ty_1), "::", stringify!(dsa))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st__bindgen_ty_1>())).dh as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st__bindgen_ty_1), "::", stringify!(dh))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st__bindgen_ty_1>())).ec as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st__bindgen_ty_1), "::", stringify!(ec))
+    );
+}
+#[test]
+fn bindgen_test_layout_evp_pkey_st() {
+    assert_eq!(
+        ::std::mem::size_of::<evp_pkey_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(evp_pkey_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_pkey_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_pkey_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st>())).references as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st), "::", stringify!(references))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st>())).type_ as *const _ as usize },
+        4usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st), "::", stringify!(type_))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st>())).pkey as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st), "::", stringify!(pkey))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<evp_pkey_st>())).ameth as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(evp_pkey_st), "::", stringify!(ameth))
+    );
+}
+extern "C" {
+    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
+}
+extern "C" {
+    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    pub fn HMAC_Init_ex(
+        ctx: *mut HMAC_CTX,
+        key: *const ::std::os::raw::c_void,
+        key_len: usize,
+        md: *const EVP_MD,
+        impl_: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn HMAC_Update(
+        ctx: *mut HMAC_CTX,
+        data: *const u8,
+        data_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn HMAC_Final(
+        ctx: *mut HMAC_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
+}
+extern "C" {
+    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    pub fn HMAC_Init(
+        ctx: *mut HMAC_CTX,
+        key: *const ::std::os::raw::c_void,
+        key_len: ::std::os::raw::c_int,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hmac_ctx_st {
+    pub md: *const EVP_MD,
+    pub md_ctx: EVP_MD_CTX,
+    pub i_ctx: EVP_MD_CTX,
+    pub o_ctx: EVP_MD_CTX,
+}
+#[test]
+fn bindgen_test_layout_hmac_ctx_st() {
+    assert_eq!(
+        ::std::mem::size_of::<hmac_ctx_st>(),
+        104usize,
+        concat!("Size of: ", stringify!(hmac_ctx_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<hmac_ctx_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(hmac_ctx_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<hmac_ctx_st>())).md as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(hmac_ctx_st), "::", stringify!(md))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<hmac_ctx_st>())).md_ctx as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(hmac_ctx_st), "::", stringify!(md_ctx))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<hmac_ctx_st>())).i_ctx as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(hmac_ctx_st), "::", stringify!(i_ctx))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<hmac_ctx_st>())).o_ctx as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(hmac_ctx_st), "::", stringify!(o_ctx))
+    );
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_new(
+        data: *const u8,
+        len: usize,
+        pool: *mut CRYPTO_BUFFER_POOL,
+    ) -> *mut CRYPTO_BUFFER;
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_new_from_CBS(
+        cbs: *mut CBS,
+        pool: *mut CRYPTO_BUFFER_POOL,
+    ) -> *mut CRYPTO_BUFFER;
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
+}
+extern "C" {
+    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
+}
+extern "C" {
+    pub fn RSA_new() -> *mut RSA;
+}
+extern "C" {
+    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
+}
+extern "C" {
+    pub fn RSA_free(rsa: *mut RSA);
+}
+extern "C" {
+    pub fn RSA_up_ref(rsa: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_bits(rsa: *const RSA) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn RSA_get0_key(
+        rsa: *const RSA,
+        out_n: *mut *const BIGNUM,
+        out_e: *mut *const BIGNUM,
+        out_d: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
+}
+extern "C" {
+    pub fn RSA_get0_crt_params(
+        rsa: *const RSA,
+        out_dmp1: *mut *const BIGNUM,
+        out_dmq1: *mut *const BIGNUM,
+        out_iqmp: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    pub fn RSA_set0_key(
+        rsa: *mut RSA,
+        n: *mut BIGNUM,
+        e: *mut BIGNUM,
+        d: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_set0_crt_params(
+        rsa: *mut RSA,
+        dmp1: *mut BIGNUM,
+        dmq1: *mut BIGNUM,
+        iqmp: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_generate_key_ex(
+        rsa: *mut RSA,
+        bits: ::std::os::raw::c_int,
+        e: *mut BIGNUM,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_generate_key_fips(
+        rsa: *mut RSA,
+        bits: ::std::os::raw::c_int,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_encrypt(
+        rsa: *mut RSA,
+        out_len: *mut usize,
+        out: *mut u8,
+        max_out: usize,
+        in_: *const u8,
+        in_len: usize,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_decrypt(
+        rsa: *mut RSA,
+        out_len: *mut usize,
+        out: *mut u8,
+        max_out: usize,
+        in_: *const u8,
+        in_len: usize,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_public_encrypt(
+        flen: usize,
+        from: *const u8,
+        to: *mut u8,
+        rsa: *mut RSA,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_private_decrypt(
+        flen: usize,
+        from: *const u8,
+        to: *mut u8,
+        rsa: *mut RSA,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_sign(
+        hash_nid: ::std::os::raw::c_int,
+        in_: *const u8,
+        in_len: ::std::os::raw::c_uint,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+        rsa: *mut RSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_sign_pss_mgf1(
+        rsa: *mut RSA,
+        out_len: *mut usize,
+        out: *mut u8,
+        max_out: usize,
+        in_: *const u8,
+        in_len: usize,
+        md: *const EVP_MD,
+        mgf1_md: *const EVP_MD,
+        salt_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_sign_raw(
+        rsa: *mut RSA,
+        out_len: *mut usize,
+        out: *mut u8,
+        max_out: usize,
+        in_: *const u8,
+        in_len: usize,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_verify(
+        hash_nid: ::std::os::raw::c_int,
+        msg: *const u8,
+        msg_len: usize,
+        sig: *const u8,
+        sig_len: usize,
+        rsa: *mut RSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_verify_pss_mgf1(
+        rsa: *mut RSA,
+        msg: *const u8,
+        msg_len: usize,
+        md: *const EVP_MD,
+        mgf1_md: *const EVP_MD,
+        salt_len: ::std::os::raw::c_int,
+        sig: *const u8,
+        sig_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_verify_raw(
+        rsa: *mut RSA,
+        out_len: *mut usize,
+        out: *mut u8,
+        max_out: usize,
+        in_: *const u8,
+        in_len: usize,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_private_encrypt(
+        flen: usize,
+        from: *const u8,
+        to: *mut u8,
+        rsa: *mut RSA,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_public_decrypt(
+        flen: usize,
+        from: *const u8,
+        to: *mut u8,
+        rsa: *mut RSA,
+        padding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_size(rsa: *const RSA) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn RSA_is_opaque(rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_check_key(rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_check_fips(key: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_verify_PKCS1_PSS_mgf1(
+        rsa: *const RSA,
+        mHash: *const u8,
+        Hash: *const EVP_MD,
+        mgf1Hash: *const EVP_MD,
+        EM: *const u8,
+        sLen: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_padding_add_PKCS1_PSS_mgf1(
+        rsa: *const RSA,
+        EM: *mut u8,
+        mHash: *const u8,
+        Hash: *const EVP_MD,
+        mgf1Hash: *const EVP_MD,
+        sLen: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_padding_add_PKCS1_OAEP_mgf1(
+        to: *mut u8,
+        to_len: usize,
+        from: *const u8,
+        from_len: usize,
+        param: *const u8,
+        param_len: usize,
+        md: *const EVP_MD,
+        mgf1md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_add_pkcs1_prefix(
+        out_msg: *mut *mut u8,
+        out_msg_len: *mut usize,
+        is_alloced: *mut ::std::os::raw::c_int,
+        hash_nid: ::std::os::raw::c_int,
+        msg: *const u8,
+        msg_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
+}
+extern "C" {
+    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
+}
+extern "C" {
+    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_public_key_to_bytes(
+        out_bytes: *mut *mut u8,
+        out_len: *mut usize,
+        rsa: *const RSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
+}
+extern "C" {
+    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
+}
+extern "C" {
+    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_private_key_to_bytes(
+        out_bytes: *mut *mut u8,
+        out_len: *mut usize,
+        rsa: *const RSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_get_ex_new_index(
+        argl: ::std::os::raw::c_long,
+        argp: *mut ::std::os::raw::c_void,
+        unused: *mut CRYPTO_EX_unused,
+        dup_unused: CRYPTO_EX_dup,
+        free_func: CRYPTO_EX_free,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_set_ex_data(
+        rsa: *mut RSA,
+        idx: ::std::os::raw::c_int,
+        arg: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_get_ex_data(
+        rsa: *const RSA,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn RSA_flags(rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_generate_key(
+        bits: ::std::os::raw::c_int,
+        e: ::std::os::raw::c_ulong,
+        callback: *mut ::std::os::raw::c_void,
+        cb_arg: *mut ::std::os::raw::c_void,
+    ) -> *mut RSA;
+}
+extern "C" {
+    pub fn RSA_padding_add_PKCS1_PSS(
+        rsa: *const RSA,
+        EM: *mut u8,
+        mHash: *const u8,
+        Hash: *const EVP_MD,
+        sLen: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_verify_PKCS1_PSS(
+        rsa: *const RSA,
+        mHash: *const u8,
+        Hash: *const EVP_MD,
+        EM: *const u8,
+        sLen: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_padding_add_PKCS1_OAEP(
+        to: *mut u8,
+        to_len: usize,
+        from: *const u8,
+        from_len: usize,
+        param: *const u8,
+        param_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RSA_print(
+        bio: *mut BIO,
+        rsa: *const RSA,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rsa_meth_st {
+    pub common: openssl_method_common_st,
+    pub app_data: *mut ::std::os::raw::c_void,
+    pub init: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
+    pub finish: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
+    pub size: ::std::option::Option<unsafe extern "C" fn(rsa: *const RSA) -> usize>,
+    pub sign: ::std::option::Option<
+        unsafe extern "C" fn(
+            type_: ::std::os::raw::c_int,
+            m: *const u8,
+            m_length: ::std::os::raw::c_uint,
+            sigret: *mut u8,
+            siglen: *mut ::std::os::raw::c_uint,
+            rsa: *const RSA,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub sign_raw: ::std::option::Option<
+        unsafe extern "C" fn(
+            rsa: *mut RSA,
+            out_len: *mut usize,
+            out: *mut u8,
+            max_out: usize,
+            in_: *const u8,
+            in_len: usize,
+            padding: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub decrypt: ::std::option::Option<
+        unsafe extern "C" fn(
+            rsa: *mut RSA,
+            out_len: *mut usize,
+            out: *mut u8,
+            max_out: usize,
+            in_: *const u8,
+            in_len: usize,
+            padding: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub private_transform: ::std::option::Option<
+        unsafe extern "C" fn(rsa: *mut RSA, out: *mut u8, in_: *const u8, len: usize)
+            -> ::std::os::raw::c_int,
+    >,
+    pub flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_rsa_meth_st() {
+    assert_eq!(
+        ::std::mem::size_of::<rsa_meth_st>(),
+        80usize,
+        concat!("Size of: ", stringify!(rsa_meth_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rsa_meth_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rsa_meth_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).common as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(common))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).app_data as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(app_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).init as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(init))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).finish as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(finish))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).size as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(size))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).sign as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(sign))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).sign_raw as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(sign_raw))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).decrypt as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(decrypt))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).private_transform as *const _ as usize },
+        64usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(private_transform))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_meth_st>())).flags as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(rsa_meth_st), "::", stringify!(flags))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bn_blinding_st {
+    _unused: [u8; 0],
+}
+pub type BN_BLINDING = bn_blinding_st;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rsa_st {
+    pub meth: *mut RSA_METHOD,
+    pub n: *mut BIGNUM,
+    pub e: *mut BIGNUM,
+    pub d: *mut BIGNUM,
+    pub p: *mut BIGNUM,
+    pub q: *mut BIGNUM,
+    pub dmp1: *mut BIGNUM,
+    pub dmq1: *mut BIGNUM,
+    pub iqmp: *mut BIGNUM,
+    pub ex_data: CRYPTO_EX_DATA,
+    pub references: CRYPTO_refcount_t,
+    pub flags: ::std::os::raw::c_int,
+    pub lock: CRYPTO_MUTEX,
+    pub mont_n: *mut BN_MONT_CTX,
+    pub mont_p: *mut BN_MONT_CTX,
+    pub mont_q: *mut BN_MONT_CTX,
+    pub d_fixed: *mut BIGNUM,
+    pub dmp1_fixed: *mut BIGNUM,
+    pub dmq1_fixed: *mut BIGNUM,
+    pub inv_small_mod_large_mont: *mut BIGNUM,
+    pub num_blindings: ::std::os::raw::c_uint,
+    pub blindings: *mut *mut BN_BLINDING,
+    pub blindings_inuse: *mut ::std::os::raw::c_uchar,
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
+    pub __bindgen_padding_0: [u8; 7usize],
+}
+#[test]
+fn bindgen_test_layout_rsa_st() {
+    assert_eq!(::std::mem::size_of::<rsa_st>(), 232usize, concat!("Size of: ", stringify!(rsa_st)));
+    assert_eq!(
+        ::std::mem::align_of::<rsa_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rsa_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).meth as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(meth))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).n as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(n))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).e as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(e))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).d as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(d))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).p as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(p))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).q as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(q))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).dmp1 as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(dmp1))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).dmq1 as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(dmq1))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).iqmp as *const _ as usize },
+        64usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(iqmp))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).ex_data as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(ex_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).references as *const _ as usize },
+        80usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(references))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).flags as *const _ as usize },
+        84usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).lock as *const _ as usize },
+        88usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(lock))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).mont_n as *const _ as usize },
+        144usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(mont_n))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).mont_p as *const _ as usize },
+        152usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(mont_p))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).mont_q as *const _ as usize },
+        160usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(mont_q))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).d_fixed as *const _ as usize },
+        168usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(d_fixed))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).dmp1_fixed as *const _ as usize },
+        176usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(dmp1_fixed))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).dmq1_fixed as *const _ as usize },
+        184usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(dmq1_fixed))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).inv_small_mod_large_mont as *const _ as usize },
+        192usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rsa_st),
+            "::",
+            stringify!(inv_small_mod_large_mont)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).num_blindings as *const _ as usize },
+        200usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(num_blindings))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).blindings as *const _ as usize },
+        208usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(blindings))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_st>())).blindings_inuse as *const _ as usize },
+        216usize,
+        concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(blindings_inuse))
+    );
+}
+impl rsa_st {
+    #[inline]
+    pub fn private_key_frozen(&self) -> ::std::os::raw::c_uint {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+    }
+    #[inline]
+    pub fn set_private_key_frozen(&mut self, val: ::std::os::raw::c_uint) {
+        unsafe {
+            let val: u32 = ::std::mem::transmute(val);
+            self._bitfield_1.set(0usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_bitfield_1(
+        private_key_frozen: ::std::os::raw::c_uint,
+    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
+            Default::default();
+        __bindgen_bitfield_unit.set(0usize, 1u8, {
+            let private_key_frozen: u32 = unsafe { ::std::mem::transmute(private_key_frozen) };
+            private_key_frozen as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+extern "C" {
+    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA1_Update(
+        sha: *mut SHA_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA1_Final(md: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sha_state_st {
+    pub __bindgen_anon_1: sha_state_st__bindgen_ty_1,
+    pub Nl: u32,
+    pub Nh: u32,
+    pub data: [u8; 64usize],
+    pub num: ::std::os::raw::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sha_state_st__bindgen_ty_1 {
+    pub h: [u32; 5usize],
+    pub __bindgen_anon_1: sha_state_st__bindgen_ty_1__bindgen_ty_1,
+    _bindgen_union_align: [u32; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sha_state_st__bindgen_ty_1__bindgen_ty_1 {
+    pub h0: u32,
+    pub h1: u32,
+    pub h2: u32,
+    pub h3: u32,
+    pub h4: u32,
+}
+#[test]
+fn bindgen_test_layout_sha_state_st__bindgen_ty_1__bindgen_ty_1() {
+    assert_eq!(
+        ::std::mem::size_of::<sha_state_st__bindgen_ty_1__bindgen_ty_1>(),
+        20usize,
+        concat!("Size of: ", stringify!(sha_state_st__bindgen_ty_1__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sha_state_st__bindgen_ty_1__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(sha_state_st__bindgen_ty_1__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<sha_state_st__bindgen_ty_1__bindgen_ty_1>())).h0 as *const _
+                as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(h0)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<sha_state_st__bindgen_ty_1__bindgen_ty_1>())).h1 as *const _
+                as usize
+        },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(h1)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<sha_state_st__bindgen_ty_1__bindgen_ty_1>())).h2 as *const _
+                as usize
+        },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(h2)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<sha_state_st__bindgen_ty_1__bindgen_ty_1>())).h3 as *const _
+                as usize
+        },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(h3)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<sha_state_st__bindgen_ty_1__bindgen_ty_1>())).h4 as *const _
+                as usize
+        },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(h4)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_sha_state_st__bindgen_ty_1() {
+    assert_eq!(
+        ::std::mem::size_of::<sha_state_st__bindgen_ty_1>(),
+        20usize,
+        concat!("Size of: ", stringify!(sha_state_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sha_state_st__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(sha_state_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha_state_st__bindgen_ty_1>())).h as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(sha_state_st__bindgen_ty_1), "::", stringify!(h))
+    );
+}
+#[test]
+fn bindgen_test_layout_sha_state_st() {
+    assert_eq!(
+        ::std::mem::size_of::<sha_state_st>(),
+        96usize,
+        concat!("Size of: ", stringify!(sha_state_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sha_state_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(sha_state_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha_state_st>())).Nl as *const _ as usize },
+        20usize,
+        concat!("Offset of field: ", stringify!(sha_state_st), "::", stringify!(Nl))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha_state_st>())).Nh as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(sha_state_st), "::", stringify!(Nh))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha_state_st>())).data as *const _ as usize },
+        28usize,
+        concat!("Offset of field: ", stringify!(sha_state_st), "::", stringify!(data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha_state_st>())).num as *const _ as usize },
+        92usize,
+        concat!("Offset of field: ", stringify!(sha_state_st), "::", stringify!(num))
+    );
+}
+extern "C" {
+    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA224_Update(
+        sha: *mut SHA256_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA224_Final(md: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA256_Update(
+        sha: *mut SHA256_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA256_Final(md: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
+}
+extern "C" {
+    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sha256_state_st {
+    pub h: [u32; 8usize],
+    pub Nl: u32,
+    pub Nh: u32,
+    pub data: [u8; 64usize],
+    pub num: ::std::os::raw::c_uint,
+    pub md_len: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_sha256_state_st() {
+    assert_eq!(
+        ::std::mem::size_of::<sha256_state_st>(),
+        112usize,
+        concat!("Size of: ", stringify!(sha256_state_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sha256_state_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(sha256_state_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha256_state_st>())).h as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(sha256_state_st), "::", stringify!(h))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha256_state_st>())).Nl as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(sha256_state_st), "::", stringify!(Nl))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha256_state_st>())).Nh as *const _ as usize },
+        36usize,
+        concat!("Offset of field: ", stringify!(sha256_state_st), "::", stringify!(Nh))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha256_state_st>())).data as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(sha256_state_st), "::", stringify!(data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha256_state_st>())).num as *const _ as usize },
+        104usize,
+        concat!("Offset of field: ", stringify!(sha256_state_st), "::", stringify!(num))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha256_state_st>())).md_len as *const _ as usize },
+        108usize,
+        concat!("Offset of field: ", stringify!(sha256_state_st), "::", stringify!(md_len))
+    );
+}
+extern "C" {
+    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA384_Update(
+        sha: *mut SHA512_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA384_Final(md: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA512_Update(
+        sha: *mut SHA512_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA512_Final(md: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sha512_state_st {
+    pub h: [u64; 8usize],
+    pub Nl: u64,
+    pub Nh: u64,
+    pub u: sha512_state_st__bindgen_ty_1,
+    pub num: ::std::os::raw::c_uint,
+    pub md_len: ::std::os::raw::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sha512_state_st__bindgen_ty_1 {
+    pub d: [u64; 16usize],
+    pub p: [u8; 128usize],
+    _bindgen_union_align: [u64; 16usize],
+}
+#[test]
+fn bindgen_test_layout_sha512_state_st__bindgen_ty_1() {
+    assert_eq!(
+        ::std::mem::size_of::<sha512_state_st__bindgen_ty_1>(),
+        128usize,
+        concat!("Size of: ", stringify!(sha512_state_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sha512_state_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(sha512_state_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha512_state_st__bindgen_ty_1>())).d as *const _ as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha512_state_st__bindgen_ty_1),
+            "::",
+            stringify!(d)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha512_state_st__bindgen_ty_1>())).p as *const _ as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha512_state_st__bindgen_ty_1),
+            "::",
+            stringify!(p)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_sha512_state_st() {
+    assert_eq!(
+        ::std::mem::size_of::<sha512_state_st>(),
+        216usize,
+        concat!("Size of: ", stringify!(sha512_state_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sha512_state_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(sha512_state_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha512_state_st>())).h as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(sha512_state_st), "::", stringify!(h))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha512_state_st>())).Nl as *const _ as usize },
+        64usize,
+        concat!("Offset of field: ", stringify!(sha512_state_st), "::", stringify!(Nl))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha512_state_st>())).Nh as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(sha512_state_st), "::", stringify!(Nh))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha512_state_st>())).u as *const _ as usize },
+        80usize,
+        concat!("Offset of field: ", stringify!(sha512_state_st), "::", stringify!(u))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha512_state_st>())).num as *const _ as usize },
+        208usize,
+        concat!("Offset of field: ", stringify!(sha512_state_st), "::", stringify!(num))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<sha512_state_st>())).md_len as *const _ as usize },
+        212usize,
+        concat!("Offset of field: ", stringify!(sha512_state_st), "::", stringify!(md_len))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_ALGOR {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_val_st {
+    pub notBefore: *mut ASN1_TIME,
+    pub notAfter: *mut ASN1_TIME,
+}
+#[test]
+fn bindgen_test_layout_X509_val_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509_val_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(X509_val_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_val_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_val_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_val_st>())).notBefore as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(X509_val_st), "::", stringify!(notBefore))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_val_st>())).notAfter as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(X509_val_st), "::", stringify!(notAfter))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_pubkey_st {
+    pub algor: *mut X509_ALGOR,
+    pub public_key: *mut ASN1_BIT_STRING,
+    pub pkey: *mut EVP_PKEY,
+}
+#[test]
+fn bindgen_test_layout_X509_pubkey_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509_pubkey_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(X509_pubkey_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_pubkey_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_pubkey_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_pubkey_st>())).algor as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(X509_pubkey_st), "::", stringify!(algor))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_pubkey_st>())).public_key as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(X509_pubkey_st), "::", stringify!(public_key))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_pubkey_st>())).pkey as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(X509_pubkey_st), "::", stringify!(pkey))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_NAME_ENTRY {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_name_st {
+    pub entries: *mut stack_st_X509_NAME_ENTRY,
+    pub modified: ::std::os::raw::c_int,
+    pub bytes: *mut BUF_MEM,
+    pub canon_enc: *mut ::std::os::raw::c_uchar,
+    pub canon_enclen: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_X509_name_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509_name_st>(),
+        40usize,
+        concat!("Size of: ", stringify!(X509_name_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_name_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_name_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_name_st>())).entries as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(X509_name_st), "::", stringify!(entries))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_name_st>())).modified as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(X509_name_st), "::", stringify!(modified))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_name_st>())).bytes as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(X509_name_st), "::", stringify!(bytes))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_name_st>())).canon_enc as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(X509_name_st), "::", stringify!(canon_enc))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_name_st>())).canon_enclen as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(X509_name_st), "::", stringify!(canon_enclen))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_EXTENSION {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_ATTRIBUTE {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_req_info_st {
+    pub enc: ASN1_ENCODING,
+    pub version: *mut ASN1_INTEGER,
+    pub subject: *mut X509_NAME,
+    pub pubkey: *mut X509_PUBKEY,
+    pub attributes: *mut stack_st_X509_ATTRIBUTE,
+}
+#[test]
+fn bindgen_test_layout_X509_req_info_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509_req_info_st>(),
+        56usize,
+        concat!("Size of: ", stringify!(X509_req_info_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_req_info_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_req_info_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_info_st>())).enc as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(X509_req_info_st), "::", stringify!(enc))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_info_st>())).version as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(X509_req_info_st), "::", stringify!(version))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_info_st>())).subject as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(X509_req_info_st), "::", stringify!(subject))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_info_st>())).pubkey as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(X509_req_info_st), "::", stringify!(pubkey))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_info_st>())).attributes as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(X509_req_info_st), "::", stringify!(attributes))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_req_st {
+    pub req_info: *mut X509_REQ_INFO,
+    pub sig_alg: *mut X509_ALGOR,
+    pub signature: *mut ASN1_BIT_STRING,
+    pub references: CRYPTO_refcount_t,
+}
+#[test]
+fn bindgen_test_layout_X509_req_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509_req_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(X509_req_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_req_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_req_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_st>())).req_info as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(X509_req_st), "::", stringify!(req_info))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_st>())).sig_alg as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(X509_req_st), "::", stringify!(sig_alg))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_st>())).signature as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(X509_req_st), "::", stringify!(signature))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_req_st>())).references as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(X509_req_st), "::", stringify!(references))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_cinf_st {
+    pub version: *mut ASN1_INTEGER,
+    pub serialNumber: *mut ASN1_INTEGER,
+    pub signature: *mut X509_ALGOR,
+    pub issuer: *mut X509_NAME,
+    pub validity: *mut X509_VAL,
+    pub subject: *mut X509_NAME,
+    pub key: *mut X509_PUBKEY,
+    pub issuerUID: *mut ASN1_BIT_STRING,
+    pub subjectUID: *mut ASN1_BIT_STRING,
+    pub extensions: *mut stack_st_X509_EXTENSION,
+    pub enc: ASN1_ENCODING,
+}
+#[test]
+fn bindgen_test_layout_x509_cinf_st() {
+    assert_eq!(
+        ::std::mem::size_of::<x509_cinf_st>(),
+        104usize,
+        concat!("Size of: ", stringify!(x509_cinf_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<x509_cinf_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(x509_cinf_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).version as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(version))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).serialNumber as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(serialNumber))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).signature as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(signature))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).issuer as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(issuer))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).validity as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(validity))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).subject as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(subject))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).key as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(key))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).issuerUID as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(issuerUID))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).subjectUID as *const _ as usize },
+        64usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(subjectUID))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).extensions as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(extensions))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cinf_st>())).enc as *const _ as usize },
+        80usize,
+        concat!("Offset of field: ", stringify!(x509_cinf_st), "::", stringify!(enc))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_cert_aux_st {
+    pub trust: *mut stack_st_ASN1_OBJECT,
+    pub reject: *mut stack_st_ASN1_OBJECT,
+    pub alias: *mut ASN1_UTF8STRING,
+    pub keyid: *mut ASN1_OCTET_STRING,
+    pub other: *mut stack_st_X509_ALGOR,
+}
+#[test]
+fn bindgen_test_layout_x509_cert_aux_st() {
+    assert_eq!(
+        ::std::mem::size_of::<x509_cert_aux_st>(),
+        40usize,
+        concat!("Size of: ", stringify!(x509_cert_aux_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<x509_cert_aux_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(x509_cert_aux_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cert_aux_st>())).trust as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(x509_cert_aux_st), "::", stringify!(trust))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cert_aux_st>())).reject as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(x509_cert_aux_st), "::", stringify!(reject))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cert_aux_st>())).alias as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(x509_cert_aux_st), "::", stringify!(alias))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cert_aux_st>())).keyid as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(x509_cert_aux_st), "::", stringify!(keyid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_cert_aux_st>())).other as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(x509_cert_aux_st), "::", stringify!(other))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_DIST_POINT {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_GENERAL_NAME {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct x509_st {
+    pub cert_info: *mut X509_CINF,
+    pub sig_alg: *mut X509_ALGOR,
+    pub signature: *mut ASN1_BIT_STRING,
+    pub references: CRYPTO_refcount_t,
+    pub name: *mut ::std::os::raw::c_char,
+    pub ex_data: CRYPTO_EX_DATA,
+    pub ex_pathlen: ::std::os::raw::c_long,
+    pub ex_pcpathlen: ::std::os::raw::c_long,
+    pub ex_flags: ::std::os::raw::c_ulong,
+    pub ex_kusage: ::std::os::raw::c_ulong,
+    pub ex_xkusage: ::std::os::raw::c_ulong,
+    pub ex_nscert: ::std::os::raw::c_ulong,
+    pub skid: *mut ASN1_OCTET_STRING,
+    pub akid: *mut AUTHORITY_KEYID,
+    pub policy_cache: *mut X509_POLICY_CACHE,
+    pub crldp: *mut stack_st_DIST_POINT,
+    pub altname: *mut stack_st_GENERAL_NAME,
+    pub nc: *mut NAME_CONSTRAINTS,
+    pub sha1_hash: [::std::os::raw::c_uchar; 20usize],
+    pub aux: *mut X509_CERT_AUX,
+    pub buf: *mut CRYPTO_BUFFER,
+    pub lock: CRYPTO_MUTEX,
+}
+#[test]
+fn bindgen_test_layout_x509_st() {
+    assert_eq!(
+        ::std::mem::size_of::<x509_st>(),
+        240usize,
+        concat!("Size of: ", stringify!(x509_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<x509_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(x509_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).cert_info as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(cert_info))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).sig_alg as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(sig_alg))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).signature as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(signature))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).references as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(references))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).name as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(name))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).ex_data as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(ex_data))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).ex_pathlen as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(ex_pathlen))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).ex_pcpathlen as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(ex_pcpathlen))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).ex_flags as *const _ as usize },
+        64usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(ex_flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).ex_kusage as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(ex_kusage))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).ex_xkusage as *const _ as usize },
+        80usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(ex_xkusage))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).ex_nscert as *const _ as usize },
+        88usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(ex_nscert))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).skid as *const _ as usize },
+        96usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(skid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).akid as *const _ as usize },
+        104usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(akid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).policy_cache as *const _ as usize },
+        112usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(policy_cache))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).crldp as *const _ as usize },
+        120usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(crldp))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).altname as *const _ as usize },
+        128usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(altname))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).nc as *const _ as usize },
+        136usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(nc))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).sha1_hash as *const _ as usize },
+        144usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(sha1_hash))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).aux as *const _ as usize },
+        168usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(aux))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).buf as *const _ as usize },
+        176usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(buf))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<x509_st>())).lock as *const _ as usize },
+        184usize,
+        concat!("Offset of field: ", stringify!(x509_st), "::", stringify!(lock))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_REVOKED {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_crl_info_st {
+    pub version: *mut ASN1_INTEGER,
+    pub sig_alg: *mut X509_ALGOR,
+    pub issuer: *mut X509_NAME,
+    pub lastUpdate: *mut ASN1_TIME,
+    pub nextUpdate: *mut ASN1_TIME,
+    pub revoked: *mut stack_st_X509_REVOKED,
+    pub extensions: *mut stack_st_X509_EXTENSION,
+    pub enc: ASN1_ENCODING,
+}
+#[test]
+fn bindgen_test_layout_X509_crl_info_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509_crl_info_st>(),
+        80usize,
+        concat!("Size of: ", stringify!(X509_crl_info_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_crl_info_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_crl_info_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_info_st>())).version as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(X509_crl_info_st), "::", stringify!(version))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_info_st>())).sig_alg as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(X509_crl_info_st), "::", stringify!(sig_alg))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_info_st>())).issuer as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(X509_crl_info_st), "::", stringify!(issuer))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_info_st>())).lastUpdate as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(X509_crl_info_st), "::", stringify!(lastUpdate))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_info_st>())).nextUpdate as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(X509_crl_info_st), "::", stringify!(nextUpdate))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_info_st>())).revoked as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(X509_crl_info_st), "::", stringify!(revoked))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_info_st>())).extensions as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(X509_crl_info_st), "::", stringify!(extensions))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_info_st>())).enc as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(X509_crl_info_st), "::", stringify!(enc))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_GENERAL_NAMES {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_crl_st {
+    pub crl: *mut X509_CRL_INFO,
+    pub sig_alg: *mut X509_ALGOR,
+    pub signature: *mut ASN1_BIT_STRING,
+    pub references: CRYPTO_refcount_t,
+    pub flags: ::std::os::raw::c_int,
+    pub akid: *mut AUTHORITY_KEYID,
+    pub idp: *mut ISSUING_DIST_POINT,
+    pub idp_flags: ::std::os::raw::c_int,
+    pub idp_reasons: ::std::os::raw::c_int,
+    pub crl_number: *mut ASN1_INTEGER,
+    pub base_crl_number: *mut ASN1_INTEGER,
+    pub sha1_hash: [::std::os::raw::c_uchar; 20usize],
+    pub issuers: *mut stack_st_GENERAL_NAMES,
+    pub meth: *const X509_CRL_METHOD,
+    pub meth_data: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout_X509_crl_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509_crl_st>(),
+        120usize,
+        concat!("Size of: ", stringify!(X509_crl_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_crl_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_crl_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).crl as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(crl))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).sig_alg as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(sig_alg))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).signature as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(signature))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).references as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(references))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).flags as *const _ as usize },
+        28usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).akid as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(akid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).idp as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(idp))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).idp_flags as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(idp_flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).idp_reasons as *const _ as usize },
+        52usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(idp_reasons))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).crl_number as *const _ as usize },
+        56usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(crl_number))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).base_crl_number as *const _ as usize },
+        64usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(base_crl_number))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).sha1_hash as *const _ as usize },
+        72usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(sha1_hash))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).issuers as *const _ as usize },
+        96usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(issuers))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).meth as *const _ as usize },
+        104usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(meth))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<X509_crl_st>())).meth_data as *const _ as usize },
+        112usize,
+        concat!("Offset of field: ", stringify!(X509_crl_st), "::", stringify!(meth_data))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pkcs8_priv_key_info_st {
+    pub broken: ::std::os::raw::c_int,
+    pub version: *mut ASN1_INTEGER,
+    pub pkeyalg: *mut X509_ALGOR,
+    pub pkey: *mut ASN1_TYPE,
+    pub attributes: *mut stack_st_X509_ATTRIBUTE,
+}
+#[test]
+fn bindgen_test_layout_pkcs8_priv_key_info_st() {
+    assert_eq!(
+        ::std::mem::size_of::<pkcs8_priv_key_info_st>(),
+        40usize,
+        concat!("Size of: ", stringify!(pkcs8_priv_key_info_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs8_priv_key_info_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs8_priv_key_info_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<pkcs8_priv_key_info_st>())).broken as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(pkcs8_priv_key_info_st), "::", stringify!(broken))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<pkcs8_priv_key_info_st>())).version as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(pkcs8_priv_key_info_st), "::", stringify!(version))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<pkcs8_priv_key_info_st>())).pkeyalg as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(pkcs8_priv_key_info_st), "::", stringify!(pkeyalg))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<pkcs8_priv_key_info_st>())).pkey as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(pkcs8_priv_key_info_st), "::", stringify!(pkey))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<pkcs8_priv_key_info_st>())).attributes as *const _ as usize
+        },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs8_priv_key_info_st),
+            "::",
+            stringify!(attributes)
+        )
+    );
+}
+extern "C" {
+    pub fn ASN1_digest(
+        i2d: i2d_of_void,
+        type_: *const EVP_MD,
+        data: *mut ::std::os::raw::c_char,
+        md: *mut ::std::os::raw::c_uchar,
+        len: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_digest(
+        it: *const ASN1_ITEM,
+        type_: *const EVP_MD,
+        data: *mut ::std::os::raw::c_void,
+        md: *mut ::std::os::raw::c_uchar,
+        len: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_verify(
+        it: *const ASN1_ITEM,
+        algor1: *mut X509_ALGOR,
+        signature: *mut ASN1_BIT_STRING,
+        data: *mut ::std::os::raw::c_void,
+        pkey: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_sign(
+        it: *const ASN1_ITEM,
+        algor1: *mut X509_ALGOR,
+        algor2: *mut X509_ALGOR,
+        signature: *mut ASN1_BIT_STRING,
+        data: *mut ::std::os::raw::c_void,
+        pkey: *mut EVP_PKEY,
+        type_: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ASN1_item_sign_ctx(
+        it: *const ASN1_ITEM,
+        algor1: *mut X509_ALGOR,
+        algor2: *mut X509_ALGOR,
+        signature: *mut ASN1_BIT_STRING,
+        asn: *mut ::std::os::raw::c_void,
+        ctx: *mut EVP_MD_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn EVP_PKCS82PKEY(p8: *mut PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
+}
+extern "C" {
+    pub fn EVP_PKEY2PKCS8(pkey: *mut EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    pub fn EVP_PKEY2PKCS8_broken(
+        pkey: *mut EVP_PKEY,
+        broken: ::std::os::raw::c_int,
+    ) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rsa_pss_params_st {
+    pub hashAlgorithm: *mut X509_ALGOR,
+    pub maskGenAlgorithm: *mut X509_ALGOR,
+    pub saltLength: *mut ASN1_INTEGER,
+    pub trailerField: *mut ASN1_INTEGER,
+}
+#[test]
+fn bindgen_test_layout_rsa_pss_params_st() {
+    assert_eq!(
+        ::std::mem::size_of::<rsa_pss_params_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(rsa_pss_params_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rsa_pss_params_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rsa_pss_params_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_pss_params_st>())).hashAlgorithm as *const _ as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rsa_pss_params_st),
+            "::",
+            stringify!(hashAlgorithm)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<rsa_pss_params_st>())).maskGenAlgorithm as *const _ as usize
+        },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rsa_pss_params_st),
+            "::",
+            stringify!(maskGenAlgorithm)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_pss_params_st>())).saltLength as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(rsa_pss_params_st), "::", stringify!(saltLength))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rsa_pss_params_st>())).trailerField as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(rsa_pss_params_st), "::", stringify!(trailerField))
+    );
+}
+pub type RSA_PSS_PARAMS = rsa_pss_params_st;
+extern "C" {
+    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
+}
+extern "C" {
+    pub fn RSA_PSS_PARAMS_free(a: *mut RSA_PSS_PARAMS);
+}
+extern "C" {
+    #[link_name = "\u{1}RSA_PSS_PARAMS_it"]
+    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
+}
+pub type poly1305_state = [u8; 512usize];
+extern "C" {
+    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
+}
+extern "C" {
+    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
+}
+extern "C" {
+    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
+}
+extern "C" {
+    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RAND_cleanup();
+}
+extern "C" {
+    pub fn RAND_set_urandom_fd(fd: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn RAND_enable_fork_unsafe_buffering(fd: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RAND_seed(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn RAND_load_file(
+        path: *const ::std::os::raw::c_char,
+        num: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RAND_file_name(
+        buf: *mut ::std::os::raw::c_char,
+        num: usize,
+    ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn RAND_add(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int, entropy: f64);
+}
+extern "C" {
+    pub fn RAND_egd(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RAND_poll() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn RAND_status() -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rand_meth_st {
+    pub seed: ::std::option::Option<
+        unsafe extern "C" fn(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int),
+    >,
+    pub bytes: ::std::option::Option<
+        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
+    >,
+    pub cleanup: ::std::option::Option<unsafe extern "C" fn()>,
+    pub add: ::std::option::Option<
+        unsafe extern "C" fn(
+            buf: *const ::std::os::raw::c_void,
+            num: ::std::os::raw::c_int,
+            entropy: f64,
+        ),
+    >,
+    pub pseudorand: ::std::option::Option<
+        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
+    >,
+    pub status: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
+}
+#[test]
+fn bindgen_test_layout_rand_meth_st() {
+    assert_eq!(
+        ::std::mem::size_of::<rand_meth_st>(),
+        48usize,
+        concat!("Size of: ", stringify!(rand_meth_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rand_meth_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rand_meth_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rand_meth_st>())).seed as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(rand_meth_st), "::", stringify!(seed))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rand_meth_st>())).bytes as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(rand_meth_st), "::", stringify!(bytes))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rand_meth_st>())).cleanup as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(rand_meth_st), "::", stringify!(cleanup))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rand_meth_st>())).add as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(rand_meth_st), "::", stringify!(add))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rand_meth_st>())).pseudorand as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(rand_meth_st), "::", stringify!(pseudorand))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<rand_meth_st>())).status as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(rand_meth_st), "::", stringify!(status))
+    );
+}
+extern "C" {
+    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
+}
+extern "C" {
+    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
+}
+extern "C" {
+    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD);
+}
+extern "C" {
+    pub fn ERR_load_SSL_strings();
+}
+extern "C" {
+    pub fn BIO_f_ssl() -> *const BIO_METHOD;
+}
+extern "C" {
+    pub fn BIO_set_ssl(
+        bio: *mut BIO,
+        ssl: *mut SSL,
+        take_owership: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    pub fn OPENSSL_init_ssl(
+        opts: u64,
+        settings: *const OPENSSL_INIT_SETTINGS,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509V3_CONF_METHOD_st {
+    pub get_string: ::std::option::Option<
+        unsafe extern "C" fn(
+            db: *mut ::std::os::raw::c_void,
+            section: *mut ::std::os::raw::c_char,
+            value: *mut ::std::os::raw::c_char,
+        ) -> *mut ::std::os::raw::c_char,
+    >,
+    pub get_section: ::std::option::Option<
+        unsafe extern "C" fn(db: *mut ::std::os::raw::c_void, section: *mut ::std::os::raw::c_char)
+            -> *mut stack_st_CONF_VALUE,
+    >,
+    pub free_string: ::std::option::Option<
+        unsafe extern "C" fn(db: *mut ::std::os::raw::c_void, string: *mut ::std::os::raw::c_char),
+    >,
+    pub free_section: ::std::option::Option<
+        unsafe extern "C" fn(db: *mut ::std::os::raw::c_void, section: *mut stack_st_CONF_VALUE),
+    >,
+}
+#[test]
+fn bindgen_test_layout_X509V3_CONF_METHOD_st() {
+    assert_eq!(
+        ::std::mem::size_of::<X509V3_CONF_METHOD_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(X509V3_CONF_METHOD_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509V3_CONF_METHOD_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509V3_CONF_METHOD_st))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<X509V3_CONF_METHOD_st>())).get_string as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509V3_CONF_METHOD_st),
+            "::",
+            stringify!(get_string)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<X509V3_CONF_METHOD_st>())).get_section as *const _ as usize
+        },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509V3_CONF_METHOD_st),
+            "::",
+            stringify!(get_section)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<X509V3_CONF_METHOD_st>())).free_string as *const _ as usize
+        },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509V3_CONF_METHOD_st),
+            "::",
+            stringify!(free_string)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<X509V3_CONF_METHOD_st>())).free_section as *const _ as usize
+        },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509V3_CONF_METHOD_st),
+            "::",
+            stringify!(free_section)
+        )
+    );
+}
+pub type X509V3_CONF_METHOD = X509V3_CONF_METHOD_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct v3_ext_ctx {
+    pub flags: ::std::os::raw::c_int,
+    pub issuer_cert: *mut X509,
+    pub subject_cert: *mut X509,
+    pub subject_req: *mut X509_REQ,
+    pub crl: *mut X509_CRL,
+    pub db_meth: *const X509V3_CONF_METHOD,
+    pub db: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout_v3_ext_ctx() {
+    assert_eq!(
+        ::std::mem::size_of::<v3_ext_ctx>(),
+        56usize,
+        concat!("Size of: ", stringify!(v3_ext_ctx))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<v3_ext_ctx>(),
+        8usize,
+        concat!("Alignment of ", stringify!(v3_ext_ctx))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<v3_ext_ctx>())).flags as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(v3_ext_ctx), "::", stringify!(flags))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<v3_ext_ctx>())).issuer_cert as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(v3_ext_ctx), "::", stringify!(issuer_cert))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<v3_ext_ctx>())).subject_cert as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(v3_ext_ctx), "::", stringify!(subject_cert))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<v3_ext_ctx>())).subject_req as *const _ as usize },
+        24usize,
+        concat!("Offset of field: ", stringify!(v3_ext_ctx), "::", stringify!(subject_req))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<v3_ext_ctx>())).crl as *const _ as usize },
+        32usize,
+        concat!("Offset of field: ", stringify!(v3_ext_ctx), "::", stringify!(crl))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<v3_ext_ctx>())).db_meth as *const _ as usize },
+        40usize,
+        concat!("Offset of field: ", stringify!(v3_ext_ctx), "::", stringify!(db_meth))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<v3_ext_ctx>())).db as *const _ as usize },
+        48usize,
+        concat!("Offset of field: ", stringify!(v3_ext_ctx), "::", stringify!(db))
+    );
+}
+pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct DIST_POINT_NAME_st {
+    pub type_: ::std::os::raw::c_int,
+    pub name: DIST_POINT_NAME_st__bindgen_ty_1,
+    pub dpname: *mut X509_NAME,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union DIST_POINT_NAME_st__bindgen_ty_1 {
+    pub fullname: *mut GENERAL_NAMES,
+    pub relativename: *mut stack_st_X509_NAME_ENTRY,
+    _bindgen_union_align: u64,
+}
+#[test]
+fn bindgen_test_layout_DIST_POINT_NAME_st__bindgen_ty_1() {
+    assert_eq!(
+        ::std::mem::size_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(DIST_POINT_NAME_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(DIST_POINT_NAME_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<DIST_POINT_NAME_st__bindgen_ty_1>())).fullname as *const _
+                as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(fullname)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<DIST_POINT_NAME_st__bindgen_ty_1>())).relativename as *const _
+                as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(relativename)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_DIST_POINT_NAME_st() {
+    assert_eq!(
+        ::std::mem::size_of::<DIST_POINT_NAME_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(DIST_POINT_NAME_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<DIST_POINT_NAME_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(DIST_POINT_NAME_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<DIST_POINT_NAME_st>())).type_ as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(DIST_POINT_NAME_st), "::", stringify!(type_))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<DIST_POINT_NAME_st>())).name as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(DIST_POINT_NAME_st), "::", stringify!(name))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<DIST_POINT_NAME_st>())).dpname as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(DIST_POINT_NAME_st), "::", stringify!(dpname))
+    );
+}
+pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct AUTHORITY_KEYID_st {
+    pub keyid: *mut ASN1_OCTET_STRING,
+    pub issuer: *mut GENERAL_NAMES,
+    pub serial: *mut ASN1_INTEGER,
+}
+#[test]
+fn bindgen_test_layout_AUTHORITY_KEYID_st() {
+    assert_eq!(
+        ::std::mem::size_of::<AUTHORITY_KEYID_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(AUTHORITY_KEYID_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<AUTHORITY_KEYID_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(AUTHORITY_KEYID_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<AUTHORITY_KEYID_st>())).keyid as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(AUTHORITY_KEYID_st), "::", stringify!(keyid))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<AUTHORITY_KEYID_st>())).issuer as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(AUTHORITY_KEYID_st), "::", stringify!(issuer))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<AUTHORITY_KEYID_st>())).serial as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(AUTHORITY_KEYID_st), "::", stringify!(serial))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_GENERAL_SUBTREE {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct NAME_CONSTRAINTS_st {
+    pub permittedSubtrees: *mut stack_st_GENERAL_SUBTREE,
+    pub excludedSubtrees: *mut stack_st_GENERAL_SUBTREE,
+}
+#[test]
+fn bindgen_test_layout_NAME_CONSTRAINTS_st() {
+    assert_eq!(
+        ::std::mem::size_of::<NAME_CONSTRAINTS_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(NAME_CONSTRAINTS_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<NAME_CONSTRAINTS_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(NAME_CONSTRAINTS_st))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<NAME_CONSTRAINTS_st>())).permittedSubtrees as *const _ as usize
+        },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(NAME_CONSTRAINTS_st),
+            "::",
+            stringify!(permittedSubtrees)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<NAME_CONSTRAINTS_st>())).excludedSubtrees as *const _ as usize
+        },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(NAME_CONSTRAINTS_st),
+            "::",
+            stringify!(excludedSubtrees)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ISSUING_DIST_POINT_st {
+    pub distpoint: *mut DIST_POINT_NAME,
+    pub onlyuser: ::std::os::raw::c_int,
+    pub onlyCA: ::std::os::raw::c_int,
+    pub onlysomereasons: *mut ASN1_BIT_STRING,
+    pub indirectCRL: ::std::os::raw::c_int,
+    pub onlyattr: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ISSUING_DIST_POINT_st() {
+    assert_eq!(
+        ::std::mem::size_of::<ISSUING_DIST_POINT_st>(),
+        32usize,
+        concat!("Size of: ", stringify!(ISSUING_DIST_POINT_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ISSUING_DIST_POINT_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ISSUING_DIST_POINT_st))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ISSUING_DIST_POINT_st>())).distpoint as *const _ as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(distpoint)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ISSUING_DIST_POINT_st>())).onlyuser as *const _ as usize },
+        8usize,
+        concat!("Offset of field: ", stringify!(ISSUING_DIST_POINT_st), "::", stringify!(onlyuser))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ISSUING_DIST_POINT_st>())).onlyCA as *const _ as usize },
+        12usize,
+        concat!("Offset of field: ", stringify!(ISSUING_DIST_POINT_st), "::", stringify!(onlyCA))
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ISSUING_DIST_POINT_st>())).onlysomereasons as *const _ as usize
+        },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(onlysomereasons)
+        )
+    );
+    assert_eq!(
+        unsafe {
+            &(*(::std::ptr::null::<ISSUING_DIST_POINT_st>())).indirectCRL as *const _ as usize
+        },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(indirectCRL)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<ISSUING_DIST_POINT_st>())).onlyattr as *const _ as usize },
+        28usize,
+        concat!("Offset of field: ", stringify!(ISSUING_DIST_POINT_st), "::", stringify!(onlyattr))
+    );
+}
+pub type __builtin_va_list = [__va_list_tag; 1usize];
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __va_list_tag {
+    pub gp_offset: ::std::os::raw::c_uint,
+    pub fp_offset: ::std::os::raw::c_uint,
+    pub overflow_arg_area: *mut ::std::os::raw::c_void,
+    pub reg_save_area: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout___va_list_tag() {
+    assert_eq!(
+        ::std::mem::size_of::<__va_list_tag>(),
+        24usize,
+        concat!("Size of: ", stringify!(__va_list_tag))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<__va_list_tag>(),
+        8usize,
+        concat!("Alignment of ", stringify!(__va_list_tag))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
+        0usize,
+        concat!("Offset of field: ", stringify!(__va_list_tag), "::", stringify!(gp_offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
+        4usize,
+        concat!("Offset of field: ", stringify!(__va_list_tag), "::", stringify!(fp_offset))
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(overflow_arg_area)
+        )
+    );
+    assert_eq!(
+        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(__va_list_tag), "::", stringify!(reg_save_area))
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct CRYPTO_dynlock_value {
+    pub _address: u8,
+}
