diff --git a/aws-lc-sys/builder/cc_builder.rs b/aws-lc-sys/builder/cc_builder.rs
index 1f14db97f89..be9f7b17fd6 100644
--- a/aws-lc-sys/builder/cc_builder.rs
+++ b/aws-lc-sys/builder/cc_builder.rs
@@ -12,6 +12,7 @@ mod i686_unknown_linux_gnu;
 mod x86_64_apple_darwin;
 mod x86_64_unknown_linux_gnu;
 mod x86_64_unknown_linux_musl;
+mod x86_64_alpine_linux_musl;
 
 use crate::{
     cargo_env, emit_warning, env_var_to_bool, execute_command, get_cflags, is_no_asm, option_env,
@@ -43,6 +44,7 @@ enum PlatformConfig {
     x86_64_apple_darwin,
     x86_64_unknown_linux_gnu,
     x86_64_unknown_linux_musl,
+    x86_64_alpine_linux_musl,
     i686_unknown_linux_gnu,
 }
 
@@ -57,6 +59,7 @@ impl PlatformConfig {
             PlatformConfig::x86_64_apple_darwin => x86_64_apple_darwin::CRYPTO_LIBRARY,
             PlatformConfig::x86_64_unknown_linux_gnu => x86_64_unknown_linux_gnu::CRYPTO_LIBRARY,
             PlatformConfig::x86_64_unknown_linux_musl => x86_64_unknown_linux_musl::CRYPTO_LIBRARY,
+            PlatformConfig::x86_64_alpine_linux_musl => x86_64_alpine_linux_musl::CRYPTO_LIBRARY,
             PlatformConfig::i686_unknown_linux_gnu => i686_unknown_linux_gnu::CRYPTO_LIBRARY,
         }
     }
@@ -70,6 +73,7 @@ impl PlatformConfig {
             "x86_64-apple-darwin" => Some(PlatformConfig::x86_64_apple_darwin),
             "x86_64-unknown-linux-gnu" => Some(PlatformConfig::x86_64_unknown_linux_gnu),
             "x86_64-unknown-linux-musl" => Some(PlatformConfig::x86_64_unknown_linux_musl),
+            "x86_64-alpine-linux-musl" => Some(PlatformConfig::x86_64_alpine_linux_musl),
             "i686-unknown-linux-gnu" => Some(PlatformConfig::i686_unknown_linux_gnu),
             _ => None,
         }
diff --git a/aws-lc-sys/builder/cc_builder/x86_64_alpine_linux_musl.rs b/aws-lc-sys/builder/cc_builder/x86_64_alpine_linux_musl.rs
new file mode 100644
index 00000000000..7e560755a8a
--- /dev/null
+++ b/aws-lc-sys/builder/cc_builder/x86_64_alpine_linux_musl.rs
@@ -0,0 +1,334 @@
+// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+// SPDX-License-Identifier: Apache-2.0 OR ISC
+// Mon Jan  6 19:54:53 UTC 2025
+
+use crate::cc_builder::Library;
+
+pub(super) const CRYPTO_LIBRARY: Library = Library {
+    name: "crypto",
+    // This attribute is intentionally let blank
+    flags: &[],
+    sources: &[
+        "crypto/asn1/a_bitstr.c",
+        "crypto/asn1/a_bool.c",
+        "crypto/asn1/a_d2i_fp.c",
+        "crypto/asn1/a_dup.c",
+        "crypto/asn1/a_gentm.c",
+        "crypto/asn1/a_i2d_fp.c",
+        "crypto/asn1/a_int.c",
+        "crypto/asn1/a_mbstr.c",
+        "crypto/asn1/a_object.c",
+        "crypto/asn1/a_octet.c",
+        "crypto/asn1/a_strex.c",
+        "crypto/asn1/a_strnid.c",
+        "crypto/asn1/a_time.c",
+        "crypto/asn1/a_type.c",
+        "crypto/asn1/a_utctm.c",
+        "crypto/asn1/a_utf8.c",
+        "crypto/asn1/asn1_lib.c",
+        "crypto/asn1/asn1_par.c",
+        "crypto/asn1/asn_pack.c",
+        "crypto/asn1/f_int.c",
+        "crypto/asn1/f_string.c",
+        "crypto/asn1/posix_time.c",
+        "crypto/asn1/tasn_dec.c",
+        "crypto/asn1/tasn_enc.c",
+        "crypto/asn1/tasn_fre.c",
+        "crypto/asn1/tasn_new.c",
+        "crypto/asn1/tasn_typ.c",
+        "crypto/asn1/tasn_utl.c",
+        "crypto/base64/base64.c",
+        "crypto/bio/bio.c",
+        "crypto/bio/bio_mem.c",
+        "crypto/bio/connect.c",
+        "crypto/bio/errno.c",
+        "crypto/bio/fd.c",
+        "crypto/bio/file.c",
+        "crypto/bio/hexdump.c",
+        "crypto/bio/pair.c",
+        "crypto/bio/printf.c",
+        "crypto/bio/socket.c",
+        "crypto/bio/socket_helper.c",
+        "crypto/blake2/blake2.c",
+        "crypto/bn_extra/bn_asn1.c",
+        "crypto/bn_extra/convert.c",
+        "crypto/buf/buf.c",
+        "crypto/bytestring/asn1_compat.c",
+        "crypto/bytestring/ber.c",
+        "crypto/bytestring/cbb.c",
+        "crypto/bytestring/cbs.c",
+        "crypto/bytestring/unicode.c",
+        "crypto/chacha/chacha.c",
+        "crypto/cipher_extra/cipher_extra.c",
+        "crypto/cipher_extra/derive_key.c",
+        "crypto/cipher_extra/e_aes_cbc_hmac_sha1.c",
+        "crypto/cipher_extra/e_aes_cbc_hmac_sha256.c",
+        "crypto/cipher_extra/e_aesctrhmac.c",
+        "crypto/cipher_extra/e_aesgcmsiv.c",
+        "crypto/cipher_extra/e_chacha20poly1305.c",
+        "crypto/cipher_extra/e_des.c",
+        "crypto/cipher_extra/e_null.c",
+        "crypto/cipher_extra/e_rc2.c",
+        "crypto/cipher_extra/e_rc4.c",
+        "crypto/cipher_extra/e_tls.c",
+        "crypto/cipher_extra/tls_cbc.c",
+        "crypto/conf/conf.c",
+        "crypto/crypto.c",
+        "crypto/decrepit/bio/base64_bio.c",
+        "crypto/decrepit/blowfish/blowfish.c",
+        "crypto/decrepit/cast/cast.c",
+        "crypto/decrepit/cast/cast_tables.c",
+        "crypto/decrepit/cfb/cfb.c",
+        "crypto/decrepit/dh/dh_decrepit.c",
+        "crypto/decrepit/evp/evp_do_all.c",
+        "crypto/decrepit/obj/obj_decrepit.c",
+        "crypto/decrepit/ripemd/ripemd.c",
+        "crypto/decrepit/rsa/rsa_decrepit.c",
+        "crypto/decrepit/x509/x509_decrepit.c",
+        "crypto/des/des.c",
+        "crypto/dh_extra/dh_asn1.c",
+        "crypto/dh_extra/params.c",
+        "crypto/digest_extra/digest_extra.c",
+        "crypto/dsa/dsa.c",
+        "crypto/dsa/dsa_asn1.c",
+        "crypto/ec_extra/ec_asn1.c",
+        "crypto/ec_extra/ec_derive.c",
+        "crypto/ec_extra/hash_to_curve.c",
+        "crypto/ecdh_extra/ecdh_extra.c",
+        "crypto/ecdsa_extra/ecdsa_asn1.c",
+        "crypto/engine/engine.c",
+        "crypto/err/err.c",
+        "crypto/evp_extra/evp_asn1.c",
+        "crypto/evp_extra/p_dh.c",
+        "crypto/evp_extra/p_dh_asn1.c",
+        "crypto/evp_extra/p_dsa.c",
+        "crypto/evp_extra/p_dsa_asn1.c",
+        "crypto/evp_extra/p_ec_asn1.c",
+        "crypto/evp_extra/p_ed25519_asn1.c",
+        "crypto/evp_extra/p_hmac_asn1.c",
+        "crypto/evp_extra/p_kem_asn1.c",
+        "crypto/evp_extra/p_methods.c",
+        "crypto/evp_extra/p_rsa_asn1.c",
+        "crypto/evp_extra/p_x25519.c",
+        "crypto/evp_extra/p_x25519_asn1.c",
+        "crypto/evp_extra/print.c",
+        "crypto/evp_extra/scrypt.c",
+        "crypto/evp_extra/sign.c",
+        "crypto/ex_data.c",
+        "crypto/fipsmodule/bcm.c",
+        "crypto/fipsmodule/cpucap/cpucap.c",
+        "crypto/fipsmodule/fips_shared_support.c",
+        "crypto/hpke/hpke.c",
+        "crypto/hrss/asm/poly_rq_mul.S",
+        "crypto/hrss/hrss.c",
+        "crypto/kyber/kem_kyber.c",
+        "crypto/kyber/kyber1024r3_ref.c",
+        "crypto/kyber/kyber512r3_ref.c",
+        "crypto/kyber/kyber768r3_ref.c",
+        "crypto/kyber/pqcrystals_kyber_ref_common/fips202.c",
+        "crypto/lhash/lhash.c",
+        "crypto/mem.c",
+        "crypto/obj/obj.c",
+        "crypto/obj/obj_xref.c",
+        "crypto/ocsp/ocsp_asn.c",
+        "crypto/ocsp/ocsp_client.c",
+        "crypto/ocsp/ocsp_extension.c",
+        "crypto/ocsp/ocsp_http.c",
+        "crypto/ocsp/ocsp_lib.c",
+        "crypto/ocsp/ocsp_print.c",
+        "crypto/ocsp/ocsp_server.c",
+        "crypto/ocsp/ocsp_verify.c",
+        "crypto/pem/pem_all.c",
+        "crypto/pem/pem_info.c",
+        "crypto/pem/pem_lib.c",
+        "crypto/pem/pem_oth.c",
+        "crypto/pem/pem_pk8.c",
+        "crypto/pem/pem_pkey.c",
+        "crypto/pem/pem_x509.c",
+        "crypto/pem/pem_xaux.c",
+        "crypto/pkcs7/bio/cipher.c",
+        "crypto/pkcs7/bio/md.c",
+        "crypto/pkcs7/pkcs7.c",
+        "crypto/pkcs7/pkcs7_asn1.c",
+        "crypto/pkcs7/pkcs7_x509.c",
+        "crypto/pkcs8/p5_pbev2.c",
+        "crypto/pkcs8/pkcs8.c",
+        "crypto/pkcs8/pkcs8_x509.c",
+        "crypto/poly1305/poly1305.c",
+        "crypto/poly1305/poly1305_arm.c",
+        "crypto/poly1305/poly1305_vec.c",
+        "crypto/pool/pool.c",
+        "crypto/rand_extra/deterministic.c",
+        "crypto/rand_extra/entropy_passive.c",
+        "crypto/rand_extra/forkunsafe.c",
+        "crypto/rand_extra/fuchsia.c",
+        "crypto/rand_extra/rand_extra.c",
+        "crypto/rand_extra/trusty.c",
+        "crypto/rand_extra/windows.c",
+        "crypto/rc4/rc4.c",
+        "crypto/refcount_c11.c",
+        "crypto/refcount_lock.c",
+        "crypto/refcount_win.c",
+        "crypto/rsa_extra/rsa_asn1.c",
+        "crypto/rsa_extra/rsa_crypt.c",
+        "crypto/rsa_extra/rsa_print.c",
+        "crypto/rsa_extra/rsassa_pss_asn1.c",
+        "crypto/siphash/siphash.c",
+        "crypto/spake25519/spake25519.c",
+        "crypto/stack/stack.c",
+        "crypto/thread.c",
+        "crypto/thread_none.c",
+        "crypto/thread_pthread.c",
+        "crypto/thread_win.c",
+        "crypto/trust_token/pmbtoken.c",
+        "crypto/trust_token/trust_token.c",
+        "crypto/trust_token/voprf.c",
+        "crypto/x509/a_digest.c",
+        "crypto/x509/a_sign.c",
+        "crypto/x509/a_verify.c",
+        "crypto/x509/algorithm.c",
+        "crypto/x509/asn1_gen.c",
+        "crypto/x509/by_dir.c",
+        "crypto/x509/by_file.c",
+        "crypto/x509/i2d_pr.c",
+        "crypto/x509/name_print.c",
+        "crypto/x509/policy.c",
+        "crypto/x509/rsa_pss.c",
+        "crypto/x509/t_crl.c",
+        "crypto/x509/t_req.c",
+        "crypto/x509/t_x509.c",
+        "crypto/x509/t_x509a.c",
+        "crypto/x509/v3_akey.c",
+        "crypto/x509/v3_akeya.c",
+        "crypto/x509/v3_alt.c",
+        "crypto/x509/v3_bcons.c",
+        "crypto/x509/v3_bitst.c",
+        "crypto/x509/v3_conf.c",
+        "crypto/x509/v3_cpols.c",
+        "crypto/x509/v3_crld.c",
+        "crypto/x509/v3_enum.c",
+        "crypto/x509/v3_extku.c",
+        "crypto/x509/v3_genn.c",
+        "crypto/x509/v3_ia5.c",
+        "crypto/x509/v3_info.c",
+        "crypto/x509/v3_int.c",
+        "crypto/x509/v3_lib.c",
+        "crypto/x509/v3_ncons.c",
+        "crypto/x509/v3_ocsp.c",
+        "crypto/x509/v3_pcons.c",
+        "crypto/x509/v3_pmaps.c",
+        "crypto/x509/v3_prn.c",
+        "crypto/x509/v3_purp.c",
+        "crypto/x509/v3_skey.c",
+        "crypto/x509/v3_utl.c",
+        "crypto/x509/x509.c",
+        "crypto/x509/x509_att.c",
+        "crypto/x509/x509_cmp.c",
+        "crypto/x509/x509_d2.c",
+        "crypto/x509/x509_def.c",
+        "crypto/x509/x509_ext.c",
+        "crypto/x509/x509_lu.c",
+        "crypto/x509/x509_obj.c",
+        "crypto/x509/x509_req.c",
+        "crypto/x509/x509_set.c",
+        "crypto/x509/x509_trs.c",
+        "crypto/x509/x509_txt.c",
+        "crypto/x509/x509_v3.c",
+        "crypto/x509/x509_vfy.c",
+        "crypto/x509/x509_vpm.c",
+        "crypto/x509/x509cset.c",
+        "crypto/x509/x509name.c",
+        "crypto/x509/x509rset.c",
+        "crypto/x509/x509spki.c",
+        "crypto/x509/x_algor.c",
+        "crypto/x509/x_all.c",
+        "crypto/x509/x_attrib.c",
+        "crypto/x509/x_crl.c",
+        "crypto/x509/x_exten.c",
+        "crypto/x509/x_name.c",
+        "crypto/x509/x_pubkey.c",
+        "crypto/x509/x_req.c",
+        "crypto/x509/x_sig.c",
+        "crypto/x509/x_spki.c",
+        "crypto/x509/x_val.c",
+        "crypto/x509/x_x509.c",
+        "crypto/x509/x_x509a.c",
+        "generated-src/err_data.c",
+        "generated-src/linux-x86_64/crypto/chacha/chacha-x86_64.S",
+        "generated-src/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S",
+        "generated-src/linux-x86_64/crypto/cipher_extra/aesni-sha1-x86_64.S",
+        "generated-src/linux-x86_64/crypto/cipher_extra/aesni-sha256-x86_64.S",
+        "generated-src/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/aesni-xts-avx512.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/md5-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/rsaz-2k-avx512.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/rsaz-3k-avx512.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/rsaz-4k-avx512.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont.S",
+        "generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S",
+        "generated-src/linux-x86_64/crypto/test/trampoline-x86_64.S",
+        "third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519.S",
+        "third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519_alt.S",
+        "third_party/s2n-bignum/x86_att/curve25519/bignum_mod_n25519.S",
+        "third_party/s2n-bignum/x86_att/curve25519/bignum_neg_p25519.S",
+        "third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S",
+        "third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S",
+        "third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S",
+        "third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S",
+        "third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode.S",
+        "third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode_alt.S",
+        "third_party/s2n-bignum/x86_att/curve25519/edwards25519_encode.S",
+        "third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S",
+        "third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S",
+        "third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S",
+        "third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S",
+        "third_party/s2n-bignum/x86_att/p256/bignum_montinv_p256.S",
+        "third_party/s2n-bignum/x86_att/p256/p256_montjscalarmul.S",
+        "third_party/s2n-bignum/x86_att/p256/p256_montjscalarmul_alt.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_add_p384.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384_alt.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_littleendian_6.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_montinv_p384.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384_alt.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384_alt.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_neg_p384.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_nonzero_6.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384.S",
+        "third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384_alt.S",
+        "third_party/s2n-bignum/x86_att/p384/p384_montjdouble.S",
+        "third_party/s2n-bignum/x86_att/p384/p384_montjdouble_alt.S",
+        "third_party/s2n-bignum/x86_att/p384/p384_montjscalarmul.S",
+        "third_party/s2n-bignum/x86_att/p384/p384_montjscalarmul_alt.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_fromlebytes_p521.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_inv_p521.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_mul_p521.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_neg_p521.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521_alt.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S",
+        "third_party/s2n-bignum/x86_att/p521/bignum_tolebytes_p521.S",
+        "third_party/s2n-bignum/x86_att/p521/p521_jdouble.S",
+        "third_party/s2n-bignum/x86_att/p521/p521_jdouble_alt.S",
+        "third_party/s2n-bignum/x86_att/p521/p521_jscalarmul.S",
+        "third_party/s2n-bignum/x86_att/p521/p521_jscalarmul_alt.S",
+    ],
+};
diff --git a/aws-lc-sys/builder/main.rs b/aws-lc-sys/builder/main.rs
index 3d7321539ae..40f1c2d7587 100644
--- a/aws-lc-sys/builder/main.rs
+++ b/aws-lc-sys/builder/main.rs
@@ -440,7 +440,8 @@ fn initialize() {
             | "x86_64-pc-windows-gnu"
             | "x86_64-pc-windows-msvc"
             | "x86_64-unknown-linux-gnu"
-            | "x86_64-unknown-linux-musl" => Some(target),
+            | "x86_64-unknown-linux-musl"
+            | "x86_64-alpine-linux-musl" => Some(target),
             _ => None,
         };
         if let Some(platform) = supported_platform {
@@ -534,6 +535,7 @@ fn prepare_cargo_cfg() {
         println!("cargo:rustc-check-cfg=cfg(x86_64_pc_windows_msvc)");
         println!("cargo:rustc-check-cfg=cfg(x86_64_unknown_linux_gnu)");
         println!("cargo:rustc-check-cfg=cfg(x86_64_unknown_linux_musl)");
+        println!("cargo:rustc-check-cfg=cfg(x86_64_alpine_linux_musl)");
     }
 }
 
diff --git a/aws-lc-sys/src/lib.rs b/aws-lc-sys/src/lib.rs
index f93b116d88f..3c256257b26 100644
--- a/aws-lc-sys/src/lib.rs
+++ b/aws-lc-sys/src/lib.rs
@@ -36,6 +36,7 @@ platform_binding!(x86_64_pc_windows_gnu);
 platform_binding!(x86_64_pc_windows_msvc);
 platform_binding!(x86_64_unknown_linux_gnu);
 platform_binding!(x86_64_unknown_linux_musl);
+platform_binding!(x86_64_alpine_linux_musl);
 
 #[cfg(use_bindgen_generated)]
 #[allow(
diff --git a/aws-lc-sys/src/x86_64_alpine_linux_musl_crypto.rs b/aws-lc-sys/src/x86_64_alpine_linux_musl_crypto.rs
new file mode 100644
index 00000000000..e2974104992
--- /dev/null
+++ b/aws-lc-sys/src/x86_64_alpine_linux_musl_crypto.rs
@@ -0,0 +1,28600 @@
+/* automatically generated by rust-bindgen 0.69.5 */
+
+
+// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+// SPDX-License-Identifier: Apache-2.0 OR ISC
+
+
+#![allow(
+    clippy::cast_lossless,
+    clippy::cast_possible_truncation,
+    clippy::default_trait_access,
+    clippy::must_use_candidate,
+    clippy::not_unsafe_ptr_arg_deref,
+    clippy::ptr_as_ptr,
+    clippy::pub_underscore_fields,
+    clippy::semicolon_if_nothing_returned,
+    clippy::too_many_lines,
+    clippy::unreadable_literal,
+    clippy::used_underscore_binding,
+    clippy::useless_transmute,
+    dead_code,
+    improper_ctypes,
+    non_camel_case_types,
+    non_snake_case,
+    non_upper_case_globals,
+    unused_imports,
+)]
+
+
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+    storage: Storage,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+    #[inline]
+    pub const fn new(storage: Storage) -> Self {
+        Self { storage }
+    }
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+    Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+    #[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 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 mask = 1 << bit_index;
+        if val {
+            *byte |= mask;
+        } else {
+            *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
+                };
+                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
+            };
+            self.set_bit(index + bit_offset, val_bit_is_set);
+        }
+    }
+}
+pub const AWSLC_VERSION_NAME: &[u8; 7] = b"AWS-LC\0";
+pub const OPENSSL_VERSION_NUMBER: i32 = 269488255;
+pub const SSLEAY_VERSION_NUMBER: i32 = 269488255;
+pub const AWSLC_API_VERSION: i32 = 32;
+pub const AWSLC_VERSION_NUMBER_STRING: &[u8; 7] = b"1.42.0\0";
+pub const AES_ENCRYPT: i32 = 1;
+pub const AES_DECRYPT: i32 = 0;
+pub const AES_MAXNR: i32 = 14;
+pub const AES_BLOCK_SIZE: i32 = 16;
+pub const SHA_CBLOCK: i32 = 64;
+pub const SHA_DIGEST_LENGTH: i32 = 20;
+pub const SHA224_CBLOCK: i32 = 64;
+pub const SHA224_DIGEST_LENGTH: i32 = 28;
+pub const SHA256_CBLOCK: i32 = 64;
+pub const SHA256_DIGEST_LENGTH: i32 = 32;
+pub const SHA384_CBLOCK: i32 = 128;
+pub const SHA384_DIGEST_LENGTH: i32 = 48;
+pub const SHA512_CBLOCK: i32 = 128;
+pub const SHA512_DIGEST_LENGTH: i32 = 64;
+pub const SHA512_224_DIGEST_LENGTH: i32 = 28;
+pub const SHA512_256_DIGEST_LENGTH: i32 = 32;
+pub const CRYPTO_LOCK: i32 = 1;
+pub const CRYPTO_UNLOCK: i32 = 2;
+pub const CRYPTO_READ: i32 = 4;
+pub const CRYPTO_WRITE: i32 = 8;
+pub const OPENSSL_VERSION_TEXT: &[u8; 42] = b"OpenSSL 1.1.1 (compatible; AWS-LC 1.42.0)\0";
+pub const OPENSSL_VERSION: i32 = 0;
+pub const OPENSSL_CFLAGS: i32 = 1;
+pub const OPENSSL_BUILT_ON: i32 = 2;
+pub const OPENSSL_PLATFORM: i32 = 3;
+pub const OPENSSL_DIR: i32 = 4;
+pub const SSLEAY_VERSION: i32 = 0;
+pub const SSLEAY_CFLAGS: i32 = 1;
+pub const SSLEAY_BUILT_ON: i32 = 2;
+pub const SSLEAY_PLATFORM: i32 = 3;
+pub const SSLEAY_DIR: i32 = 4;
+pub const OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS: i32 = 0;
+pub const OPENSSL_INIT_LOAD_CRYPTO_STRINGS: i32 = 0;
+pub const OPENSSL_INIT_ADD_ALL_CIPHERS: i32 = 0;
+pub const OPENSSL_INIT_ADD_ALL_DIGESTS: i32 = 0;
+pub const OPENSSL_INIT_NO_ADD_ALL_CIPHERS: i32 = 0;
+pub const OPENSSL_INIT_NO_ADD_ALL_DIGESTS: i32 = 0;
+pub const OPENSSL_INIT_LOAD_CONFIG: i32 = 0;
+pub const OPENSSL_INIT_NO_LOAD_CONFIG: i32 = 0;
+pub const OPENSSL_INIT_ENGINE_ALL_BUILTIN: i32 = 0;
+pub const ERR_FLAG_STRING: i32 = 1;
+pub const ERR_FLAG_MALLOCED: i32 = 2;
+pub const ERR_LIB_NONE: i32 = 1;
+pub const ERR_LIB_SYS: i32 = 2;
+pub const ERR_LIB_BN: i32 = 3;
+pub const ERR_LIB_RSA: i32 = 4;
+pub const ERR_LIB_DH: i32 = 5;
+pub const ERR_LIB_EVP: i32 = 6;
+pub const ERR_LIB_BUF: i32 = 7;
+pub const ERR_LIB_OBJ: i32 = 8;
+pub const ERR_LIB_PEM: i32 = 9;
+pub const ERR_LIB_DSA: i32 = 10;
+pub const ERR_LIB_X509: i32 = 11;
+pub const ERR_LIB_ASN1: i32 = 12;
+pub const ERR_LIB_CONF: i32 = 13;
+pub const ERR_LIB_CRYPTO: i32 = 14;
+pub const ERR_LIB_EC: i32 = 15;
+pub const ERR_LIB_SSL: i32 = 16;
+pub const ERR_LIB_BIO: i32 = 17;
+pub const ERR_LIB_PKCS7: i32 = 18;
+pub const ERR_LIB_PKCS8: i32 = 19;
+pub const ERR_LIB_X509V3: i32 = 20;
+pub const ERR_LIB_RAND: i32 = 21;
+pub const ERR_LIB_ENGINE: i32 = 22;
+pub const ERR_LIB_OCSP: i32 = 23;
+pub const ERR_LIB_UI: i32 = 24;
+pub const ERR_LIB_COMP: i32 = 25;
+pub const ERR_LIB_ECDSA: i32 = 26;
+pub const ERR_LIB_ECDH: i32 = 27;
+pub const ERR_LIB_HMAC: i32 = 28;
+pub const ERR_LIB_DIGEST: i32 = 29;
+pub const ERR_LIB_CIPHER: i32 = 30;
+pub const ERR_LIB_HKDF: i32 = 31;
+pub const ERR_LIB_TRUST_TOKEN: i32 = 32;
+pub const ERR_LIB_USER: i32 = 33;
+pub const ERR_NUM_LIBS: i32 = 34;
+pub const ERR_LIB_PKCS12: i32 = 35;
+pub const ERR_LIB_DSO: i32 = 36;
+pub const ERR_LIB_OSSL_STORE: i32 = 37;
+pub const ERR_LIB_FIPS: i32 = 38;
+pub const ERR_LIB_CMS: i32 = 39;
+pub const ERR_LIB_TS: i32 = 40;
+pub const ERR_LIB_CT: i32 = 41;
+pub const ERR_LIB_ASYNC: i32 = 42;
+pub const ERR_LIB_KDF: i32 = 43;
+pub const ERR_LIB_SM2: i32 = 44;
+pub const ERR_R_SYS_LIB: i32 = 2;
+pub const ERR_R_BN_LIB: i32 = 3;
+pub const ERR_R_RSA_LIB: i32 = 4;
+pub const ERR_R_DH_LIB: i32 = 5;
+pub const ERR_R_EVP_LIB: i32 = 6;
+pub const ERR_R_BUF_LIB: i32 = 7;
+pub const ERR_R_OBJ_LIB: i32 = 8;
+pub const ERR_R_PEM_LIB: i32 = 9;
+pub const ERR_R_DSA_LIB: i32 = 10;
+pub const ERR_R_X509_LIB: i32 = 11;
+pub const ERR_R_ASN1_LIB: i32 = 12;
+pub const ERR_R_CONF_LIB: i32 = 13;
+pub const ERR_R_CRYPTO_LIB: i32 = 14;
+pub const ERR_R_EC_LIB: i32 = 15;
+pub const ERR_R_SSL_LIB: i32 = 16;
+pub const ERR_R_BIO_LIB: i32 = 17;
+pub const ERR_R_PKCS7_LIB: i32 = 18;
+pub const ERR_R_PKCS8_LIB: i32 = 19;
+pub const ERR_R_X509V3_LIB: i32 = 20;
+pub const ERR_R_RAND_LIB: i32 = 21;
+pub const ERR_R_DSO_LIB: i32 = 36;
+pub const ERR_R_ENGINE_LIB: i32 = 22;
+pub const ERR_R_OCSP_LIB: i32 = 23;
+pub const ERR_R_UI_LIB: i32 = 24;
+pub const ERR_R_COMP_LIB: i32 = 25;
+pub const ERR_R_ECDSA_LIB: i32 = 26;
+pub const ERR_R_ECDH_LIB: i32 = 27;
+pub const ERR_R_FIPS_LIB: i32 = 38;
+pub const ERR_R_CMS_LIB: i32 = 39;
+pub const ERR_R_TS_LIB: i32 = 40;
+pub const ERR_R_HMAC_LIB: i32 = 28;
+pub const ERR_R_USER_LIB: i32 = 33;
+pub const ERR_R_DIGEST_LIB: i32 = 29;
+pub const ERR_R_CIPHER_LIB: i32 = 30;
+pub const ERR_R_HKDF_LIB: i32 = 31;
+pub const ERR_R_TRUST_TOKEN_LIB: i32 = 32;
+pub const ERR_R_FATAL: i32 = 64;
+pub const ERR_R_MALLOC_FAILURE: i32 = 65;
+pub const ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED: i32 = 66;
+pub const ERR_R_PASSED_NULL_PARAMETER: i32 = 67;
+pub const ERR_R_INTERNAL_ERROR: i32 = 68;
+pub const ERR_R_OVERFLOW: i32 = 69;
+pub const ERR_ERROR_STRING_BUF_LEN: i32 = 120;
+pub const ERR_TXT_STRING: i32 = 1;
+pub const ERR_TXT_MALLOCED: i32 = 2;
+pub const ERR_NUM_ERRORS: i32 = 16;
+pub const BIO_RR_CONNECT: i32 = 2;
+pub const BIO_RR_ACCEPT: i32 = 3;
+pub const BIO_CB_FREE: i32 = 1;
+pub const BIO_CB_READ: i32 = 2;
+pub const BIO_CB_WRITE: i32 = 3;
+pub const BIO_CB_PUTS: i32 = 4;
+pub const BIO_CB_GETS: i32 = 5;
+pub const BIO_CB_CTRL: i32 = 6;
+pub const BIO_CB_RETURN: i32 = 128;
+pub const BIO_NOCLOSE: i32 = 0;
+pub const BIO_CLOSE: i32 = 1;
+pub const BIO_FP_TEXT: i32 = 16;
+pub const BIO_CTRL_DGRAM_QUERY_MTU: i32 = 40;
+pub const BIO_CTRL_DGRAM_SET_MTU: i32 = 42;
+pub const BIO_CTRL_DGRAM_MTU_EXCEEDED: i32 = 43;
+pub const BIO_CTRL_DGRAM_GET_PEER: i32 = 46;
+pub const BIO_CTRL_DGRAM_GET_FALLBACK_MTU: i32 = 47;
+pub const BIO_CTRL_RESET: i32 = 1;
+pub const BIO_CTRL_EOF: i32 = 2;
+pub const BIO_CTRL_INFO: i32 = 3;
+pub const BIO_CTRL_GET_CLOSE: i32 = 8;
+pub const BIO_CTRL_SET_CLOSE: i32 = 9;
+pub const BIO_CTRL_PENDING: i32 = 10;
+pub const BIO_CTRL_FLUSH: i32 = 11;
+pub const BIO_CTRL_WPENDING: i32 = 13;
+pub const BIO_CTRL_SET_CALLBACK: i32 = 14;
+pub const BIO_CTRL_GET_CALLBACK: i32 = 15;
+pub const BIO_CTRL_SET: i32 = 4;
+pub const BIO_CTRL_GET: i32 = 5;
+pub const BIO_CTRL_PUSH: i32 = 6;
+pub const BIO_CTRL_POP: i32 = 7;
+pub const BIO_CTRL_DUP: i32 = 12;
+pub const BIO_CTRL_SET_FILENAME: i32 = 30;
+pub const BIO_FLAGS_READ: i32 = 1;
+pub const BIO_FLAGS_WRITE: i32 = 2;
+pub const BIO_FLAGS_IO_SPECIAL: i32 = 4;
+pub const BIO_FLAGS_RWS: i32 = 7;
+pub const BIO_FLAGS_SHOULD_RETRY: i32 = 8;
+pub const BIO_FLAGS_BASE64_NO_NL: i32 = 256;
+pub const BIO_FLAGS_MEM_RDONLY: i32 = 512;
+pub const BIO_TYPE_DESCRIPTOR: i32 = 256;
+pub const BIO_TYPE_FILTER: i32 = 512;
+pub const BIO_TYPE_SOURCE_SINK: i32 = 1024;
+pub const BIO_TYPE_NONE: i32 = 0;
+pub const BIO_TYPE_MEM: i32 = 1025;
+pub const BIO_TYPE_FILE: i32 = 1026;
+pub const BIO_TYPE_FD: i32 = 1284;
+pub const BIO_TYPE_SOCKET: i32 = 1285;
+pub const BIO_TYPE_NULL: i32 = 1030;
+pub const BIO_TYPE_SSL: i32 = 519;
+pub const BIO_TYPE_MD: i32 = 520;
+pub const BIO_TYPE_BUFFER: i32 = 521;
+pub const BIO_TYPE_CIPHER: i32 = 522;
+pub const BIO_TYPE_BASE64: i32 = 523;
+pub const BIO_TYPE_CONNECT: i32 = 1292;
+pub const BIO_TYPE_ACCEPT: i32 = 1293;
+pub const BIO_TYPE_PROXY_CLIENT: i32 = 526;
+pub const BIO_TYPE_PROXY_SERVER: i32 = 527;
+pub const BIO_TYPE_NBIO_TEST: i32 = 528;
+pub const BIO_TYPE_NULL_FILTER: i32 = 529;
+pub const BIO_TYPE_BER: i32 = 530;
+pub const BIO_TYPE_BIO: i32 = 1043;
+pub const BIO_TYPE_LINEBUFFER: i32 = 532;
+pub const BIO_TYPE_DGRAM: i32 = 1301;
+pub const BIO_TYPE_ASN1: i32 = 534;
+pub const BIO_TYPE_COMP: i32 = 535;
+pub const BIO_TYPE_START: i32 = 128;
+pub const BIO_C_SET_CONNECT: i32 = 100;
+pub const BIO_C_DO_STATE_MACHINE: i32 = 101;
+pub const BIO_C_SET_NBIO: i32 = 102;
+pub const BIO_C_SET_PROXY_PARAM: i32 = 103;
+pub const BIO_C_SET_FD: i32 = 104;
+pub const BIO_C_GET_FD: i32 = 105;
+pub const BIO_C_SET_FILE_PTR: i32 = 106;
+pub const BIO_C_GET_FILE_PTR: i32 = 107;
+pub const BIO_C_SET_FILENAME: i32 = 108;
+pub const BIO_C_SET_SSL: i32 = 109;
+pub const BIO_C_SET_MD: i32 = 111;
+pub const BIO_C_GET_MD: i32 = 112;
+pub const BIO_C_GET_CIPHER_STATUS: i32 = 113;
+pub const BIO_C_SET_BUF_MEM: i32 = 114;
+pub const BIO_C_GET_BUF_MEM_PTR: i32 = 115;
+pub const BIO_C_GET_BUFF_NUM_LINES: i32 = 116;
+pub const BIO_C_SET_BUFF_SIZE: i32 = 117;
+pub const BIO_C_SET_ACCEPT: i32 = 118;
+pub const BIO_C_SSL_MODE: i32 = 119;
+pub const BIO_C_GET_MD_CTX: i32 = 120;
+pub const BIO_C_GET_PROXY_PARAM: i32 = 121;
+pub const BIO_C_SET_BUFF_READ_DATA: i32 = 122;
+pub const BIO_C_GET_ACCEPT: i32 = 124;
+pub const BIO_C_FILE_SEEK: i32 = 128;
+pub const BIO_C_GET_CIPHER_CTX: i32 = 129;
+pub const BIO_C_SET_BUF_MEM_EOF_RETURN: i32 = 130;
+pub const BIO_C_SET_BIND_MODE: i32 = 131;
+pub const BIO_C_GET_BIND_MODE: i32 = 132;
+pub const BIO_C_FILE_TELL: i32 = 133;
+pub const BIO_C_GET_SOCKS: i32 = 134;
+pub const BIO_C_SET_SOCKS: i32 = 135;
+pub const BIO_C_SET_WRITE_BUF_SIZE: i32 = 136;
+pub const BIO_C_GET_WRITE_BUF_SIZE: i32 = 137;
+pub const BIO_C_GET_WRITE_GUARANTEE: i32 = 140;
+pub const BIO_C_GET_READ_REQUEST: i32 = 141;
+pub const BIO_C_SHUTDOWN_WR: i32 = 142;
+pub const BIO_C_NREAD0: i32 = 143;
+pub const BIO_C_NREAD: i32 = 144;
+pub const BIO_C_NWRITE0: i32 = 145;
+pub const BIO_C_NWRITE: i32 = 146;
+pub const BIO_C_RESET_READ_REQUEST: i32 = 147;
+pub const BIO_C_SET_MD_CTX: i32 = 148;
+pub const BIO_C_SET_PREFIX: i32 = 149;
+pub const BIO_C_GET_PREFIX: i32 = 150;
+pub const BIO_C_SET_SUFFIX: i32 = 151;
+pub const BIO_C_GET_SUFFIX: i32 = 152;
+pub const BIO_C_SET_EX_ARG: i32 = 153;
+pub const BIO_C_GET_EX_ARG: i32 = 154;
+pub const BIO_R_BAD_FOPEN_MODE: i32 = 100;
+pub const BIO_R_BROKEN_PIPE: i32 = 101;
+pub const BIO_R_CONNECT_ERROR: i32 = 102;
+pub const BIO_R_ERROR_SETTING_NBIO: i32 = 103;
+pub const BIO_R_INVALID_ARGUMENT: i32 = 104;
+pub const BIO_R_IN_USE: i32 = 105;
+pub const BIO_R_KEEPALIVE: i32 = 106;
+pub const BIO_R_NBIO_CONNECT_ERROR: i32 = 107;
+pub const BIO_R_NO_HOSTNAME_SPECIFIED: i32 = 108;
+pub const BIO_R_NO_PORT_SPECIFIED: i32 = 109;
+pub const BIO_R_NO_SUCH_FILE: i32 = 110;
+pub const BIO_R_NULL_PARAMETER: i32 = 111;
+pub const BIO_R_SYS_LIB: i32 = 112;
+pub const BIO_R_UNABLE_TO_CREATE_SOCKET: i32 = 113;
+pub const BIO_R_UNINITIALIZED: i32 = 114;
+pub const BIO_R_UNSUPPORTED_METHOD: i32 = 115;
+pub const BIO_R_WRITE_TO_READ_ONLY_BIO: i32 = 116;
+pub const BN_BITS2: i32 = 64;
+pub const BN_DEC_FMT1: &[u8; 4] = b"%lu\0";
+pub const BN_HEX_FMT1: &[u8; 4] = b"%lx\0";
+pub const BN_HEX_FMT2: &[u8; 7] = b"%016lx\0";
+pub const BN_RAND_TOP_ANY: i32 = -1;
+pub const BN_RAND_TOP_ONE: i32 = 0;
+pub const BN_RAND_TOP_TWO: i32 = 1;
+pub const BN_RAND_BOTTOM_ANY: i32 = 0;
+pub const BN_RAND_BOTTOM_ODD: i32 = 1;
+pub const BN_GENCB_GENERATED: i32 = 0;
+pub const BN_GENCB_PRIME_TEST: i32 = 1;
+pub const BN_prime_checks_for_validation: i32 = 64;
+pub const BN_prime_checks_for_generation: i32 = 0;
+pub const BN_prime_checks: i32 = 64;
+pub const BN_FLG_MALLOCED: i32 = 1;
+pub const BN_FLG_STATIC_DATA: i32 = 2;
+pub const BN_R_ARG2_LT_ARG3: i32 = 100;
+pub const BN_R_BAD_RECIPROCAL: i32 = 101;
+pub const BN_R_BIGNUM_TOO_LONG: i32 = 102;
+pub const BN_R_BITS_TOO_SMALL: i32 = 103;
+pub const BN_R_CALLED_WITH_EVEN_MODULUS: i32 = 104;
+pub const BN_R_DIV_BY_ZERO: i32 = 105;
+pub const BN_R_EXPAND_ON_STATIC_BIGNUM_DATA: i32 = 106;
+pub const BN_R_INPUT_NOT_REDUCED: i32 = 107;
+pub const BN_R_INVALID_RANGE: i32 = 108;
+pub const BN_R_NEGATIVE_NUMBER: i32 = 109;
+pub const BN_R_NOT_A_SQUARE: i32 = 110;
+pub const BN_R_NOT_INITIALIZED: i32 = 111;
+pub const BN_R_NO_INVERSE: i32 = 112;
+pub const BN_R_PRIVATE_KEY_TOO_LARGE: i32 = 113;
+pub const BN_R_P_IS_NOT_PRIME: i32 = 114;
+pub const BN_R_TOO_MANY_ITERATIONS: i32 = 115;
+pub const BN_R_TOO_MANY_TEMPORARY_VARIABLES: i32 = 116;
+pub const BN_R_BAD_ENCODING: i32 = 117;
+pub const BN_R_ENCODE_ERROR: i32 = 118;
+pub const BN_R_INVALID_INPUT: i32 = 119;
+pub const BN_F_BN_GENERATE_PRIME_EX: i32 = 0;
+pub const V_ASN1_UNIVERSAL: i32 = 0;
+pub const V_ASN1_APPLICATION: i32 = 64;
+pub const V_ASN1_CONTEXT_SPECIFIC: i32 = 128;
+pub const V_ASN1_PRIVATE: i32 = 192;
+pub const V_ASN1_CONSTRUCTED: i32 = 32;
+pub const V_ASN1_PRIMITIVE_TAG: i32 = 31;
+pub const V_ASN1_MAX_UNIVERSAL: i32 = 255;
+pub const V_ASN1_UNDEF: i32 = -1;
+pub const V_ASN1_OTHER: i32 = -3;
+pub const V_ASN1_ANY: i32 = -4;
+pub const V_ASN1_EOC: i32 = 0;
+pub const V_ASN1_BOOLEAN: i32 = 1;
+pub const V_ASN1_INTEGER: i32 = 2;
+pub const V_ASN1_BIT_STRING: i32 = 3;
+pub const V_ASN1_OCTET_STRING: i32 = 4;
+pub const V_ASN1_NULL: i32 = 5;
+pub const V_ASN1_OBJECT: i32 = 6;
+pub const V_ASN1_OBJECT_DESCRIPTOR: i32 = 7;
+pub const V_ASN1_EXTERNAL: i32 = 8;
+pub const V_ASN1_REAL: i32 = 9;
+pub const V_ASN1_ENUMERATED: i32 = 10;
+pub const V_ASN1_UTF8STRING: i32 = 12;
+pub const V_ASN1_SEQUENCE: i32 = 16;
+pub const V_ASN1_SET: i32 = 17;
+pub const V_ASN1_NUMERICSTRING: i32 = 18;
+pub const V_ASN1_PRINTABLESTRING: i32 = 19;
+pub const V_ASN1_T61STRING: i32 = 20;
+pub const V_ASN1_TELETEXSTRING: i32 = 20;
+pub const V_ASN1_VIDEOTEXSTRING: i32 = 21;
+pub const V_ASN1_IA5STRING: i32 = 22;
+pub const V_ASN1_UTCTIME: i32 = 23;
+pub const V_ASN1_GENERALIZEDTIME: i32 = 24;
+pub const V_ASN1_GRAPHICSTRING: i32 = 25;
+pub const V_ASN1_ISO64STRING: i32 = 26;
+pub const V_ASN1_VISIBLESTRING: i32 = 26;
+pub const V_ASN1_GENERALSTRING: i32 = 27;
+pub const V_ASN1_UNIVERSALSTRING: i32 = 28;
+pub const V_ASN1_BMPSTRING: i32 = 30;
+pub const V_ASN1_NEG: i32 = 256;
+pub const V_ASN1_NEG_INTEGER: i32 = 258;
+pub const V_ASN1_NEG_ENUMERATED: i32 = 266;
+pub const B_ASN1_NUMERICSTRING: i32 = 1;
+pub const B_ASN1_PRINTABLESTRING: i32 = 2;
+pub const B_ASN1_T61STRING: i32 = 4;
+pub const B_ASN1_TELETEXSTRING: i32 = 4;
+pub const B_ASN1_VIDEOTEXSTRING: i32 = 8;
+pub const B_ASN1_IA5STRING: i32 = 16;
+pub const B_ASN1_GRAPHICSTRING: i32 = 32;
+pub const B_ASN1_ISO64STRING: i32 = 64;
+pub const B_ASN1_VISIBLESTRING: i32 = 64;
+pub const B_ASN1_GENERALSTRING: i32 = 128;
+pub const B_ASN1_UNIVERSALSTRING: i32 = 256;
+pub const B_ASN1_OCTET_STRING: i32 = 512;
+pub const B_ASN1_BIT_STRING: i32 = 1024;
+pub const B_ASN1_BMPSTRING: i32 = 2048;
+pub const B_ASN1_UNKNOWN: i32 = 4096;
+pub const B_ASN1_UTF8STRING: i32 = 8192;
+pub const B_ASN1_UTCTIME: i32 = 16384;
+pub const B_ASN1_GENERALIZEDTIME: i32 = 32768;
+pub const B_ASN1_SEQUENCE: i32 = 65536;
+pub const ASN1_BOOLEAN_FALSE: i32 = 0;
+pub const ASN1_BOOLEAN_TRUE: i32 = 255;
+pub const ASN1_BOOLEAN_NONE: i32 = -1;
+pub const ASN1_STRING_FLAG_BITS_LEFT: i32 = 8;
+pub const MBSTRING_FLAG: i32 = 4096;
+pub const MBSTRING_UTF8: i32 = 4096;
+pub const MBSTRING_ASC: i32 = 4097;
+pub const MBSTRING_BMP: i32 = 4098;
+pub const MBSTRING_UNIV: i32 = 4100;
+pub const DIRSTRING_TYPE: i32 = 10246;
+pub const PKCS9STRING_TYPE: i32 = 10262;
+pub const STABLE_NO_MASK: i32 = 2;
+pub const B_ASN1_DIRECTORYSTRING: i32 = 10502;
+pub const B_ASN1_DISPLAYTEXT: i32 = 10320;
+pub const B_ASN1_TIME: i32 = 49152;
+pub const ASN1_STRFLGS_ESC_2253: i32 = 1;
+pub const ASN1_STRFLGS_ESC_CTRL: i32 = 2;
+pub const ASN1_STRFLGS_ESC_MSB: i32 = 4;
+pub const ASN1_STRFLGS_ESC_QUOTE: i32 = 8;
+pub const ASN1_STRFLGS_UTF8_CONVERT: i32 = 16;
+pub const ASN1_STRFLGS_IGNORE_TYPE: i32 = 32;
+pub const ASN1_STRFLGS_SHOW_TYPE: i32 = 64;
+pub const ASN1_STRFLGS_DUMP_ALL: i32 = 128;
+pub const ASN1_STRFLGS_DUMP_UNKNOWN: i32 = 256;
+pub const ASN1_STRFLGS_DUMP_DER: i32 = 512;
+pub const ASN1_STRFLGS_RFC2253: i32 = 791;
+pub const B_ASN1_PRINTABLE: i32 = 81175;
+pub const ASN1_R_ASN1_LENGTH_MISMATCH: i32 = 100;
+pub const ASN1_R_AUX_ERROR: i32 = 101;
+pub const ASN1_R_BAD_GET_ASN1_OBJECT_CALL: i32 = 102;
+pub const ASN1_R_BAD_OBJECT_HEADER: i32 = 103;
+pub const ASN1_R_BMPSTRING_IS_WRONG_LENGTH: i32 = 104;
+pub const ASN1_R_BN_LIB: i32 = 105;
+pub const ASN1_R_BOOLEAN_IS_WRONG_LENGTH: i32 = 106;
+pub const ASN1_R_BUFFER_TOO_SMALL: i32 = 107;
+pub const ASN1_R_CONTEXT_NOT_INITIALISED: i32 = 108;
+pub const ASN1_R_DECODE_ERROR: i32 = 109;
+pub const ASN1_R_DEPTH_EXCEEDED: i32 = 110;
+pub const ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED: i32 = 111;
+pub const ASN1_R_ENCODE_ERROR: i32 = 112;
+pub const ASN1_R_ERROR_GETTING_TIME: i32 = 113;
+pub const ASN1_R_EXPECTING_AN_ASN1_SEQUENCE: i32 = 114;
+pub const ASN1_R_EXPECTING_AN_INTEGER: i32 = 115;
+pub const ASN1_R_EXPECTING_AN_OBJECT: i32 = 116;
+pub const ASN1_R_EXPECTING_A_BOOLEAN: i32 = 117;
+pub const ASN1_R_EXPECTING_A_TIME: i32 = 118;
+pub const ASN1_R_EXPLICIT_LENGTH_MISMATCH: i32 = 119;
+pub const ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED: i32 = 120;
+pub const ASN1_R_FIELD_MISSING: i32 = 121;
+pub const ASN1_R_FIRST_NUM_TOO_LARGE: i32 = 122;
+pub const ASN1_R_HEADER_TOO_LONG: i32 = 123;
+pub const ASN1_R_ILLEGAL_BITSTRING_FORMAT: i32 = 124;
+pub const ASN1_R_ILLEGAL_BOOLEAN: i32 = 125;
+pub const ASN1_R_ILLEGAL_CHARACTERS: i32 = 126;
+pub const ASN1_R_ILLEGAL_FORMAT: i32 = 127;
+pub const ASN1_R_ILLEGAL_HEX: i32 = 128;
+pub const ASN1_R_ILLEGAL_IMPLICIT_TAG: i32 = 129;
+pub const ASN1_R_ILLEGAL_INTEGER: i32 = 130;
+pub const ASN1_R_ILLEGAL_NESTED_TAGGING: i32 = 131;
+pub const ASN1_R_ILLEGAL_NULL: i32 = 132;
+pub const ASN1_R_ILLEGAL_NULL_VALUE: i32 = 133;
+pub const ASN1_R_ILLEGAL_OBJECT: i32 = 134;
+pub const ASN1_R_ILLEGAL_OPTIONAL_ANY: i32 = 135;
+pub const ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE: i32 = 136;
+pub const ASN1_R_ILLEGAL_TAGGED_ANY: i32 = 137;
+pub const ASN1_R_ILLEGAL_TIME_VALUE: i32 = 138;
+pub const ASN1_R_INTEGER_NOT_ASCII_FORMAT: i32 = 139;
+pub const ASN1_R_INTEGER_TOO_LARGE_FOR_LONG: i32 = 140;
+pub const ASN1_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 141;
+pub const ASN1_R_INVALID_BMPSTRING: i32 = 142;
+pub const ASN1_R_INVALID_DIGIT: i32 = 143;
+pub const ASN1_R_INVALID_MODIFIER: i32 = 144;
+pub const ASN1_R_INVALID_NUMBER: i32 = 145;
+pub const ASN1_R_INVALID_OBJECT_ENCODING: i32 = 146;
+pub const ASN1_R_INVALID_SEPARATOR: i32 = 147;
+pub const ASN1_R_INVALID_TIME_FORMAT: i32 = 148;
+pub const ASN1_R_INVALID_UNIVERSALSTRING: i32 = 149;
+pub const ASN1_R_INVALID_UTF8STRING: i32 = 150;
+pub const ASN1_R_LIST_ERROR: i32 = 151;
+pub const ASN1_R_MISSING_ASN1_EOS: i32 = 152;
+pub const ASN1_R_MISSING_EOC: i32 = 153;
+pub const ASN1_R_MISSING_SECOND_NUMBER: i32 = 154;
+pub const ASN1_R_MISSING_VALUE: i32 = 155;
+pub const ASN1_R_MSTRING_NOT_UNIVERSAL: i32 = 156;
+pub const ASN1_R_MSTRING_WRONG_TAG: i32 = 157;
+pub const ASN1_R_NESTED_ASN1_ERROR: i32 = 158;
+pub const ASN1_R_NESTED_ASN1_STRING: i32 = 159;
+pub const ASN1_R_NON_HEX_CHARACTERS: i32 = 160;
+pub const ASN1_R_NOT_ASCII_FORMAT: i32 = 161;
+pub const ASN1_R_NOT_ENOUGH_DATA: i32 = 162;
+pub const ASN1_R_NO_MATCHING_CHOICE_TYPE: i32 = 163;
+pub const ASN1_R_NULL_IS_WRONG_LENGTH: i32 = 164;
+pub const ASN1_R_OBJECT_NOT_ASCII_FORMAT: i32 = 165;
+pub const ASN1_R_ODD_NUMBER_OF_CHARS: i32 = 166;
+pub const ASN1_R_SECOND_NUMBER_TOO_LARGE: i32 = 167;
+pub const ASN1_R_SEQUENCE_LENGTH_MISMATCH: i32 = 168;
+pub const ASN1_R_SEQUENCE_NOT_CONSTRUCTED: i32 = 169;
+pub const ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG: i32 = 170;
+pub const ASN1_R_SHORT_LINE: i32 = 171;
+pub const ASN1_R_STREAMING_NOT_SUPPORTED: i32 = 172;
+pub const ASN1_R_STRING_TOO_LONG: i32 = 173;
+pub const ASN1_R_STRING_TOO_SHORT: i32 = 174;
+pub const ASN1_R_TAG_VALUE_TOO_HIGH: i32 = 175;
+pub const ASN1_R_TIME_NOT_ASCII_FORMAT: i32 = 176;
+pub const ASN1_R_TOO_LONG: i32 = 177;
+pub const ASN1_R_TYPE_NOT_CONSTRUCTED: i32 = 178;
+pub const ASN1_R_TYPE_NOT_PRIMITIVE: i32 = 179;
+pub const ASN1_R_UNEXPECTED_EOC: i32 = 180;
+pub const ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH: i32 = 181;
+pub const ASN1_R_UNKNOWN_FORMAT: i32 = 182;
+pub const ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM: i32 = 183;
+pub const ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM: i32 = 184;
+pub const ASN1_R_UNKNOWN_TAG: i32 = 185;
+pub const ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE: i32 = 186;
+pub const ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 187;
+pub const ASN1_R_UNSUPPORTED_TYPE: i32 = 188;
+pub const ASN1_R_WRONG_PUBLIC_KEY_TYPE: i32 = 189;
+pub const ASN1_R_WRONG_TAG: i32 = 190;
+pub const ASN1_R_WRONG_TYPE: i32 = 191;
+pub const ASN1_R_NESTED_TOO_DEEP: i32 = 192;
+pub const ASN1_R_BAD_TEMPLATE: i32 = 193;
+pub const ASN1_R_INVALID_BIT_STRING_PADDING: i32 = 194;
+pub const ASN1_R_WRONG_INTEGER_TYPE: i32 = 195;
+pub const ASN1_R_INVALID_INTEGER: i32 = 196;
+pub const ASN1_TFLG_OPTIONAL: i32 = 1;
+pub const ASN1_TFLG_SET_OF: i32 = 2;
+pub const ASN1_TFLG_SEQUENCE_OF: i32 = 4;
+pub const ASN1_TFLG_SK_MASK: i32 = 6;
+pub const ASN1_TFLG_IMPTAG: i32 = 8;
+pub const ASN1_TFLG_EXPTAG: i32 = 16;
+pub const ASN1_TFLG_TAG_MASK: i32 = 24;
+pub const ASN1_TFLG_UNIVERSAL: i32 = 0;
+pub const ASN1_TFLG_APPLICATION: i32 = 64;
+pub const ASN1_TFLG_CONTEXT: i32 = 128;
+pub const ASN1_TFLG_PRIVATE: i32 = 192;
+pub const ASN1_TFLG_TAG_CLASS: i32 = 192;
+pub const ASN1_TFLG_ADB_MASK: i32 = 768;
+pub const ASN1_TFLG_ADB_OID: i32 = 256;
+pub const ASN1_TFLG_COMBINE: i32 = 1024;
+pub const ASN1_ITYPE_PRIMITIVE: i32 = 0;
+pub const ASN1_ITYPE_SEQUENCE: i32 = 1;
+pub const ASN1_ITYPE_CHOICE: i32 = 2;
+pub const ASN1_ITYPE_EXTERN: i32 = 4;
+pub const ASN1_ITYPE_MSTRING: i32 = 5;
+pub const ASN1_AFLG_REFCOUNT: i32 = 1;
+pub const ASN1_AFLG_ENCODING: i32 = 2;
+pub const ASN1_OP_NEW_PRE: i32 = 0;
+pub const ASN1_OP_NEW_POST: i32 = 1;
+pub const ASN1_OP_FREE_PRE: i32 = 2;
+pub const ASN1_OP_FREE_POST: i32 = 3;
+pub const ASN1_OP_D2I_PRE: i32 = 4;
+pub const ASN1_OP_D2I_POST: i32 = 5;
+pub const ASN1_OP_PRINT_PRE: i32 = 8;
+pub const ASN1_OP_PRINT_POST: i32 = 9;
+pub const ASN1_OP_STREAM_PRE: i32 = 10;
+pub const ASN1_OP_STREAM_POST: i32 = 11;
+pub const ASN1_OP_DETACHED_PRE: i32 = 12;
+pub const ASN1_OP_DETACHED_POST: i32 = 13;
+pub const BLAKE2B256_DIGEST_LENGTH: i32 = 32;
+pub const BLAKE2B_CBLOCK: i32 = 128;
+pub const BF_ENCRYPT: i32 = 1;
+pub const BF_DECRYPT: i32 = 0;
+pub const BF_ROUNDS: i32 = 16;
+pub const BF_BLOCK: i32 = 8;
+pub const CBS_ASN1_TAG_SHIFT: i32 = 24;
+pub const CBS_ASN1_CONSTRUCTED: i32 = 536870912;
+pub const CBS_ASN1_UNIVERSAL: i32 = 0;
+pub const CBS_ASN1_APPLICATION: i32 = 1073741824;
+pub const CBS_ASN1_CONTEXT_SPECIFIC: i64 = 2147483648;
+pub const CBS_ASN1_PRIVATE: i64 = 3221225472;
+pub const CBS_ASN1_CLASS_MASK: i64 = 3221225472;
+pub const CBS_ASN1_TAG_NUMBER_MASK: i32 = 536870911;
+pub const CBS_ASN1_BOOLEAN: i32 = 1;
+pub const CBS_ASN1_INTEGER: i32 = 2;
+pub const CBS_ASN1_BITSTRING: i32 = 3;
+pub const CBS_ASN1_OCTETSTRING: i32 = 4;
+pub const CBS_ASN1_NULL: i32 = 5;
+pub const CBS_ASN1_OBJECT: i32 = 6;
+pub const CBS_ASN1_ENUMERATED: i32 = 10;
+pub const CBS_ASN1_UTF8STRING: i32 = 12;
+pub const CBS_ASN1_SEQUENCE: i32 = 536870928;
+pub const CBS_ASN1_SET: i32 = 536870929;
+pub const CBS_ASN1_NUMERICSTRING: i32 = 18;
+pub const CBS_ASN1_PRINTABLESTRING: i32 = 19;
+pub const CBS_ASN1_T61STRING: i32 = 20;
+pub const CBS_ASN1_VIDEOTEXSTRING: i32 = 21;
+pub const CBS_ASN1_IA5STRING: i32 = 22;
+pub const CBS_ASN1_UTCTIME: i32 = 23;
+pub const CBS_ASN1_GENERALIZEDTIME: i32 = 24;
+pub const CBS_ASN1_GRAPHICSTRING: i32 = 25;
+pub const CBS_ASN1_VISIBLESTRING: i32 = 26;
+pub const CBS_ASN1_GENERALSTRING: i32 = 27;
+pub const CBS_ASN1_UNIVERSALSTRING: i32 = 28;
+pub const CBS_ASN1_BMPSTRING: i32 = 30;
+pub const EVP_CIPH_STREAM_CIPHER: i32 = 0;
+pub const EVP_CIPH_ECB_MODE: i32 = 1;
+pub const EVP_CIPH_CBC_MODE: i32 = 2;
+pub const EVP_CIPH_CFB_MODE: i32 = 3;
+pub const EVP_CIPH_OFB_MODE: i32 = 4;
+pub const EVP_CIPH_CTR_MODE: i32 = 5;
+pub const EVP_CIPH_GCM_MODE: i32 = 6;
+pub const EVP_CIPH_XTS_MODE: i32 = 7;
+pub const EVP_CIPH_CCM_MODE: i32 = 8;
+pub const EVP_CIPH_FLAG_LENGTH_BITS: i32 = 8192;
+pub const EVP_CIPH_OCB_MODE: i32 = 9;
+pub const EVP_CIPH_WRAP_MODE: i32 = 10;
+pub const EVP_CIPH_VARIABLE_LENGTH: i32 = 64;
+pub const EVP_CIPH_ALWAYS_CALL_INIT: i32 = 128;
+pub const EVP_CIPH_CUSTOM_IV: i32 = 256;
+pub const EVP_CIPH_CTRL_INIT: i32 = 512;
+pub const EVP_CIPH_FLAG_CUSTOM_CIPHER: i32 = 1024;
+pub const EVP_CIPH_FLAG_AEAD_CIPHER: i32 = 2048;
+pub const EVP_CIPH_CUSTOM_COPY: i32 = 4096;
+pub const EVP_CIPH_FLAG_NON_FIPS_ALLOW: i32 = 0;
+pub const EVP_CIPHER_CTX_FLAG_WRAP_ALLOW: i32 = 0;
+pub const EVP_CIPH_NO_PADDING: i32 = 2048;
+pub const EVP_CTRL_INIT: i32 = 0;
+pub const EVP_CTRL_SET_KEY_LENGTH: i32 = 1;
+pub const EVP_CTRL_GET_RC2_KEY_BITS: i32 = 2;
+pub const EVP_CTRL_SET_RC2_KEY_BITS: i32 = 3;
+pub const EVP_CTRL_GET_RC5_ROUNDS: i32 = 4;
+pub const EVP_CTRL_SET_RC5_ROUNDS: i32 = 5;
+pub const EVP_CTRL_RAND_KEY: i32 = 6;
+pub const EVP_CTRL_PBE_PRF_NID: i32 = 7;
+pub const EVP_CTRL_COPY: i32 = 8;
+pub const EVP_CTRL_AEAD_SET_IVLEN: i32 = 9;
+pub const EVP_CTRL_AEAD_GET_TAG: i32 = 16;
+pub const EVP_CTRL_AEAD_SET_TAG: i32 = 17;
+pub const EVP_CTRL_AEAD_SET_IV_FIXED: i32 = 18;
+pub const EVP_CTRL_GCM_IV_GEN: i32 = 19;
+pub const EVP_CTRL_CCM_SET_L: i32 = 20;
+pub const EVP_CTRL_AEAD_SET_MAC_KEY: i32 = 23;
+pub const EVP_CTRL_GCM_SET_IV_INV: i32 = 24;
+pub const EVP_CTRL_GET_IVLEN: i32 = 25;
+pub const EVP_GCM_TLS_FIXED_IV_LEN: i32 = 4;
+pub const EVP_GCM_TLS_EXPLICIT_IV_LEN: i32 = 8;
+pub const EVP_GCM_TLS_TAG_LEN: i32 = 16;
+pub const EVP_CTRL_GCM_SET_IVLEN: i32 = 9;
+pub const EVP_CTRL_GCM_GET_TAG: i32 = 16;
+pub const EVP_CTRL_GCM_SET_TAG: i32 = 17;
+pub const EVP_CTRL_GCM_SET_IV_FIXED: i32 = 18;
+pub const EVP_MAX_KEY_LENGTH: i32 = 64;
+pub const EVP_MAX_IV_LENGTH: i32 = 16;
+pub const EVP_MAX_BLOCK_LENGTH: i32 = 32;
+pub const EVP_CTRL_AEAD_TLS1_AAD: i32 = 22;
+pub const EVP_AEAD_TLS1_AAD_LEN: i32 = 13;
+pub const CIPHER_R_AES_KEY_SETUP_FAILED: i32 = 100;
+pub const CIPHER_R_BAD_DECRYPT: i32 = 101;
+pub const CIPHER_R_BAD_KEY_LENGTH: i32 = 102;
+pub const CIPHER_R_BUFFER_TOO_SMALL: i32 = 103;
+pub const CIPHER_R_CTRL_NOT_IMPLEMENTED: i32 = 104;
+pub const CIPHER_R_CTRL_OPERATION_NOT_IMPLEMENTED: i32 = 105;
+pub const CIPHER_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH: i32 = 106;
+pub const CIPHER_R_INITIALIZATION_ERROR: i32 = 107;
+pub const CIPHER_R_INPUT_NOT_INITIALIZED: i32 = 108;
+pub const CIPHER_R_INVALID_AD_SIZE: i32 = 109;
+pub const CIPHER_R_INVALID_KEY_LENGTH: i32 = 110;
+pub const CIPHER_R_INVALID_NONCE_SIZE: i32 = 111;
+pub const CIPHER_R_INVALID_OPERATION: i32 = 112;
+pub const CIPHER_R_IV_TOO_LARGE: i32 = 113;
+pub const CIPHER_R_NO_CIPHER_SET: i32 = 114;
+pub const CIPHER_R_OUTPUT_ALIASES_INPUT: i32 = 115;
+pub const CIPHER_R_TAG_TOO_LARGE: i32 = 116;
+pub const CIPHER_R_TOO_LARGE: i32 = 117;
+pub const CIPHER_R_UNSUPPORTED_AD_SIZE: i32 = 118;
+pub const CIPHER_R_UNSUPPORTED_INPUT_SIZE: i32 = 119;
+pub const CIPHER_R_UNSUPPORTED_KEY_SIZE: i32 = 120;
+pub const CIPHER_R_UNSUPPORTED_NONCE_SIZE: i32 = 121;
+pub const CIPHER_R_UNSUPPORTED_TAG_SIZE: i32 = 122;
+pub const CIPHER_R_WRONG_FINAL_BLOCK_LENGTH: i32 = 123;
+pub const CIPHER_R_NO_DIRECTION_SET: i32 = 124;
+pub const CIPHER_R_INVALID_NONCE: i32 = 125;
+pub const CIPHER_R_XTS_DUPLICATED_KEYS: i32 = 138;
+pub const CIPHER_R_XTS_DATA_UNIT_IS_TOO_LARGE: i32 = 139;
+pub const CIPHER_R_CTRL_OPERATION_NOT_PERFORMED: i32 = 140;
+pub const CIPHER_R_SERIALIZATION_INVALID_EVP_AEAD_CTX: i32 = 141;
+pub const CIPHER_R_ALIGNMENT_CHANGED: i32 = 142;
+pub const CIPHER_R_SERIALIZATION_INVALID_SERDE_VERSION: i32 = 143;
+pub const CIPHER_R_SERIALIZATION_INVALID_CIPHER_ID: i32 = 144;
+pub const CONF_MFLAGS_DEFAULT_SECTION: i32 = 0;
+pub const CONF_MFLAGS_IGNORE_MISSING_FILE: i32 = 0;
+pub const CONF_R_LIST_CANNOT_BE_NULL: i32 = 100;
+pub const CONF_R_MISSING_CLOSE_SQUARE_BRACKET: i32 = 101;
+pub const CONF_R_MISSING_EQUAL_SIGN: i32 = 102;
+pub const CONF_R_NO_CLOSE_BRACE: i32 = 103;
+pub const CONF_R_UNABLE_TO_CREATE_NEW_SECTION: i32 = 104;
+pub const CONF_R_VARIABLE_HAS_NO_VALUE: i32 = 105;
+pub const CONF_R_VARIABLE_EXPANSION_TOO_LONG: i32 = 106;
+pub const CONF_R_VARIABLE_EXPANSION_NOT_SUPPORTED: i32 = 107;
+pub const CTR_DRBG_ENTROPY_LEN: i32 = 48;
+pub const CTR_DRBG_MAX_GENERATE_LENGTH: i32 = 65536;
+pub const X25519_PRIVATE_KEY_LEN: i32 = 32;
+pub const X25519_PUBLIC_VALUE_LEN: i32 = 32;
+pub const X25519_SHARED_KEY_LEN: i32 = 32;
+pub const ED25519_PRIVATE_KEY_LEN: i32 = 64;
+pub const ED25519_PRIVATE_KEY_SEED_LEN: i32 = 32;
+pub const ED25519_PUBLIC_KEY_LEN: i32 = 32;
+pub const ED25519_SIGNATURE_LEN: i32 = 64;
+pub const ED25519_SEED_LEN: i32 = 32;
+pub const SPAKE2_MAX_MSG_SIZE: i32 = 32;
+pub const SPAKE2_MAX_KEY_SIZE: i32 = 64;
+pub const DES_ENCRYPT: i32 = 1;
+pub const DES_DECRYPT: i32 = 0;
+pub const DES_CBC_MODE: i32 = 0;
+pub const DES_PCBC_MODE: i32 = 1;
+pub const DH_GENERATOR_2: i32 = 2;
+pub const DH_GENERATOR_5: i32 = 5;
+pub const DH_CHECK_P_NOT_PRIME: i32 = 1;
+pub const DH_CHECK_P_NOT_SAFE_PRIME: i32 = 2;
+pub const DH_CHECK_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
+pub const DH_CHECK_NOT_SUITABLE_GENERATOR: i32 = 8;
+pub const DH_CHECK_Q_NOT_PRIME: i32 = 16;
+pub const DH_CHECK_INVALID_Q_VALUE: i32 = 32;
+pub const DH_NOT_SUITABLE_GENERATOR: i32 = 8;
+pub const DH_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
+pub const DH_CHECK_PUBKEY_TOO_SMALL: i32 = 1;
+pub const DH_CHECK_PUBKEY_TOO_LARGE: i32 = 2;
+pub const DH_CHECK_PUBKEY_INVALID: i32 = 4;
+pub const DH_FLAG_CACHE_MONT_P: i32 = 0;
+pub const DH_R_BAD_GENERATOR: i32 = 100;
+pub const DH_R_INVALID_PUBKEY: i32 = 101;
+pub const DH_R_MODULUS_TOO_LARGE: i32 = 102;
+pub const DH_R_NO_PRIVATE_VALUE: i32 = 103;
+pub const DH_R_DECODE_ERROR: i32 = 104;
+pub const DH_R_ENCODE_ERROR: i32 = 105;
+pub const DH_R_INVALID_NID: i32 = 106;
+pub const DH_R_INVALID_PARAMETERS: i32 = 107;
+pub const DH_F_DH_BUILTIN_GENPARAMS: i32 = 0;
+pub const EVP_MAX_MD_SIZE: i32 = 64;
+pub const EVP_MAX_MD_CHAINING_LENGTH: i32 = 64;
+pub const EVP_MAX_MD_BLOCK_SIZE: i32 = 128;
+pub const EVP_MD_FLAG_DIGALGID_ABSENT: i32 = 2;
+pub const EVP_MD_FLAG_XOF: i32 = 4;
+pub const EVP_MD_CTX_FLAG_NON_FIPS_ALLOW: i32 = 0;
+pub const DIGEST_R_INPUT_NOT_INITIALIZED: i32 = 100;
+pub const DIGEST_R_DECODE_ERROR: i32 = 101;
+pub const DIGEST_R_UNKNOWN_HASH: i32 = 102;
+pub const DSA_R_BAD_Q_VALUE: i32 = 100;
+pub const DSA_R_MISSING_PARAMETERS: i32 = 101;
+pub const DSA_R_MODULUS_TOO_LARGE: i32 = 102;
+pub const DSA_R_NEED_NEW_SETUP_VALUES: i32 = 103;
+pub const DSA_R_BAD_VERSION: i32 = 104;
+pub const DSA_R_DECODE_ERROR: i32 = 105;
+pub const DSA_R_ENCODE_ERROR: i32 = 106;
+pub const DSA_R_INVALID_PARAMETERS: i32 = 107;
+pub const DSA_R_TOO_MANY_ITERATIONS: i32 = 108;
+pub const OPENSSL_EC_EXPLICIT_CURVE: i32 = 0;
+pub const OPENSSL_EC_NAMED_CURVE: i32 = 1;
+pub const ENGINE_R_OPERATION_NOT_SUPPORTED: i32 = 100;
+pub const EC_PKEY_NO_PARAMETERS: i32 = 1;
+pub const EC_PKEY_NO_PUBKEY: i32 = 2;
+pub const ECDSA_FLAG_OPAQUE: i32 = 1;
+pub const EC_R_BUFFER_TOO_SMALL: i32 = 100;
+pub const EC_R_COORDINATES_OUT_OF_RANGE: i32 = 101;
+pub const EC_R_D2I_ECPKPARAMETERS_FAILURE: i32 = 102;
+pub const EC_R_EC_GROUP_NEW_BY_NAME_FAILURE: i32 = 103;
+pub const EC_R_GROUP2PKPARAMETERS_FAILURE: i32 = 104;
+pub const EC_R_I2D_ECPKPARAMETERS_FAILURE: i32 = 105;
+pub const EC_R_INCOMPATIBLE_OBJECTS: i32 = 106;
+pub const EC_R_INVALID_COMPRESSED_POINT: i32 = 107;
+pub const EC_R_INVALID_COMPRESSION_BIT: i32 = 108;
+pub const EC_R_INVALID_ENCODING: i32 = 109;
+pub const EC_R_INVALID_FIELD: i32 = 110;
+pub const EC_R_INVALID_FORM: i32 = 111;
+pub const EC_R_INVALID_GROUP_ORDER: i32 = 112;
+pub const EC_R_INVALID_PRIVATE_KEY: i32 = 113;
+pub const EC_R_MISSING_PARAMETERS: i32 = 114;
+pub const EC_R_MISSING_PRIVATE_KEY: i32 = 115;
+pub const EC_R_NON_NAMED_CURVE: i32 = 116;
+pub const EC_R_NOT_INITIALIZED: i32 = 117;
+pub const EC_R_PKPARAMETERS2GROUP_FAILURE: i32 = 118;
+pub const EC_R_POINT_AT_INFINITY: i32 = 119;
+pub const EC_R_POINT_IS_NOT_ON_CURVE: i32 = 120;
+pub const EC_R_SLOT_FULL: i32 = 121;
+pub const EC_R_UNDEFINED_GENERATOR: i32 = 122;
+pub const EC_R_UNKNOWN_GROUP: i32 = 123;
+pub const EC_R_UNKNOWN_ORDER: i32 = 124;
+pub const EC_R_WRONG_ORDER: i32 = 125;
+pub const EC_R_BIGNUM_OUT_OF_RANGE: i32 = 126;
+pub const EC_R_WRONG_CURVE_PARAMETERS: i32 = 127;
+pub const EC_R_DECODE_ERROR: i32 = 128;
+pub const EC_R_ENCODE_ERROR: i32 = 129;
+pub const EC_R_GROUP_MISMATCH: i32 = 130;
+pub const EC_R_INVALID_COFACTOR: i32 = 131;
+pub const EC_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 132;
+pub const EC_R_INVALID_SCALAR: i32 = 133;
+pub const ECDH_R_KDF_FAILED: i32 = 100;
+pub const ECDH_R_NO_PRIVATE_VALUE: i32 = 101;
+pub const ECDH_R_POINT_ARITHMETIC_FAILURE: i32 = 102;
+pub const ECDH_R_UNKNOWN_DIGEST_LENGTH: i32 = 103;
+pub const ECDSA_R_BAD_SIGNATURE: i32 = 100;
+pub const ECDSA_R_MISSING_PARAMETERS: i32 = 101;
+pub const ECDSA_R_NEED_NEW_SETUP_VALUES: i32 = 102;
+pub const ECDSA_R_NOT_IMPLEMENTED: i32 = 103;
+pub const ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED: i32 = 104;
+pub const ECDSA_R_ENCODE_ERROR: i32 = 105;
+pub const ECDSA_R_MISMATCHED_SIGNATURE: i32 = 205;
+pub const ECDSA_R_TOO_MANY_ITERATIONS: i32 = 106;
+pub const EVP_R_BUFFER_TOO_SMALL: i32 = 100;
+pub const EVP_R_COMMAND_NOT_SUPPORTED: i32 = 101;
+pub const EVP_R_DECODE_ERROR: i32 = 102;
+pub const EVP_R_DIFFERENT_KEY_TYPES: i32 = 103;
+pub const EVP_R_DIFFERENT_PARAMETERS: i32 = 104;
+pub const EVP_R_ENCODE_ERROR: i32 = 105;
+pub const EVP_R_EXPECTING_AN_EC_KEY_KEY: i32 = 106;
+pub const EVP_R_EXPECTING_AN_RSA_KEY: i32 = 107;
+pub const EVP_R_EXPECTING_A_DSA_KEY: i32 = 108;
+pub const EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE: i32 = 109;
+pub const EVP_R_INVALID_DIGEST_LENGTH: i32 = 110;
+pub const EVP_R_INVALID_DIGEST_TYPE: i32 = 111;
+pub const EVP_R_INVALID_KEYBITS: i32 = 112;
+pub const EVP_R_INVALID_MGF1_MD: i32 = 113;
+pub const EVP_R_INVALID_OPERATION: i32 = 114;
+pub const EVP_R_INVALID_PADDING_MODE: i32 = 115;
+pub const EVP_R_INVALID_PSS_SALTLEN: i32 = 116;
+pub const EVP_R_KEYS_NOT_SET: i32 = 117;
+pub const EVP_R_MISSING_PARAMETERS: i32 = 118;
+pub const EVP_R_NO_DEFAULT_DIGEST: i32 = 119;
+pub const EVP_R_NO_KEY_SET: i32 = 120;
+pub const EVP_R_NO_MDC2_SUPPORT: i32 = 121;
+pub const EVP_R_NO_NID_FOR_CURVE: i32 = 122;
+pub const EVP_R_NO_OPERATION_SET: i32 = 123;
+pub const EVP_R_NO_PARAMETERS_SET: i32 = 124;
+pub const EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE: i32 = 125;
+pub const EVP_R_OPERATON_NOT_INITIALIZED: i32 = 126;
+pub const EVP_R_UNKNOWN_PUBLIC_KEY_TYPE: i32 = 127;
+pub const EVP_R_UNSUPPORTED_ALGORITHM: i32 = 128;
+pub const EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 129;
+pub const EVP_R_NOT_A_PRIVATE_KEY: i32 = 130;
+pub const EVP_R_INVALID_SIGNATURE: i32 = 131;
+pub const EVP_R_MEMORY_LIMIT_EXCEEDED: i32 = 132;
+pub const EVP_R_INVALID_PARAMETERS: i32 = 133;
+pub const EVP_R_INVALID_PEER_KEY: i32 = 134;
+pub const EVP_R_NOT_XOF_OR_INVALID_LENGTH: i32 = 135;
+pub const EVP_R_EMPTY_PSK: i32 = 136;
+pub const EVP_R_INVALID_BUFFER_SIZE: i32 = 137;
+pub const EVP_R_BAD_DECRYPT: i32 = 138;
+pub const EVP_R_EXPECTING_A_DH_KEY: i32 = 139;
+pub const EVP_R_INVALID_PSS_MD: i32 = 500;
+pub const EVP_R_INVALID_PSS_SALT_LEN: i32 = 501;
+pub const EVP_R_INVALID_PSS_TRAILER_FIELD: i32 = 502;
+pub const EVP_AEAD_MAX_KEY_LENGTH: i32 = 80;
+pub const EVP_AEAD_MAX_NONCE_LENGTH: i32 = 24;
+pub const EVP_AEAD_MAX_OVERHEAD: i32 = 64;
+pub const EVP_AEAD_DEFAULT_TAG_LENGTH: i32 = 0;
+pub const FIPS_AES_GCM_NONCE_LENGTH: i32 = 12;
+pub const SN_undef: &[u8; 6] = b"UNDEF\0";
+pub const LN_undef: &[u8; 10] = b"undefined\0";
+pub const NID_undef: i32 = 0;
+pub const OBJ_undef: i32 = 0;
+pub const SN_rsadsi: &[u8; 7] = b"rsadsi\0";
+pub const LN_rsadsi: &[u8; 24] = b"RSA Data Security, Inc.\0";
+pub const NID_rsadsi: i32 = 1;
+pub const SN_pkcs: &[u8; 5] = b"pkcs\0";
+pub const LN_pkcs: &[u8; 29] = b"RSA Data Security, Inc. PKCS\0";
+pub const NID_pkcs: i32 = 2;
+pub const SN_md2: &[u8; 4] = b"MD2\0";
+pub const LN_md2: &[u8; 4] = b"md2\0";
+pub const NID_md2: i32 = 3;
+pub const SN_md5: &[u8; 4] = b"MD5\0";
+pub const LN_md5: &[u8; 4] = b"md5\0";
+pub const NID_md5: i32 = 4;
+pub const SN_rc4: &[u8; 4] = b"RC4\0";
+pub const LN_rc4: &[u8; 4] = b"rc4\0";
+pub const NID_rc4: i32 = 5;
+pub const LN_rsaEncryption: &[u8; 14] = b"rsaEncryption\0";
+pub const NID_rsaEncryption: i32 = 6;
+pub const SN_md2WithRSAEncryption: &[u8; 8] = b"RSA-MD2\0";
+pub const LN_md2WithRSAEncryption: &[u8; 21] = b"md2WithRSAEncryption\0";
+pub const NID_md2WithRSAEncryption: i32 = 7;
+pub const SN_md5WithRSAEncryption: &[u8; 8] = b"RSA-MD5\0";
+pub const LN_md5WithRSAEncryption: &[u8; 21] = b"md5WithRSAEncryption\0";
+pub const NID_md5WithRSAEncryption: i32 = 8;
+pub const SN_pbeWithMD2AndDES_CBC: &[u8; 12] = b"PBE-MD2-DES\0";
+pub const LN_pbeWithMD2AndDES_CBC: &[u8; 21] = b"pbeWithMD2AndDES-CBC\0";
+pub const NID_pbeWithMD2AndDES_CBC: i32 = 9;
+pub const SN_pbeWithMD5AndDES_CBC: &[u8; 12] = b"PBE-MD5-DES\0";
+pub const LN_pbeWithMD5AndDES_CBC: &[u8; 21] = b"pbeWithMD5AndDES-CBC\0";
+pub const NID_pbeWithMD5AndDES_CBC: i32 = 10;
+pub const SN_X500: &[u8; 5] = b"X500\0";
+pub const LN_X500: &[u8; 27] = b"directory services (X.500)\0";
+pub const NID_X500: i32 = 11;
+pub const SN_X509: &[u8; 5] = b"X509\0";
+pub const NID_X509: i32 = 12;
+pub const SN_commonName: &[u8; 3] = b"CN\0";
+pub const LN_commonName: &[u8; 11] = b"commonName\0";
+pub const NID_commonName: i32 = 13;
+pub const SN_countryName: &[u8; 2] = b"C\0";
+pub const LN_countryName: &[u8; 12] = b"countryName\0";
+pub const NID_countryName: i32 = 14;
+pub const SN_localityName: &[u8; 2] = b"L\0";
+pub const LN_localityName: &[u8; 13] = b"localityName\0";
+pub const NID_localityName: i32 = 15;
+pub const SN_stateOrProvinceName: &[u8; 3] = b"ST\0";
+pub const LN_stateOrProvinceName: &[u8; 20] = b"stateOrProvinceName\0";
+pub const NID_stateOrProvinceName: i32 = 16;
+pub const SN_organizationName: &[u8; 2] = b"O\0";
+pub const LN_organizationName: &[u8; 17] = b"organizationName\0";
+pub const NID_organizationName: i32 = 17;
+pub const SN_organizationalUnitName: &[u8; 3] = b"OU\0";
+pub const LN_organizationalUnitName: &[u8; 23] = b"organizationalUnitName\0";
+pub const NID_organizationalUnitName: i32 = 18;
+pub const SN_rsa: &[u8; 4] = b"RSA\0";
+pub const LN_rsa: &[u8; 4] = b"rsa\0";
+pub const NID_rsa: i32 = 19;
+pub const SN_pkcs7: &[u8; 6] = b"pkcs7\0";
+pub const NID_pkcs7: i32 = 20;
+pub const LN_pkcs7_data: &[u8; 11] = b"pkcs7-data\0";
+pub const NID_pkcs7_data: i32 = 21;
+pub const LN_pkcs7_signed: &[u8; 17] = b"pkcs7-signedData\0";
+pub const NID_pkcs7_signed: i32 = 22;
+pub const LN_pkcs7_enveloped: &[u8; 20] = b"pkcs7-envelopedData\0";
+pub const NID_pkcs7_enveloped: i32 = 23;
+pub const LN_pkcs7_signedAndEnveloped: &[u8; 29] = b"pkcs7-signedAndEnvelopedData\0";
+pub const NID_pkcs7_signedAndEnveloped: i32 = 24;
+pub const LN_pkcs7_digest: &[u8; 17] = b"pkcs7-digestData\0";
+pub const NID_pkcs7_digest: i32 = 25;
+pub const LN_pkcs7_encrypted: &[u8; 20] = b"pkcs7-encryptedData\0";
+pub const NID_pkcs7_encrypted: i32 = 26;
+pub const SN_pkcs3: &[u8; 6] = b"pkcs3\0";
+pub const NID_pkcs3: i32 = 27;
+pub const LN_dhKeyAgreement: &[u8; 15] = b"dhKeyAgreement\0";
+pub const NID_dhKeyAgreement: i32 = 28;
+pub const SN_des_ecb: &[u8; 8] = b"DES-ECB\0";
+pub const LN_des_ecb: &[u8; 8] = b"des-ecb\0";
+pub const NID_des_ecb: i32 = 29;
+pub const SN_des_cfb64: &[u8; 8] = b"DES-CFB\0";
+pub const LN_des_cfb64: &[u8; 8] = b"des-cfb\0";
+pub const NID_des_cfb64: i32 = 30;
+pub const SN_des_cbc: &[u8; 8] = b"DES-CBC\0";
+pub const LN_des_cbc: &[u8; 8] = b"des-cbc\0";
+pub const NID_des_cbc: i32 = 31;
+pub const SN_des_ede_ecb: &[u8; 8] = b"DES-EDE\0";
+pub const LN_des_ede_ecb: &[u8; 8] = b"des-ede\0";
+pub const NID_des_ede_ecb: i32 = 32;
+pub const SN_des_ede3_ecb: &[u8; 9] = b"DES-EDE3\0";
+pub const LN_des_ede3_ecb: &[u8; 9] = b"des-ede3\0";
+pub const NID_des_ede3_ecb: i32 = 33;
+pub const SN_idea_cbc: &[u8; 9] = b"IDEA-CBC\0";
+pub const LN_idea_cbc: &[u8; 9] = b"idea-cbc\0";
+pub const NID_idea_cbc: i32 = 34;
+pub const SN_idea_cfb64: &[u8; 9] = b"IDEA-CFB\0";
+pub const LN_idea_cfb64: &[u8; 9] = b"idea-cfb\0";
+pub const NID_idea_cfb64: i32 = 35;
+pub const SN_idea_ecb: &[u8; 9] = b"IDEA-ECB\0";
+pub const LN_idea_ecb: &[u8; 9] = b"idea-ecb\0";
+pub const NID_idea_ecb: i32 = 36;
+pub const SN_rc2_cbc: &[u8; 8] = b"RC2-CBC\0";
+pub const LN_rc2_cbc: &[u8; 8] = b"rc2-cbc\0";
+pub const NID_rc2_cbc: i32 = 37;
+pub const SN_rc2_ecb: &[u8; 8] = b"RC2-ECB\0";
+pub const LN_rc2_ecb: &[u8; 8] = b"rc2-ecb\0";
+pub const NID_rc2_ecb: i32 = 38;
+pub const SN_rc2_cfb64: &[u8; 8] = b"RC2-CFB\0";
+pub const LN_rc2_cfb64: &[u8; 8] = b"rc2-cfb\0";
+pub const NID_rc2_cfb64: i32 = 39;
+pub const SN_rc2_ofb64: &[u8; 8] = b"RC2-OFB\0";
+pub const LN_rc2_ofb64: &[u8; 8] = b"rc2-ofb\0";
+pub const NID_rc2_ofb64: i32 = 40;
+pub const SN_sha: &[u8; 4] = b"SHA\0";
+pub const LN_sha: &[u8; 4] = b"sha\0";
+pub const NID_sha: i32 = 41;
+pub const SN_shaWithRSAEncryption: &[u8; 8] = b"RSA-SHA\0";
+pub const LN_shaWithRSAEncryption: &[u8; 21] = b"shaWithRSAEncryption\0";
+pub const NID_shaWithRSAEncryption: i32 = 42;
+pub const SN_des_ede_cbc: &[u8; 12] = b"DES-EDE-CBC\0";
+pub const LN_des_ede_cbc: &[u8; 12] = b"des-ede-cbc\0";
+pub const NID_des_ede_cbc: i32 = 43;
+pub const SN_des_ede3_cbc: &[u8; 13] = b"DES-EDE3-CBC\0";
+pub const LN_des_ede3_cbc: &[u8; 13] = b"des-ede3-cbc\0";
+pub const NID_des_ede3_cbc: i32 = 44;
+pub const SN_des_ofb64: &[u8; 8] = b"DES-OFB\0";
+pub const LN_des_ofb64: &[u8; 8] = b"des-ofb\0";
+pub const NID_des_ofb64: i32 = 45;
+pub const SN_idea_ofb64: &[u8; 9] = b"IDEA-OFB\0";
+pub const LN_idea_ofb64: &[u8; 9] = b"idea-ofb\0";
+pub const NID_idea_ofb64: i32 = 46;
+pub const SN_pkcs9: &[u8; 6] = b"pkcs9\0";
+pub const NID_pkcs9: i32 = 47;
+pub const LN_pkcs9_emailAddress: &[u8; 13] = b"emailAddress\0";
+pub const NID_pkcs9_emailAddress: i32 = 48;
+pub const LN_pkcs9_unstructuredName: &[u8; 17] = b"unstructuredName\0";
+pub const NID_pkcs9_unstructuredName: i32 = 49;
+pub const LN_pkcs9_contentType: &[u8; 12] = b"contentType\0";
+pub const NID_pkcs9_contentType: i32 = 50;
+pub const LN_pkcs9_messageDigest: &[u8; 14] = b"messageDigest\0";
+pub const NID_pkcs9_messageDigest: i32 = 51;
+pub const LN_pkcs9_signingTime: &[u8; 12] = b"signingTime\0";
+pub const NID_pkcs9_signingTime: i32 = 52;
+pub const LN_pkcs9_countersignature: &[u8; 17] = b"countersignature\0";
+pub const NID_pkcs9_countersignature: i32 = 53;
+pub const LN_pkcs9_challengePassword: &[u8; 18] = b"challengePassword\0";
+pub const NID_pkcs9_challengePassword: i32 = 54;
+pub const LN_pkcs9_unstructuredAddress: &[u8; 20] = b"unstructuredAddress\0";
+pub const NID_pkcs9_unstructuredAddress: i32 = 55;
+pub const LN_pkcs9_extCertAttributes: &[u8; 30] = b"extendedCertificateAttributes\0";
+pub const NID_pkcs9_extCertAttributes: i32 = 56;
+pub const SN_netscape: &[u8; 9] = b"Netscape\0";
+pub const LN_netscape: &[u8; 30] = b"Netscape Communications Corp.\0";
+pub const NID_netscape: i32 = 57;
+pub const SN_netscape_cert_extension: &[u8; 10] = b"nsCertExt\0";
+pub const LN_netscape_cert_extension: &[u8; 31] = b"Netscape Certificate Extension\0";
+pub const NID_netscape_cert_extension: i32 = 58;
+pub const SN_netscape_data_type: &[u8; 11] = b"nsDataType\0";
+pub const LN_netscape_data_type: &[u8; 19] = b"Netscape Data Type\0";
+pub const NID_netscape_data_type: i32 = 59;
+pub const SN_des_ede_cfb64: &[u8; 12] = b"DES-EDE-CFB\0";
+pub const LN_des_ede_cfb64: &[u8; 12] = b"des-ede-cfb\0";
+pub const NID_des_ede_cfb64: i32 = 60;
+pub const SN_des_ede3_cfb64: &[u8; 13] = b"DES-EDE3-CFB\0";
+pub const LN_des_ede3_cfb64: &[u8; 13] = b"des-ede3-cfb\0";
+pub const NID_des_ede3_cfb64: i32 = 61;
+pub const SN_des_ede_ofb64: &[u8; 12] = b"DES-EDE-OFB\0";
+pub const LN_des_ede_ofb64: &[u8; 12] = b"des-ede-ofb\0";
+pub const NID_des_ede_ofb64: i32 = 62;
+pub const SN_des_ede3_ofb64: &[u8; 13] = b"DES-EDE3-OFB\0";
+pub const LN_des_ede3_ofb64: &[u8; 13] = b"des-ede3-ofb\0";
+pub const NID_des_ede3_ofb64: i32 = 63;
+pub const SN_sha1: &[u8; 5] = b"SHA1\0";
+pub const LN_sha1: &[u8; 5] = b"sha1\0";
+pub const NID_sha1: i32 = 64;
+pub const SN_sha1WithRSAEncryption: &[u8; 9] = b"RSA-SHA1\0";
+pub const LN_sha1WithRSAEncryption: &[u8; 22] = b"sha1WithRSAEncryption\0";
+pub const NID_sha1WithRSAEncryption: i32 = 65;
+pub const SN_dsaWithSHA: &[u8; 8] = b"DSA-SHA\0";
+pub const LN_dsaWithSHA: &[u8; 11] = b"dsaWithSHA\0";
+pub const NID_dsaWithSHA: i32 = 66;
+pub const SN_dsa_2: &[u8; 8] = b"DSA-old\0";
+pub const LN_dsa_2: &[u8; 18] = b"dsaEncryption-old\0";
+pub const NID_dsa_2: i32 = 67;
+pub const SN_pbeWithSHA1AndRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-64\0";
+pub const LN_pbeWithSHA1AndRC2_CBC: &[u8; 22] = b"pbeWithSHA1AndRC2-CBC\0";
+pub const NID_pbeWithSHA1AndRC2_CBC: i32 = 68;
+pub const LN_id_pbkdf2: &[u8; 7] = b"PBKDF2\0";
+pub const NID_id_pbkdf2: i32 = 69;
+pub const SN_dsaWithSHA1_2: &[u8; 13] = b"DSA-SHA1-old\0";
+pub const LN_dsaWithSHA1_2: &[u8; 16] = b"dsaWithSHA1-old\0";
+pub const NID_dsaWithSHA1_2: i32 = 70;
+pub const SN_netscape_cert_type: &[u8; 11] = b"nsCertType\0";
+pub const LN_netscape_cert_type: &[u8; 19] = b"Netscape Cert Type\0";
+pub const NID_netscape_cert_type: i32 = 71;
+pub const SN_netscape_base_url: &[u8; 10] = b"nsBaseUrl\0";
+pub const LN_netscape_base_url: &[u8; 18] = b"Netscape Base Url\0";
+pub const NID_netscape_base_url: i32 = 72;
+pub const SN_netscape_revocation_url: &[u8; 16] = b"nsRevocationUrl\0";
+pub const LN_netscape_revocation_url: &[u8; 24] = b"Netscape Revocation Url\0";
+pub const NID_netscape_revocation_url: i32 = 73;
+pub const SN_netscape_ca_revocation_url: &[u8; 18] = b"nsCaRevocationUrl\0";
+pub const LN_netscape_ca_revocation_url: &[u8; 27] = b"Netscape CA Revocation Url\0";
+pub const NID_netscape_ca_revocation_url: i32 = 74;
+pub const SN_netscape_renewal_url: &[u8; 13] = b"nsRenewalUrl\0";
+pub const LN_netscape_renewal_url: &[u8; 21] = b"Netscape Renewal Url\0";
+pub const NID_netscape_renewal_url: i32 = 75;
+pub const SN_netscape_ca_policy_url: &[u8; 14] = b"nsCaPolicyUrl\0";
+pub const LN_netscape_ca_policy_url: &[u8; 23] = b"Netscape CA Policy Url\0";
+pub const NID_netscape_ca_policy_url: i32 = 76;
+pub const SN_netscape_ssl_server_name: &[u8; 16] = b"nsSslServerName\0";
+pub const LN_netscape_ssl_server_name: &[u8; 25] = b"Netscape SSL Server Name\0";
+pub const NID_netscape_ssl_server_name: i32 = 77;
+pub const SN_netscape_comment: &[u8; 10] = b"nsComment\0";
+pub const LN_netscape_comment: &[u8; 17] = b"Netscape Comment\0";
+pub const NID_netscape_comment: i32 = 78;
+pub const SN_netscape_cert_sequence: &[u8; 15] = b"nsCertSequence\0";
+pub const LN_netscape_cert_sequence: &[u8; 30] = b"Netscape Certificate Sequence\0";
+pub const NID_netscape_cert_sequence: i32 = 79;
+pub const SN_desx_cbc: &[u8; 9] = b"DESX-CBC\0";
+pub const LN_desx_cbc: &[u8; 9] = b"desx-cbc\0";
+pub const NID_desx_cbc: i32 = 80;
+pub const SN_id_ce: &[u8; 6] = b"id-ce\0";
+pub const NID_id_ce: i32 = 81;
+pub const SN_subject_key_identifier: &[u8; 21] = b"subjectKeyIdentifier\0";
+pub const LN_subject_key_identifier: &[u8; 30] = b"X509v3 Subject Key Identifier\0";
+pub const NID_subject_key_identifier: i32 = 82;
+pub const SN_key_usage: &[u8; 9] = b"keyUsage\0";
+pub const LN_key_usage: &[u8; 17] = b"X509v3 Key Usage\0";
+pub const NID_key_usage: i32 = 83;
+pub const SN_private_key_usage_period: &[u8; 22] = b"privateKeyUsagePeriod\0";
+pub const LN_private_key_usage_period: &[u8; 32] = b"X509v3 Private Key Usage Period\0";
+pub const NID_private_key_usage_period: i32 = 84;
+pub const SN_subject_alt_name: &[u8; 15] = b"subjectAltName\0";
+pub const LN_subject_alt_name: &[u8; 32] = b"X509v3 Subject Alternative Name\0";
+pub const NID_subject_alt_name: i32 = 85;
+pub const SN_issuer_alt_name: &[u8; 14] = b"issuerAltName\0";
+pub const LN_issuer_alt_name: &[u8; 31] = b"X509v3 Issuer Alternative Name\0";
+pub const NID_issuer_alt_name: i32 = 86;
+pub const SN_basic_constraints: &[u8; 17] = b"basicConstraints\0";
+pub const LN_basic_constraints: &[u8; 25] = b"X509v3 Basic Constraints\0";
+pub const NID_basic_constraints: i32 = 87;
+pub const SN_crl_number: &[u8; 10] = b"crlNumber\0";
+pub const LN_crl_number: &[u8; 18] = b"X509v3 CRL Number\0";
+pub const NID_crl_number: i32 = 88;
+pub const SN_certificate_policies: &[u8; 20] = b"certificatePolicies\0";
+pub const LN_certificate_policies: &[u8; 28] = b"X509v3 Certificate Policies\0";
+pub const NID_certificate_policies: i32 = 89;
+pub const SN_authority_key_identifier: &[u8; 23] = b"authorityKeyIdentifier\0";
+pub const LN_authority_key_identifier: &[u8; 32] = b"X509v3 Authority Key Identifier\0";
+pub const NID_authority_key_identifier: i32 = 90;
+pub const SN_bf_cbc: &[u8; 7] = b"BF-CBC\0";
+pub const LN_bf_cbc: &[u8; 7] = b"bf-cbc\0";
+pub const NID_bf_cbc: i32 = 91;
+pub const SN_bf_ecb: &[u8; 7] = b"BF-ECB\0";
+pub const LN_bf_ecb: &[u8; 7] = b"bf-ecb\0";
+pub const NID_bf_ecb: i32 = 92;
+pub const SN_bf_cfb64: &[u8; 7] = b"BF-CFB\0";
+pub const LN_bf_cfb64: &[u8; 7] = b"bf-cfb\0";
+pub const NID_bf_cfb64: i32 = 93;
+pub const SN_bf_ofb64: &[u8; 7] = b"BF-OFB\0";
+pub const LN_bf_ofb64: &[u8; 7] = b"bf-ofb\0";
+pub const NID_bf_ofb64: i32 = 94;
+pub const SN_mdc2: &[u8; 5] = b"MDC2\0";
+pub const LN_mdc2: &[u8; 5] = b"mdc2\0";
+pub const NID_mdc2: i32 = 95;
+pub const SN_mdc2WithRSA: &[u8; 9] = b"RSA-MDC2\0";
+pub const LN_mdc2WithRSA: &[u8; 12] = b"mdc2WithRSA\0";
+pub const NID_mdc2WithRSA: i32 = 96;
+pub const SN_rc4_40: &[u8; 7] = b"RC4-40\0";
+pub const LN_rc4_40: &[u8; 7] = b"rc4-40\0";
+pub const NID_rc4_40: i32 = 97;
+pub const SN_rc2_40_cbc: &[u8; 11] = b"RC2-40-CBC\0";
+pub const LN_rc2_40_cbc: &[u8; 11] = b"rc2-40-cbc\0";
+pub const NID_rc2_40_cbc: i32 = 98;
+pub const SN_givenName: &[u8; 3] = b"GN\0";
+pub const LN_givenName: &[u8; 10] = b"givenName\0";
+pub const NID_givenName: i32 = 99;
+pub const SN_surname: &[u8; 3] = b"SN\0";
+pub const LN_surname: &[u8; 8] = b"surname\0";
+pub const NID_surname: i32 = 100;
+pub const SN_initials: &[u8; 9] = b"initials\0";
+pub const LN_initials: &[u8; 9] = b"initials\0";
+pub const NID_initials: i32 = 101;
+pub const SN_crl_distribution_points: &[u8; 22] = b"crlDistributionPoints\0";
+pub const LN_crl_distribution_points: &[u8; 31] = b"X509v3 CRL Distribution Points\0";
+pub const NID_crl_distribution_points: i32 = 103;
+pub const SN_md5WithRSA: &[u8; 11] = b"RSA-NP-MD5\0";
+pub const LN_md5WithRSA: &[u8; 11] = b"md5WithRSA\0";
+pub const NID_md5WithRSA: i32 = 104;
+pub const LN_serialNumber: &[u8; 13] = b"serialNumber\0";
+pub const NID_serialNumber: i32 = 105;
+pub const SN_title: &[u8; 6] = b"title\0";
+pub const LN_title: &[u8; 6] = b"title\0";
+pub const NID_title: i32 = 106;
+pub const LN_description: &[u8; 12] = b"description\0";
+pub const NID_description: i32 = 107;
+pub const SN_cast5_cbc: &[u8; 10] = b"CAST5-CBC\0";
+pub const LN_cast5_cbc: &[u8; 10] = b"cast5-cbc\0";
+pub const NID_cast5_cbc: i32 = 108;
+pub const SN_cast5_ecb: &[u8; 10] = b"CAST5-ECB\0";
+pub const LN_cast5_ecb: &[u8; 10] = b"cast5-ecb\0";
+pub const NID_cast5_ecb: i32 = 109;
+pub const SN_cast5_cfb64: &[u8; 10] = b"CAST5-CFB\0";
+pub const LN_cast5_cfb64: &[u8; 10] = b"cast5-cfb\0";
+pub const NID_cast5_cfb64: i32 = 110;
+pub const SN_cast5_ofb64: &[u8; 10] = b"CAST5-OFB\0";
+pub const LN_cast5_ofb64: &[u8; 10] = b"cast5-ofb\0";
+pub const NID_cast5_ofb64: i32 = 111;
+pub const LN_pbeWithMD5AndCast5_CBC: &[u8; 22] = b"pbeWithMD5AndCast5CBC\0";
+pub const NID_pbeWithMD5AndCast5_CBC: i32 = 112;
+pub const SN_dsaWithSHA1: &[u8; 9] = b"DSA-SHA1\0";
+pub const LN_dsaWithSHA1: &[u8; 12] = b"dsaWithSHA1\0";
+pub const NID_dsaWithSHA1: i32 = 113;
+pub const SN_md5_sha1: &[u8; 9] = b"MD5-SHA1\0";
+pub const LN_md5_sha1: &[u8; 9] = b"md5-sha1\0";
+pub const NID_md5_sha1: i32 = 114;
+pub const SN_sha1WithRSA: &[u8; 11] = b"RSA-SHA1-2\0";
+pub const LN_sha1WithRSA: &[u8; 12] = b"sha1WithRSA\0";
+pub const NID_sha1WithRSA: i32 = 115;
+pub const SN_dsa: &[u8; 4] = b"DSA\0";
+pub const LN_dsa: &[u8; 14] = b"dsaEncryption\0";
+pub const NID_dsa: i32 = 116;
+pub const SN_ripemd160: &[u8; 10] = b"RIPEMD160\0";
+pub const LN_ripemd160: &[u8; 10] = b"ripemd160\0";
+pub const NID_ripemd160: i32 = 117;
+pub const SN_ripemd160WithRSA: &[u8; 14] = b"RSA-RIPEMD160\0";
+pub const LN_ripemd160WithRSA: &[u8; 17] = b"ripemd160WithRSA\0";
+pub const NID_ripemd160WithRSA: i32 = 119;
+pub const SN_rc5_cbc: &[u8; 8] = b"RC5-CBC\0";
+pub const LN_rc5_cbc: &[u8; 8] = b"rc5-cbc\0";
+pub const NID_rc5_cbc: i32 = 120;
+pub const SN_rc5_ecb: &[u8; 8] = b"RC5-ECB\0";
+pub const LN_rc5_ecb: &[u8; 8] = b"rc5-ecb\0";
+pub const NID_rc5_ecb: i32 = 121;
+pub const SN_rc5_cfb64: &[u8; 8] = b"RC5-CFB\0";
+pub const LN_rc5_cfb64: &[u8; 8] = b"rc5-cfb\0";
+pub const NID_rc5_cfb64: i32 = 122;
+pub const SN_rc5_ofb64: &[u8; 8] = b"RC5-OFB\0";
+pub const LN_rc5_ofb64: &[u8; 8] = b"rc5-ofb\0";
+pub const NID_rc5_ofb64: i32 = 123;
+pub const SN_zlib_compression: &[u8; 5] = b"ZLIB\0";
+pub const LN_zlib_compression: &[u8; 17] = b"zlib compression\0";
+pub const NID_zlib_compression: i32 = 125;
+pub const SN_ext_key_usage: &[u8; 17] = b"extendedKeyUsage\0";
+pub const LN_ext_key_usage: &[u8; 26] = b"X509v3 Extended Key Usage\0";
+pub const NID_ext_key_usage: i32 = 126;
+pub const SN_id_pkix: &[u8; 5] = b"PKIX\0";
+pub const NID_id_pkix: i32 = 127;
+pub const SN_id_kp: &[u8; 6] = b"id-kp\0";
+pub const NID_id_kp: i32 = 128;
+pub const SN_server_auth: &[u8; 11] = b"serverAuth\0";
+pub const LN_server_auth: &[u8; 30] = b"TLS Web Server Authentication\0";
+pub const NID_server_auth: i32 = 129;
+pub const SN_client_auth: &[u8; 11] = b"clientAuth\0";
+pub const LN_client_auth: &[u8; 30] = b"TLS Web Client Authentication\0";
+pub const NID_client_auth: i32 = 130;
+pub const SN_code_sign: &[u8; 12] = b"codeSigning\0";
+pub const LN_code_sign: &[u8; 13] = b"Code Signing\0";
+pub const NID_code_sign: i32 = 131;
+pub const SN_email_protect: &[u8; 16] = b"emailProtection\0";
+pub const LN_email_protect: &[u8; 18] = b"E-mail Protection\0";
+pub const NID_email_protect: i32 = 132;
+pub const SN_time_stamp: &[u8; 13] = b"timeStamping\0";
+pub const LN_time_stamp: &[u8; 14] = b"Time Stamping\0";
+pub const NID_time_stamp: i32 = 133;
+pub const SN_ms_code_ind: &[u8; 10] = b"msCodeInd\0";
+pub const LN_ms_code_ind: &[u8; 34] = b"Microsoft Individual Code Signing\0";
+pub const NID_ms_code_ind: i32 = 134;
+pub const SN_ms_code_com: &[u8; 10] = b"msCodeCom\0";
+pub const LN_ms_code_com: &[u8; 34] = b"Microsoft Commercial Code Signing\0";
+pub const NID_ms_code_com: i32 = 135;
+pub const SN_ms_ctl_sign: &[u8; 10] = b"msCTLSign\0";
+pub const LN_ms_ctl_sign: &[u8; 29] = b"Microsoft Trust List Signing\0";
+pub const NID_ms_ctl_sign: i32 = 136;
+pub const SN_ms_sgc: &[u8; 6] = b"msSGC\0";
+pub const LN_ms_sgc: &[u8; 30] = b"Microsoft Server Gated Crypto\0";
+pub const NID_ms_sgc: i32 = 137;
+pub const SN_ms_efs: &[u8; 6] = b"msEFS\0";
+pub const LN_ms_efs: &[u8; 32] = b"Microsoft Encrypted File System\0";
+pub const NID_ms_efs: i32 = 138;
+pub const SN_ns_sgc: &[u8; 6] = b"nsSGC\0";
+pub const LN_ns_sgc: &[u8; 29] = b"Netscape Server Gated Crypto\0";
+pub const NID_ns_sgc: i32 = 139;
+pub const SN_delta_crl: &[u8; 9] = b"deltaCRL\0";
+pub const LN_delta_crl: &[u8; 27] = b"X509v3 Delta CRL Indicator\0";
+pub const NID_delta_crl: i32 = 140;
+pub const SN_crl_reason: &[u8; 10] = b"CRLReason\0";
+pub const LN_crl_reason: &[u8; 23] = b"X509v3 CRL Reason Code\0";
+pub const NID_crl_reason: i32 = 141;
+pub const SN_invalidity_date: &[u8; 15] = b"invalidityDate\0";
+pub const LN_invalidity_date: &[u8; 16] = b"Invalidity Date\0";
+pub const NID_invalidity_date: i32 = 142;
+pub const SN_sxnet: &[u8; 8] = b"SXNetID\0";
+pub const LN_sxnet: &[u8; 19] = b"Strong Extranet ID\0";
+pub const NID_sxnet: i32 = 143;
+pub const SN_pbe_WithSHA1And128BitRC4: &[u8; 17] = b"PBE-SHA1-RC4-128\0";
+pub const LN_pbe_WithSHA1And128BitRC4: &[u8; 24] = b"pbeWithSHA1And128BitRC4\0";
+pub const NID_pbe_WithSHA1And128BitRC4: i32 = 144;
+pub const SN_pbe_WithSHA1And40BitRC4: &[u8; 16] = b"PBE-SHA1-RC4-40\0";
+pub const LN_pbe_WithSHA1And40BitRC4: &[u8; 23] = b"pbeWithSHA1And40BitRC4\0";
+pub const NID_pbe_WithSHA1And40BitRC4: i32 = 145;
+pub const SN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-3DES\0";
+pub const LN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And3-KeyTripleDES-CBC\0";
+pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC: i32 = 146;
+pub const SN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-2DES\0";
+pub const LN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And2-KeyTripleDES-CBC\0";
+pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC: i32 = 147;
+pub const SN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 17] = b"PBE-SHA1-RC2-128\0";
+pub const LN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 28] = b"pbeWithSHA1And128BitRC2-CBC\0";
+pub const NID_pbe_WithSHA1And128BitRC2_CBC: i32 = 148;
+pub const SN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-40\0";
+pub const LN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 27] = b"pbeWithSHA1And40BitRC2-CBC\0";
+pub const NID_pbe_WithSHA1And40BitRC2_CBC: i32 = 149;
+pub const LN_keyBag: &[u8; 7] = b"keyBag\0";
+pub const NID_keyBag: i32 = 150;
+pub const LN_pkcs8ShroudedKeyBag: &[u8; 20] = b"pkcs8ShroudedKeyBag\0";
+pub const NID_pkcs8ShroudedKeyBag: i32 = 151;
+pub const LN_certBag: &[u8; 8] = b"certBag\0";
+pub const NID_certBag: i32 = 152;
+pub const LN_crlBag: &[u8; 7] = b"crlBag\0";
+pub const NID_crlBag: i32 = 153;
+pub const LN_secretBag: &[u8; 10] = b"secretBag\0";
+pub const NID_secretBag: i32 = 154;
+pub const LN_safeContentsBag: &[u8; 16] = b"safeContentsBag\0";
+pub const NID_safeContentsBag: i32 = 155;
+pub const LN_friendlyName: &[u8; 13] = b"friendlyName\0";
+pub const NID_friendlyName: i32 = 156;
+pub const LN_localKeyID: &[u8; 11] = b"localKeyID\0";
+pub const NID_localKeyID: i32 = 157;
+pub const LN_x509Certificate: &[u8; 16] = b"x509Certificate\0";
+pub const NID_x509Certificate: i32 = 158;
+pub const LN_sdsiCertificate: &[u8; 16] = b"sdsiCertificate\0";
+pub const NID_sdsiCertificate: i32 = 159;
+pub const LN_x509Crl: &[u8; 8] = b"x509Crl\0";
+pub const NID_x509Crl: i32 = 160;
+pub const LN_pbes2: &[u8; 6] = b"PBES2\0";
+pub const NID_pbes2: i32 = 161;
+pub const LN_pbmac1: &[u8; 7] = b"PBMAC1\0";
+pub const NID_pbmac1: i32 = 162;
+pub const LN_hmacWithSHA1: &[u8; 13] = b"hmacWithSHA1\0";
+pub const NID_hmacWithSHA1: i32 = 163;
+pub const SN_id_qt_cps: &[u8; 10] = b"id-qt-cps\0";
+pub const LN_id_qt_cps: &[u8; 21] = b"Policy Qualifier CPS\0";
+pub const NID_id_qt_cps: i32 = 164;
+pub const SN_id_qt_unotice: &[u8; 14] = b"id-qt-unotice\0";
+pub const LN_id_qt_unotice: &[u8; 29] = b"Policy Qualifier User Notice\0";
+pub const NID_id_qt_unotice: i32 = 165;
+pub const SN_rc2_64_cbc: &[u8; 11] = b"RC2-64-CBC\0";
+pub const LN_rc2_64_cbc: &[u8; 11] = b"rc2-64-cbc\0";
+pub const NID_rc2_64_cbc: i32 = 166;
+pub const SN_SMIMECapabilities: &[u8; 11] = b"SMIME-CAPS\0";
+pub const LN_SMIMECapabilities: &[u8; 20] = b"S/MIME Capabilities\0";
+pub const NID_SMIMECapabilities: i32 = 167;
+pub const SN_pbeWithMD2AndRC2_CBC: &[u8; 15] = b"PBE-MD2-RC2-64\0";
+pub const LN_pbeWithMD2AndRC2_CBC: &[u8; 21] = b"pbeWithMD2AndRC2-CBC\0";
+pub const NID_pbeWithMD2AndRC2_CBC: i32 = 168;
+pub const SN_pbeWithMD5AndRC2_CBC: &[u8; 15] = b"PBE-MD5-RC2-64\0";
+pub const LN_pbeWithMD5AndRC2_CBC: &[u8; 21] = b"pbeWithMD5AndRC2-CBC\0";
+pub const NID_pbeWithMD5AndRC2_CBC: i32 = 169;
+pub const SN_pbeWithSHA1AndDES_CBC: &[u8; 13] = b"PBE-SHA1-DES\0";
+pub const LN_pbeWithSHA1AndDES_CBC: &[u8; 22] = b"pbeWithSHA1AndDES-CBC\0";
+pub const NID_pbeWithSHA1AndDES_CBC: i32 = 170;
+pub const SN_ms_ext_req: &[u8; 9] = b"msExtReq\0";
+pub const LN_ms_ext_req: &[u8; 28] = b"Microsoft Extension Request\0";
+pub const NID_ms_ext_req: i32 = 171;
+pub const SN_ext_req: &[u8; 7] = b"extReq\0";
+pub const LN_ext_req: &[u8; 18] = b"Extension Request\0";
+pub const NID_ext_req: i32 = 172;
+pub const SN_name: &[u8; 5] = b"name\0";
+pub const LN_name: &[u8; 5] = b"name\0";
+pub const NID_name: i32 = 173;
+pub const SN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
+pub const LN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
+pub const NID_dnQualifier: i32 = 174;
+pub const SN_id_pe: &[u8; 6] = b"id-pe\0";
+pub const NID_id_pe: i32 = 175;
+pub const SN_id_ad: &[u8; 6] = b"id-ad\0";
+pub const NID_id_ad: i32 = 176;
+pub const SN_info_access: &[u8; 20] = b"authorityInfoAccess\0";
+pub const LN_info_access: &[u8; 29] = b"Authority Information Access\0";
+pub const NID_info_access: i32 = 177;
+pub const SN_ad_OCSP: &[u8; 5] = b"OCSP\0";
+pub const LN_ad_OCSP: &[u8; 5] = b"OCSP\0";
+pub const NID_ad_OCSP: i32 = 178;
+pub const SN_ad_ca_issuers: &[u8; 10] = b"caIssuers\0";
+pub const LN_ad_ca_issuers: &[u8; 11] = b"CA Issuers\0";
+pub const NID_ad_ca_issuers: i32 = 179;
+pub const SN_OCSP_sign: &[u8; 12] = b"OCSPSigning\0";
+pub const LN_OCSP_sign: &[u8; 13] = b"OCSP Signing\0";
+pub const NID_OCSP_sign: i32 = 180;
+pub const SN_iso: &[u8; 4] = b"ISO\0";
+pub const LN_iso: &[u8; 4] = b"iso\0";
+pub const NID_iso: i32 = 181;
+pub const OBJ_iso: i32 = 1;
+pub const SN_member_body: &[u8; 12] = b"member-body\0";
+pub const LN_member_body: &[u8; 16] = b"ISO Member Body\0";
+pub const NID_member_body: i32 = 182;
+pub const SN_ISO_US: &[u8; 7] = b"ISO-US\0";
+pub const LN_ISO_US: &[u8; 19] = b"ISO US Member Body\0";
+pub const NID_ISO_US: i32 = 183;
+pub const SN_X9_57: &[u8; 6] = b"X9-57\0";
+pub const LN_X9_57: &[u8; 6] = b"X9.57\0";
+pub const NID_X9_57: i32 = 184;
+pub const SN_X9cm: &[u8; 5] = b"X9cm\0";
+pub const LN_X9cm: &[u8; 11] = b"X9.57 CM ?\0";
+pub const NID_X9cm: i32 = 185;
+pub const SN_pkcs1: &[u8; 6] = b"pkcs1\0";
+pub const NID_pkcs1: i32 = 186;
+pub const SN_pkcs5: &[u8; 6] = b"pkcs5\0";
+pub const NID_pkcs5: i32 = 187;
+pub const SN_SMIME: &[u8; 6] = b"SMIME\0";
+pub const LN_SMIME: &[u8; 7] = b"S/MIME\0";
+pub const NID_SMIME: i32 = 188;
+pub const SN_id_smime_mod: &[u8; 13] = b"id-smime-mod\0";
+pub const NID_id_smime_mod: i32 = 189;
+pub const SN_id_smime_ct: &[u8; 12] = b"id-smime-ct\0";
+pub const NID_id_smime_ct: i32 = 190;
+pub const SN_id_smime_aa: &[u8; 12] = b"id-smime-aa\0";
+pub const NID_id_smime_aa: i32 = 191;
+pub const SN_id_smime_alg: &[u8; 13] = b"id-smime-alg\0";
+pub const NID_id_smime_alg: i32 = 192;
+pub const SN_id_smime_cd: &[u8; 12] = b"id-smime-cd\0";
+pub const NID_id_smime_cd: i32 = 193;
+pub const SN_id_smime_spq: &[u8; 13] = b"id-smime-spq\0";
+pub const NID_id_smime_spq: i32 = 194;
+pub const SN_id_smime_cti: &[u8; 13] = b"id-smime-cti\0";
+pub const NID_id_smime_cti: i32 = 195;
+pub const SN_id_smime_mod_cms: &[u8; 17] = b"id-smime-mod-cms\0";
+pub const NID_id_smime_mod_cms: i32 = 196;
+pub const SN_id_smime_mod_ess: &[u8; 17] = b"id-smime-mod-ess\0";
+pub const NID_id_smime_mod_ess: i32 = 197;
+pub const SN_id_smime_mod_oid: &[u8; 17] = b"id-smime-mod-oid\0";
+pub const NID_id_smime_mod_oid: i32 = 198;
+pub const SN_id_smime_mod_msg_v3: &[u8; 20] = b"id-smime-mod-msg-v3\0";
+pub const NID_id_smime_mod_msg_v3: i32 = 199;
+pub const SN_id_smime_mod_ets_eSignature_88: &[u8; 31] = b"id-smime-mod-ets-eSignature-88\0";
+pub const NID_id_smime_mod_ets_eSignature_88: i32 = 200;
+pub const SN_id_smime_mod_ets_eSignature_97: &[u8; 31] = b"id-smime-mod-ets-eSignature-97\0";
+pub const NID_id_smime_mod_ets_eSignature_97: i32 = 201;
+pub const SN_id_smime_mod_ets_eSigPolicy_88: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-88\0";
+pub const NID_id_smime_mod_ets_eSigPolicy_88: i32 = 202;
+pub const SN_id_smime_mod_ets_eSigPolicy_97: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-97\0";
+pub const NID_id_smime_mod_ets_eSigPolicy_97: i32 = 203;
+pub const SN_id_smime_ct_receipt: &[u8; 20] = b"id-smime-ct-receipt\0";
+pub const NID_id_smime_ct_receipt: i32 = 204;
+pub const SN_id_smime_ct_authData: &[u8; 21] = b"id-smime-ct-authData\0";
+pub const NID_id_smime_ct_authData: i32 = 205;
+pub const SN_id_smime_ct_publishCert: &[u8; 24] = b"id-smime-ct-publishCert\0";
+pub const NID_id_smime_ct_publishCert: i32 = 206;
+pub const SN_id_smime_ct_TSTInfo: &[u8; 20] = b"id-smime-ct-TSTInfo\0";
+pub const NID_id_smime_ct_TSTInfo: i32 = 207;
+pub const SN_id_smime_ct_TDTInfo: &[u8; 20] = b"id-smime-ct-TDTInfo\0";
+pub const NID_id_smime_ct_TDTInfo: i32 = 208;
+pub const SN_id_smime_ct_contentInfo: &[u8; 24] = b"id-smime-ct-contentInfo\0";
+pub const NID_id_smime_ct_contentInfo: i32 = 209;
+pub const SN_id_smime_ct_DVCSRequestData: &[u8; 28] = b"id-smime-ct-DVCSRequestData\0";
+pub const NID_id_smime_ct_DVCSRequestData: i32 = 210;
+pub const SN_id_smime_ct_DVCSResponseData: &[u8; 29] = b"id-smime-ct-DVCSResponseData\0";
+pub const NID_id_smime_ct_DVCSResponseData: i32 = 211;
+pub const SN_id_smime_aa_receiptRequest: &[u8; 27] = b"id-smime-aa-receiptRequest\0";
+pub const NID_id_smime_aa_receiptRequest: i32 = 212;
+pub const SN_id_smime_aa_securityLabel: &[u8; 26] = b"id-smime-aa-securityLabel\0";
+pub const NID_id_smime_aa_securityLabel: i32 = 213;
+pub const SN_id_smime_aa_mlExpandHistory: &[u8; 28] = b"id-smime-aa-mlExpandHistory\0";
+pub const NID_id_smime_aa_mlExpandHistory: i32 = 214;
+pub const SN_id_smime_aa_contentHint: &[u8; 24] = b"id-smime-aa-contentHint\0";
+pub const NID_id_smime_aa_contentHint: i32 = 215;
+pub const SN_id_smime_aa_msgSigDigest: &[u8; 25] = b"id-smime-aa-msgSigDigest\0";
+pub const NID_id_smime_aa_msgSigDigest: i32 = 216;
+pub const SN_id_smime_aa_encapContentType: &[u8; 29] = b"id-smime-aa-encapContentType\0";
+pub const NID_id_smime_aa_encapContentType: i32 = 217;
+pub const SN_id_smime_aa_contentIdentifier: &[u8; 30] = b"id-smime-aa-contentIdentifier\0";
+pub const NID_id_smime_aa_contentIdentifier: i32 = 218;
+pub const SN_id_smime_aa_macValue: &[u8; 21] = b"id-smime-aa-macValue\0";
+pub const NID_id_smime_aa_macValue: i32 = 219;
+pub const SN_id_smime_aa_equivalentLabels: &[u8; 29] = b"id-smime-aa-equivalentLabels\0";
+pub const NID_id_smime_aa_equivalentLabels: i32 = 220;
+pub const SN_id_smime_aa_contentReference: &[u8; 29] = b"id-smime-aa-contentReference\0";
+pub const NID_id_smime_aa_contentReference: i32 = 221;
+pub const SN_id_smime_aa_encrypKeyPref: &[u8; 26] = b"id-smime-aa-encrypKeyPref\0";
+pub const NID_id_smime_aa_encrypKeyPref: i32 = 222;
+pub const SN_id_smime_aa_signingCertificate: &[u8; 31] = b"id-smime-aa-signingCertificate\0";
+pub const NID_id_smime_aa_signingCertificate: i32 = 223;
+pub const SN_id_smime_aa_smimeEncryptCerts: &[u8; 30] = b"id-smime-aa-smimeEncryptCerts\0";
+pub const NID_id_smime_aa_smimeEncryptCerts: i32 = 224;
+pub const SN_id_smime_aa_timeStampToken: &[u8; 27] = b"id-smime-aa-timeStampToken\0";
+pub const NID_id_smime_aa_timeStampToken: i32 = 225;
+pub const SN_id_smime_aa_ets_sigPolicyId: &[u8; 28] = b"id-smime-aa-ets-sigPolicyId\0";
+pub const NID_id_smime_aa_ets_sigPolicyId: i32 = 226;
+pub const SN_id_smime_aa_ets_commitmentType: &[u8; 31] = b"id-smime-aa-ets-commitmentType\0";
+pub const NID_id_smime_aa_ets_commitmentType: i32 = 227;
+pub const SN_id_smime_aa_ets_signerLocation: &[u8; 31] = b"id-smime-aa-ets-signerLocation\0";
+pub const NID_id_smime_aa_ets_signerLocation: i32 = 228;
+pub const SN_id_smime_aa_ets_signerAttr: &[u8; 27] = b"id-smime-aa-ets-signerAttr\0";
+pub const NID_id_smime_aa_ets_signerAttr: i32 = 229;
+pub const SN_id_smime_aa_ets_otherSigCert: &[u8; 29] = b"id-smime-aa-ets-otherSigCert\0";
+pub const NID_id_smime_aa_ets_otherSigCert: i32 = 230;
+pub const SN_id_smime_aa_ets_contentTimestamp: &[u8; 33] = b"id-smime-aa-ets-contentTimestamp\0";
+pub const NID_id_smime_aa_ets_contentTimestamp: i32 = 231;
+pub const SN_id_smime_aa_ets_CertificateRefs: &[u8; 32] = b"id-smime-aa-ets-CertificateRefs\0";
+pub const NID_id_smime_aa_ets_CertificateRefs: i32 = 232;
+pub const SN_id_smime_aa_ets_RevocationRefs: &[u8; 31] = b"id-smime-aa-ets-RevocationRefs\0";
+pub const NID_id_smime_aa_ets_RevocationRefs: i32 = 233;
+pub const SN_id_smime_aa_ets_certValues: &[u8; 27] = b"id-smime-aa-ets-certValues\0";
+pub const NID_id_smime_aa_ets_certValues: i32 = 234;
+pub const SN_id_smime_aa_ets_revocationValues: &[u8; 33] = b"id-smime-aa-ets-revocationValues\0";
+pub const NID_id_smime_aa_ets_revocationValues: i32 = 235;
+pub const SN_id_smime_aa_ets_escTimeStamp: &[u8; 29] = b"id-smime-aa-ets-escTimeStamp\0";
+pub const NID_id_smime_aa_ets_escTimeStamp: i32 = 236;
+pub const SN_id_smime_aa_ets_certCRLTimestamp: &[u8; 33] = b"id-smime-aa-ets-certCRLTimestamp\0";
+pub const NID_id_smime_aa_ets_certCRLTimestamp: i32 = 237;
+pub const SN_id_smime_aa_ets_archiveTimeStamp: &[u8; 33] = b"id-smime-aa-ets-archiveTimeStamp\0";
+pub const NID_id_smime_aa_ets_archiveTimeStamp: i32 = 238;
+pub const SN_id_smime_aa_signatureType: &[u8; 26] = b"id-smime-aa-signatureType\0";
+pub const NID_id_smime_aa_signatureType: i32 = 239;
+pub const SN_id_smime_aa_dvcs_dvc: &[u8; 21] = b"id-smime-aa-dvcs-dvc\0";
+pub const NID_id_smime_aa_dvcs_dvc: i32 = 240;
+pub const SN_id_smime_alg_ESDHwith3DES: &[u8; 26] = b"id-smime-alg-ESDHwith3DES\0";
+pub const NID_id_smime_alg_ESDHwith3DES: i32 = 241;
+pub const SN_id_smime_alg_ESDHwithRC2: &[u8; 25] = b"id-smime-alg-ESDHwithRC2\0";
+pub const NID_id_smime_alg_ESDHwithRC2: i32 = 242;
+pub const SN_id_smime_alg_3DESwrap: &[u8; 22] = b"id-smime-alg-3DESwrap\0";
+pub const NID_id_smime_alg_3DESwrap: i32 = 243;
+pub const SN_id_smime_alg_RC2wrap: &[u8; 21] = b"id-smime-alg-RC2wrap\0";
+pub const NID_id_smime_alg_RC2wrap: i32 = 244;
+pub const SN_id_smime_alg_ESDH: &[u8; 18] = b"id-smime-alg-ESDH\0";
+pub const NID_id_smime_alg_ESDH: i32 = 245;
+pub const SN_id_smime_alg_CMS3DESwrap: &[u8; 25] = b"id-smime-alg-CMS3DESwrap\0";
+pub const NID_id_smime_alg_CMS3DESwrap: i32 = 246;
+pub const SN_id_smime_alg_CMSRC2wrap: &[u8; 24] = b"id-smime-alg-CMSRC2wrap\0";
+pub const NID_id_smime_alg_CMSRC2wrap: i32 = 247;
+pub const SN_id_smime_cd_ldap: &[u8; 17] = b"id-smime-cd-ldap\0";
+pub const NID_id_smime_cd_ldap: i32 = 248;
+pub const SN_id_smime_spq_ets_sqt_uri: &[u8; 25] = b"id-smime-spq-ets-sqt-uri\0";
+pub const NID_id_smime_spq_ets_sqt_uri: i32 = 249;
+pub const SN_id_smime_spq_ets_sqt_unotice: &[u8; 29] = b"id-smime-spq-ets-sqt-unotice\0";
+pub const NID_id_smime_spq_ets_sqt_unotice: i32 = 250;
+pub const SN_id_smime_cti_ets_proofOfOrigin: &[u8; 31] = b"id-smime-cti-ets-proofOfOrigin\0";
+pub const NID_id_smime_cti_ets_proofOfOrigin: i32 = 251;
+pub const SN_id_smime_cti_ets_proofOfReceipt: &[u8; 32] = b"id-smime-cti-ets-proofOfReceipt\0";
+pub const NID_id_smime_cti_ets_proofOfReceipt: i32 = 252;
+pub const SN_id_smime_cti_ets_proofOfDelivery: &[u8; 33] = b"id-smime-cti-ets-proofOfDelivery\0";
+pub const NID_id_smime_cti_ets_proofOfDelivery: i32 = 253;
+pub const SN_id_smime_cti_ets_proofOfSender: &[u8; 31] = b"id-smime-cti-ets-proofOfSender\0";
+pub const NID_id_smime_cti_ets_proofOfSender: i32 = 254;
+pub const SN_id_smime_cti_ets_proofOfApproval: &[u8; 33] = b"id-smime-cti-ets-proofOfApproval\0";
+pub const NID_id_smime_cti_ets_proofOfApproval: i32 = 255;
+pub const SN_id_smime_cti_ets_proofOfCreation: &[u8; 33] = b"id-smime-cti-ets-proofOfCreation\0";
+pub const NID_id_smime_cti_ets_proofOfCreation: i32 = 256;
+pub const SN_md4: &[u8; 4] = b"MD4\0";
+pub const LN_md4: &[u8; 4] = b"md4\0";
+pub const NID_md4: i32 = 257;
+pub const SN_id_pkix_mod: &[u8; 12] = b"id-pkix-mod\0";
+pub const NID_id_pkix_mod: i32 = 258;
+pub const SN_id_qt: &[u8; 6] = b"id-qt\0";
+pub const NID_id_qt: i32 = 259;
+pub const SN_id_it: &[u8; 6] = b"id-it\0";
+pub const NID_id_it: i32 = 260;
+pub const SN_id_pkip: &[u8; 8] = b"id-pkip\0";
+pub const NID_id_pkip: i32 = 261;
+pub const SN_id_alg: &[u8; 7] = b"id-alg\0";
+pub const NID_id_alg: i32 = 262;
+pub const SN_id_cmc: &[u8; 7] = b"id-cmc\0";
+pub const NID_id_cmc: i32 = 263;
+pub const SN_id_on: &[u8; 6] = b"id-on\0";
+pub const NID_id_on: i32 = 264;
+pub const SN_id_pda: &[u8; 7] = b"id-pda\0";
+pub const NID_id_pda: i32 = 265;
+pub const SN_id_aca: &[u8; 7] = b"id-aca\0";
+pub const NID_id_aca: i32 = 266;
+pub const SN_id_qcs: &[u8; 7] = b"id-qcs\0";
+pub const NID_id_qcs: i32 = 267;
+pub const SN_id_cct: &[u8; 7] = b"id-cct\0";
+pub const NID_id_cct: i32 = 268;
+pub const SN_id_pkix1_explicit_88: &[u8; 21] = b"id-pkix1-explicit-88\0";
+pub const NID_id_pkix1_explicit_88: i32 = 269;
+pub const SN_id_pkix1_implicit_88: &[u8; 21] = b"id-pkix1-implicit-88\0";
+pub const NID_id_pkix1_implicit_88: i32 = 270;
+pub const SN_id_pkix1_explicit_93: &[u8; 21] = b"id-pkix1-explicit-93\0";
+pub const NID_id_pkix1_explicit_93: i32 = 271;
+pub const SN_id_pkix1_implicit_93: &[u8; 21] = b"id-pkix1-implicit-93\0";
+pub const NID_id_pkix1_implicit_93: i32 = 272;
+pub const SN_id_mod_crmf: &[u8; 12] = b"id-mod-crmf\0";
+pub const NID_id_mod_crmf: i32 = 273;
+pub const SN_id_mod_cmc: &[u8; 11] = b"id-mod-cmc\0";
+pub const NID_id_mod_cmc: i32 = 274;
+pub const SN_id_mod_kea_profile_88: &[u8; 22] = b"id-mod-kea-profile-88\0";
+pub const NID_id_mod_kea_profile_88: i32 = 275;
+pub const SN_id_mod_kea_profile_93: &[u8; 22] = b"id-mod-kea-profile-93\0";
+pub const NID_id_mod_kea_profile_93: i32 = 276;
+pub const SN_id_mod_cmp: &[u8; 11] = b"id-mod-cmp\0";
+pub const NID_id_mod_cmp: i32 = 277;
+pub const SN_id_mod_qualified_cert_88: &[u8; 25] = b"id-mod-qualified-cert-88\0";
+pub const NID_id_mod_qualified_cert_88: i32 = 278;
+pub const SN_id_mod_qualified_cert_93: &[u8; 25] = b"id-mod-qualified-cert-93\0";
+pub const NID_id_mod_qualified_cert_93: i32 = 279;
+pub const SN_id_mod_attribute_cert: &[u8; 22] = b"id-mod-attribute-cert\0";
+pub const NID_id_mod_attribute_cert: i32 = 280;
+pub const SN_id_mod_timestamp_protocol: &[u8; 26] = b"id-mod-timestamp-protocol\0";
+pub const NID_id_mod_timestamp_protocol: i32 = 281;
+pub const SN_id_mod_ocsp: &[u8; 12] = b"id-mod-ocsp\0";
+pub const NID_id_mod_ocsp: i32 = 282;
+pub const SN_id_mod_dvcs: &[u8; 12] = b"id-mod-dvcs\0";
+pub const NID_id_mod_dvcs: i32 = 283;
+pub const SN_id_mod_cmp2000: &[u8; 15] = b"id-mod-cmp2000\0";
+pub const NID_id_mod_cmp2000: i32 = 284;
+pub const SN_biometricInfo: &[u8; 14] = b"biometricInfo\0";
+pub const LN_biometricInfo: &[u8; 15] = b"Biometric Info\0";
+pub const NID_biometricInfo: i32 = 285;
+pub const SN_qcStatements: &[u8; 13] = b"qcStatements\0";
+pub const NID_qcStatements: i32 = 286;
+pub const SN_ac_auditEntity: &[u8; 15] = b"ac-auditEntity\0";
+pub const NID_ac_auditEntity: i32 = 287;
+pub const SN_ac_targeting: &[u8; 13] = b"ac-targeting\0";
+pub const NID_ac_targeting: i32 = 288;
+pub const SN_aaControls: &[u8; 11] = b"aaControls\0";
+pub const NID_aaControls: i32 = 289;
+pub const SN_sbgp_ipAddrBlock: &[u8; 17] = b"sbgp-ipAddrBlock\0";
+pub const NID_sbgp_ipAddrBlock: i32 = 290;
+pub const SN_sbgp_autonomousSysNum: &[u8; 22] = b"sbgp-autonomousSysNum\0";
+pub const NID_sbgp_autonomousSysNum: i32 = 291;
+pub const SN_sbgp_routerIdentifier: &[u8; 22] = b"sbgp-routerIdentifier\0";
+pub const NID_sbgp_routerIdentifier: i32 = 292;
+pub const SN_textNotice: &[u8; 11] = b"textNotice\0";
+pub const NID_textNotice: i32 = 293;
+pub const SN_ipsecEndSystem: &[u8; 15] = b"ipsecEndSystem\0";
+pub const LN_ipsecEndSystem: &[u8; 17] = b"IPSec End System\0";
+pub const NID_ipsecEndSystem: i32 = 294;
+pub const SN_ipsecTunnel: &[u8; 12] = b"ipsecTunnel\0";
+pub const LN_ipsecTunnel: &[u8; 13] = b"IPSec Tunnel\0";
+pub const NID_ipsecTunnel: i32 = 295;
+pub const SN_ipsecUser: &[u8; 10] = b"ipsecUser\0";
+pub const LN_ipsecUser: &[u8; 11] = b"IPSec User\0";
+pub const NID_ipsecUser: i32 = 296;
+pub const SN_dvcs: &[u8; 5] = b"DVCS\0";
+pub const LN_dvcs: &[u8; 5] = b"dvcs\0";
+pub const NID_dvcs: i32 = 297;
+pub const SN_id_it_caProtEncCert: &[u8; 20] = b"id-it-caProtEncCert\0";
+pub const NID_id_it_caProtEncCert: i32 = 298;
+pub const SN_id_it_signKeyPairTypes: &[u8; 23] = b"id-it-signKeyPairTypes\0";
+pub const NID_id_it_signKeyPairTypes: i32 = 299;
+pub const SN_id_it_encKeyPairTypes: &[u8; 22] = b"id-it-encKeyPairTypes\0";
+pub const NID_id_it_encKeyPairTypes: i32 = 300;
+pub const SN_id_it_preferredSymmAlg: &[u8; 23] = b"id-it-preferredSymmAlg\0";
+pub const NID_id_it_preferredSymmAlg: i32 = 301;
+pub const SN_id_it_caKeyUpdateInfo: &[u8; 22] = b"id-it-caKeyUpdateInfo\0";
+pub const NID_id_it_caKeyUpdateInfo: i32 = 302;
+pub const SN_id_it_currentCRL: &[u8; 17] = b"id-it-currentCRL\0";
+pub const NID_id_it_currentCRL: i32 = 303;
+pub const SN_id_it_unsupportedOIDs: &[u8; 22] = b"id-it-unsupportedOIDs\0";
+pub const NID_id_it_unsupportedOIDs: i32 = 304;
+pub const SN_id_it_subscriptionRequest: &[u8; 26] = b"id-it-subscriptionRequest\0";
+pub const NID_id_it_subscriptionRequest: i32 = 305;
+pub const SN_id_it_subscriptionResponse: &[u8; 27] = b"id-it-subscriptionResponse\0";
+pub const NID_id_it_subscriptionResponse: i32 = 306;
+pub const SN_id_it_keyPairParamReq: &[u8; 22] = b"id-it-keyPairParamReq\0";
+pub const NID_id_it_keyPairParamReq: i32 = 307;
+pub const SN_id_it_keyPairParamRep: &[u8; 22] = b"id-it-keyPairParamRep\0";
+pub const NID_id_it_keyPairParamRep: i32 = 308;
+pub const SN_id_it_revPassphrase: &[u8; 20] = b"id-it-revPassphrase\0";
+pub const NID_id_it_revPassphrase: i32 = 309;
+pub const SN_id_it_implicitConfirm: &[u8; 22] = b"id-it-implicitConfirm\0";
+pub const NID_id_it_implicitConfirm: i32 = 310;
+pub const SN_id_it_confirmWaitTime: &[u8; 22] = b"id-it-confirmWaitTime\0";
+pub const NID_id_it_confirmWaitTime: i32 = 311;
+pub const SN_id_it_origPKIMessage: &[u8; 21] = b"id-it-origPKIMessage\0";
+pub const NID_id_it_origPKIMessage: i32 = 312;
+pub const SN_id_regCtrl: &[u8; 11] = b"id-regCtrl\0";
+pub const NID_id_regCtrl: i32 = 313;
+pub const SN_id_regInfo: &[u8; 11] = b"id-regInfo\0";
+pub const NID_id_regInfo: i32 = 314;
+pub const SN_id_regCtrl_regToken: &[u8; 20] = b"id-regCtrl-regToken\0";
+pub const NID_id_regCtrl_regToken: i32 = 315;
+pub const SN_id_regCtrl_authenticator: &[u8; 25] = b"id-regCtrl-authenticator\0";
+pub const NID_id_regCtrl_authenticator: i32 = 316;
+pub const SN_id_regCtrl_pkiPublicationInfo: &[u8; 30] = b"id-regCtrl-pkiPublicationInfo\0";
+pub const NID_id_regCtrl_pkiPublicationInfo: i32 = 317;
+pub const SN_id_regCtrl_pkiArchiveOptions: &[u8; 29] = b"id-regCtrl-pkiArchiveOptions\0";
+pub const NID_id_regCtrl_pkiArchiveOptions: i32 = 318;
+pub const SN_id_regCtrl_oldCertID: &[u8; 21] = b"id-regCtrl-oldCertID\0";
+pub const NID_id_regCtrl_oldCertID: i32 = 319;
+pub const SN_id_regCtrl_protocolEncrKey: &[u8; 27] = b"id-regCtrl-protocolEncrKey\0";
+pub const NID_id_regCtrl_protocolEncrKey: i32 = 320;
+pub const SN_id_regInfo_utf8Pairs: &[u8; 21] = b"id-regInfo-utf8Pairs\0";
+pub const NID_id_regInfo_utf8Pairs: i32 = 321;
+pub const SN_id_regInfo_certReq: &[u8; 19] = b"id-regInfo-certReq\0";
+pub const NID_id_regInfo_certReq: i32 = 322;
+pub const SN_id_alg_des40: &[u8; 13] = b"id-alg-des40\0";
+pub const NID_id_alg_des40: i32 = 323;
+pub const SN_id_alg_noSignature: &[u8; 19] = b"id-alg-noSignature\0";
+pub const NID_id_alg_noSignature: i32 = 324;
+pub const SN_id_alg_dh_sig_hmac_sha1: &[u8; 24] = b"id-alg-dh-sig-hmac-sha1\0";
+pub const NID_id_alg_dh_sig_hmac_sha1: i32 = 325;
+pub const SN_id_alg_dh_pop: &[u8; 14] = b"id-alg-dh-pop\0";
+pub const NID_id_alg_dh_pop: i32 = 326;
+pub const SN_id_cmc_statusInfo: &[u8; 18] = b"id-cmc-statusInfo\0";
+pub const NID_id_cmc_statusInfo: i32 = 327;
+pub const SN_id_cmc_identification: &[u8; 22] = b"id-cmc-identification\0";
+pub const NID_id_cmc_identification: i32 = 328;
+pub const SN_id_cmc_identityProof: &[u8; 21] = b"id-cmc-identityProof\0";
+pub const NID_id_cmc_identityProof: i32 = 329;
+pub const SN_id_cmc_dataReturn: &[u8; 18] = b"id-cmc-dataReturn\0";
+pub const NID_id_cmc_dataReturn: i32 = 330;
+pub const SN_id_cmc_transactionId: &[u8; 21] = b"id-cmc-transactionId\0";
+pub const NID_id_cmc_transactionId: i32 = 331;
+pub const SN_id_cmc_senderNonce: &[u8; 19] = b"id-cmc-senderNonce\0";
+pub const NID_id_cmc_senderNonce: i32 = 332;
+pub const SN_id_cmc_recipientNonce: &[u8; 22] = b"id-cmc-recipientNonce\0";
+pub const NID_id_cmc_recipientNonce: i32 = 333;
+pub const SN_id_cmc_addExtensions: &[u8; 21] = b"id-cmc-addExtensions\0";
+pub const NID_id_cmc_addExtensions: i32 = 334;
+pub const SN_id_cmc_encryptedPOP: &[u8; 20] = b"id-cmc-encryptedPOP\0";
+pub const NID_id_cmc_encryptedPOP: i32 = 335;
+pub const SN_id_cmc_decryptedPOP: &[u8; 20] = b"id-cmc-decryptedPOP\0";
+pub const NID_id_cmc_decryptedPOP: i32 = 336;
+pub const SN_id_cmc_lraPOPWitness: &[u8; 21] = b"id-cmc-lraPOPWitness\0";
+pub const NID_id_cmc_lraPOPWitness: i32 = 337;
+pub const SN_id_cmc_getCert: &[u8; 15] = b"id-cmc-getCert\0";
+pub const NID_id_cmc_getCert: i32 = 338;
+pub const SN_id_cmc_getCRL: &[u8; 14] = b"id-cmc-getCRL\0";
+pub const NID_id_cmc_getCRL: i32 = 339;
+pub const SN_id_cmc_revokeRequest: &[u8; 21] = b"id-cmc-revokeRequest\0";
+pub const NID_id_cmc_revokeRequest: i32 = 340;
+pub const SN_id_cmc_regInfo: &[u8; 15] = b"id-cmc-regInfo\0";
+pub const NID_id_cmc_regInfo: i32 = 341;
+pub const SN_id_cmc_responseInfo: &[u8; 20] = b"id-cmc-responseInfo\0";
+pub const NID_id_cmc_responseInfo: i32 = 342;
+pub const SN_id_cmc_queryPending: &[u8; 20] = b"id-cmc-queryPending\0";
+pub const NID_id_cmc_queryPending: i32 = 343;
+pub const SN_id_cmc_popLinkRandom: &[u8; 21] = b"id-cmc-popLinkRandom\0";
+pub const NID_id_cmc_popLinkRandom: i32 = 344;
+pub const SN_id_cmc_popLinkWitness: &[u8; 22] = b"id-cmc-popLinkWitness\0";
+pub const NID_id_cmc_popLinkWitness: i32 = 345;
+pub const SN_id_cmc_confirmCertAcceptance: &[u8; 29] = b"id-cmc-confirmCertAcceptance\0";
+pub const NID_id_cmc_confirmCertAcceptance: i32 = 346;
+pub const SN_id_on_personalData: &[u8; 19] = b"id-on-personalData\0";
+pub const NID_id_on_personalData: i32 = 347;
+pub const SN_id_pda_dateOfBirth: &[u8; 19] = b"id-pda-dateOfBirth\0";
+pub const NID_id_pda_dateOfBirth: i32 = 348;
+pub const SN_id_pda_placeOfBirth: &[u8; 20] = b"id-pda-placeOfBirth\0";
+pub const NID_id_pda_placeOfBirth: i32 = 349;
+pub const SN_id_pda_gender: &[u8; 14] = b"id-pda-gender\0";
+pub const NID_id_pda_gender: i32 = 351;
+pub const SN_id_pda_countryOfCitizenship: &[u8; 28] = b"id-pda-countryOfCitizenship\0";
+pub const NID_id_pda_countryOfCitizenship: i32 = 352;
+pub const SN_id_pda_countryOfResidence: &[u8; 26] = b"id-pda-countryOfResidence\0";
+pub const NID_id_pda_countryOfResidence: i32 = 353;
+pub const SN_id_aca_authenticationInfo: &[u8; 26] = b"id-aca-authenticationInfo\0";
+pub const NID_id_aca_authenticationInfo: i32 = 354;
+pub const SN_id_aca_accessIdentity: &[u8; 22] = b"id-aca-accessIdentity\0";
+pub const NID_id_aca_accessIdentity: i32 = 355;
+pub const SN_id_aca_chargingIdentity: &[u8; 24] = b"id-aca-chargingIdentity\0";
+pub const NID_id_aca_chargingIdentity: i32 = 356;
+pub const SN_id_aca_group: &[u8; 13] = b"id-aca-group\0";
+pub const NID_id_aca_group: i32 = 357;
+pub const SN_id_aca_role: &[u8; 12] = b"id-aca-role\0";
+pub const NID_id_aca_role: i32 = 358;
+pub const SN_id_qcs_pkixQCSyntax_v1: &[u8; 23] = b"id-qcs-pkixQCSyntax-v1\0";
+pub const NID_id_qcs_pkixQCSyntax_v1: i32 = 359;
+pub const SN_id_cct_crs: &[u8; 11] = b"id-cct-crs\0";
+pub const NID_id_cct_crs: i32 = 360;
+pub const SN_id_cct_PKIData: &[u8; 15] = b"id-cct-PKIData\0";
+pub const NID_id_cct_PKIData: i32 = 361;
+pub const SN_id_cct_PKIResponse: &[u8; 19] = b"id-cct-PKIResponse\0";
+pub const NID_id_cct_PKIResponse: i32 = 362;
+pub const SN_ad_timeStamping: &[u8; 16] = b"ad_timestamping\0";
+pub const LN_ad_timeStamping: &[u8; 17] = b"AD Time Stamping\0";
+pub const NID_ad_timeStamping: i32 = 363;
+pub const SN_ad_dvcs: &[u8; 8] = b"AD_DVCS\0";
+pub const LN_ad_dvcs: &[u8; 8] = b"ad dvcs\0";
+pub const NID_ad_dvcs: i32 = 364;
+pub const SN_id_pkix_OCSP_basic: &[u8; 18] = b"basicOCSPResponse\0";
+pub const LN_id_pkix_OCSP_basic: &[u8; 20] = b"Basic OCSP Response\0";
+pub const NID_id_pkix_OCSP_basic: i32 = 365;
+pub const SN_id_pkix_OCSP_Nonce: &[u8; 6] = b"Nonce\0";
+pub const LN_id_pkix_OCSP_Nonce: &[u8; 11] = b"OCSP Nonce\0";
+pub const NID_id_pkix_OCSP_Nonce: i32 = 366;
+pub const SN_id_pkix_OCSP_CrlID: &[u8; 6] = b"CrlID\0";
+pub const LN_id_pkix_OCSP_CrlID: &[u8; 12] = b"OCSP CRL ID\0";
+pub const NID_id_pkix_OCSP_CrlID: i32 = 367;
+pub const SN_id_pkix_OCSP_acceptableResponses: &[u8; 20] = b"acceptableResponses\0";
+pub const LN_id_pkix_OCSP_acceptableResponses: &[u8; 26] = b"Acceptable OCSP Responses\0";
+pub const NID_id_pkix_OCSP_acceptableResponses: i32 = 368;
+pub const SN_id_pkix_OCSP_noCheck: &[u8; 8] = b"noCheck\0";
+pub const LN_id_pkix_OCSP_noCheck: &[u8; 14] = b"OCSP No Check\0";
+pub const NID_id_pkix_OCSP_noCheck: i32 = 369;
+pub const SN_id_pkix_OCSP_archiveCutoff: &[u8; 14] = b"archiveCutoff\0";
+pub const LN_id_pkix_OCSP_archiveCutoff: &[u8; 20] = b"OCSP Archive Cutoff\0";
+pub const NID_id_pkix_OCSP_archiveCutoff: i32 = 370;
+pub const SN_id_pkix_OCSP_serviceLocator: &[u8; 15] = b"serviceLocator\0";
+pub const LN_id_pkix_OCSP_serviceLocator: &[u8; 21] = b"OCSP Service Locator\0";
+pub const NID_id_pkix_OCSP_serviceLocator: i32 = 371;
+pub const SN_id_pkix_OCSP_extendedStatus: &[u8; 15] = b"extendedStatus\0";
+pub const LN_id_pkix_OCSP_extendedStatus: &[u8; 21] = b"Extended OCSP Status\0";
+pub const NID_id_pkix_OCSP_extendedStatus: i32 = 372;
+pub const SN_id_pkix_OCSP_valid: &[u8; 6] = b"valid\0";
+pub const NID_id_pkix_OCSP_valid: i32 = 373;
+pub const SN_id_pkix_OCSP_path: &[u8; 5] = b"path\0";
+pub const NID_id_pkix_OCSP_path: i32 = 374;
+pub const SN_id_pkix_OCSP_trustRoot: &[u8; 10] = b"trustRoot\0";
+pub const LN_id_pkix_OCSP_trustRoot: &[u8; 11] = b"Trust Root\0";
+pub const NID_id_pkix_OCSP_trustRoot: i32 = 375;
+pub const SN_algorithm: &[u8; 10] = b"algorithm\0";
+pub const LN_algorithm: &[u8; 10] = b"algorithm\0";
+pub const NID_algorithm: i32 = 376;
+pub const SN_rsaSignature: &[u8; 13] = b"rsaSignature\0";
+pub const NID_rsaSignature: i32 = 377;
+pub const SN_X500algorithms: &[u8; 15] = b"X500algorithms\0";
+pub const LN_X500algorithms: &[u8; 32] = b"directory services - algorithms\0";
+pub const NID_X500algorithms: i32 = 378;
+pub const SN_org: &[u8; 4] = b"ORG\0";
+pub const LN_org: &[u8; 4] = b"org\0";
+pub const NID_org: i32 = 379;
+pub const SN_dod: &[u8; 4] = b"DOD\0";
+pub const LN_dod: &[u8; 4] = b"dod\0";
+pub const NID_dod: i32 = 380;
+pub const SN_iana: &[u8; 5] = b"IANA\0";
+pub const LN_iana: &[u8; 5] = b"iana\0";
+pub const NID_iana: i32 = 381;
+pub const SN_Directory: &[u8; 10] = b"directory\0";
+pub const LN_Directory: &[u8; 10] = b"Directory\0";
+pub const NID_Directory: i32 = 382;
+pub const SN_Management: &[u8; 5] = b"mgmt\0";
+pub const LN_Management: &[u8; 11] = b"Management\0";
+pub const NID_Management: i32 = 383;
+pub const SN_Experimental: &[u8; 13] = b"experimental\0";
+pub const LN_Experimental: &[u8; 13] = b"Experimental\0";
+pub const NID_Experimental: i32 = 384;
+pub const SN_Private: &[u8; 8] = b"private\0";
+pub const LN_Private: &[u8; 8] = b"Private\0";
+pub const NID_Private: i32 = 385;
+pub const SN_Security: &[u8; 9] = b"security\0";
+pub const LN_Security: &[u8; 9] = b"Security\0";
+pub const NID_Security: i32 = 386;
+pub const SN_SNMPv2: &[u8; 7] = b"snmpv2\0";
+pub const LN_SNMPv2: &[u8; 7] = b"SNMPv2\0";
+pub const NID_SNMPv2: i32 = 387;
+pub const LN_Mail: &[u8; 5] = b"Mail\0";
+pub const NID_Mail: i32 = 388;
+pub const SN_Enterprises: &[u8; 12] = b"enterprises\0";
+pub const LN_Enterprises: &[u8; 12] = b"Enterprises\0";
+pub const NID_Enterprises: i32 = 389;
+pub const SN_dcObject: &[u8; 9] = b"dcobject\0";
+pub const LN_dcObject: &[u8; 9] = b"dcObject\0";
+pub const NID_dcObject: i32 = 390;
+pub const SN_domainComponent: &[u8; 3] = b"DC\0";
+pub const LN_domainComponent: &[u8; 16] = b"domainComponent\0";
+pub const NID_domainComponent: i32 = 391;
+pub const SN_Domain: &[u8; 7] = b"domain\0";
+pub const LN_Domain: &[u8; 7] = b"Domain\0";
+pub const NID_Domain: i32 = 392;
+pub const SN_selected_attribute_types: &[u8; 25] = b"selected-attribute-types\0";
+pub const LN_selected_attribute_types: &[u8; 25] = b"Selected Attribute Types\0";
+pub const NID_selected_attribute_types: i32 = 394;
+pub const SN_clearance: &[u8; 10] = b"clearance\0";
+pub const NID_clearance: i32 = 395;
+pub const SN_md4WithRSAEncryption: &[u8; 8] = b"RSA-MD4\0";
+pub const LN_md4WithRSAEncryption: &[u8; 21] = b"md4WithRSAEncryption\0";
+pub const NID_md4WithRSAEncryption: i32 = 396;
+pub const SN_ac_proxying: &[u8; 12] = b"ac-proxying\0";
+pub const NID_ac_proxying: i32 = 397;
+pub const SN_sinfo_access: &[u8; 18] = b"subjectInfoAccess\0";
+pub const LN_sinfo_access: &[u8; 27] = b"Subject Information Access\0";
+pub const NID_sinfo_access: i32 = 398;
+pub const SN_id_aca_encAttrs: &[u8; 16] = b"id-aca-encAttrs\0";
+pub const NID_id_aca_encAttrs: i32 = 399;
+pub const SN_role: &[u8; 5] = b"role\0";
+pub const LN_role: &[u8; 5] = b"role\0";
+pub const NID_role: i32 = 400;
+pub const SN_policy_constraints: &[u8; 18] = b"policyConstraints\0";
+pub const LN_policy_constraints: &[u8; 26] = b"X509v3 Policy Constraints\0";
+pub const NID_policy_constraints: i32 = 401;
+pub const SN_target_information: &[u8; 18] = b"targetInformation\0";
+pub const LN_target_information: &[u8; 20] = b"X509v3 AC Targeting\0";
+pub const NID_target_information: i32 = 402;
+pub const SN_no_rev_avail: &[u8; 11] = b"noRevAvail\0";
+pub const LN_no_rev_avail: &[u8; 31] = b"X509v3 No Revocation Available\0";
+pub const NID_no_rev_avail: i32 = 403;
+pub const SN_ansi_X9_62: &[u8; 11] = b"ansi-X9-62\0";
+pub const LN_ansi_X9_62: &[u8; 11] = b"ANSI X9.62\0";
+pub const NID_ansi_X9_62: i32 = 405;
+pub const SN_X9_62_prime_field: &[u8; 12] = b"prime-field\0";
+pub const NID_X9_62_prime_field: i32 = 406;
+pub const SN_X9_62_characteristic_two_field: &[u8; 25] = b"characteristic-two-field\0";
+pub const NID_X9_62_characteristic_two_field: i32 = 407;
+pub const SN_X9_62_id_ecPublicKey: &[u8; 15] = b"id-ecPublicKey\0";
+pub const NID_X9_62_id_ecPublicKey: i32 = 408;
+pub const SN_X9_62_prime192v1: &[u8; 11] = b"prime192v1\0";
+pub const NID_X9_62_prime192v1: i32 = 409;
+pub const SN_X9_62_prime192v2: &[u8; 11] = b"prime192v2\0";
+pub const NID_X9_62_prime192v2: i32 = 410;
+pub const SN_X9_62_prime192v3: &[u8; 11] = b"prime192v3\0";
+pub const NID_X9_62_prime192v3: i32 = 411;
+pub const SN_X9_62_prime239v1: &[u8; 11] = b"prime239v1\0";
+pub const NID_X9_62_prime239v1: i32 = 412;
+pub const SN_X9_62_prime239v2: &[u8; 11] = b"prime239v2\0";
+pub const NID_X9_62_prime239v2: i32 = 413;
+pub const SN_X9_62_prime239v3: &[u8; 11] = b"prime239v3\0";
+pub const NID_X9_62_prime239v3: i32 = 414;
+pub const SN_X9_62_prime256v1: &[u8; 11] = b"prime256v1\0";
+pub const NID_X9_62_prime256v1: i32 = 415;
+pub const SN_ecdsa_with_SHA1: &[u8; 16] = b"ecdsa-with-SHA1\0";
+pub const NID_ecdsa_with_SHA1: i32 = 416;
+pub const SN_ms_csp_name: &[u8; 8] = b"CSPName\0";
+pub const LN_ms_csp_name: &[u8; 19] = b"Microsoft CSP Name\0";
+pub const NID_ms_csp_name: i32 = 417;
+pub const SN_aes_128_ecb: &[u8; 12] = b"AES-128-ECB\0";
+pub const LN_aes_128_ecb: &[u8; 12] = b"aes-128-ecb\0";
+pub const NID_aes_128_ecb: i32 = 418;
+pub const SN_aes_128_cbc: &[u8; 12] = b"AES-128-CBC\0";
+pub const LN_aes_128_cbc: &[u8; 12] = b"aes-128-cbc\0";
+pub const NID_aes_128_cbc: i32 = 419;
+pub const SN_aes_128_ofb128: &[u8; 12] = b"AES-128-OFB\0";
+pub const LN_aes_128_ofb128: &[u8; 12] = b"aes-128-ofb\0";
+pub const NID_aes_128_ofb128: i32 = 420;
+pub const SN_aes_128_cfb128: &[u8; 12] = b"AES-128-CFB\0";
+pub const LN_aes_128_cfb128: &[u8; 12] = b"aes-128-cfb\0";
+pub const NID_aes_128_cfb128: i32 = 421;
+pub const SN_aes_192_ecb: &[u8; 12] = b"AES-192-ECB\0";
+pub const LN_aes_192_ecb: &[u8; 12] = b"aes-192-ecb\0";
+pub const NID_aes_192_ecb: i32 = 422;
+pub const SN_aes_192_cbc: &[u8; 12] = b"AES-192-CBC\0";
+pub const LN_aes_192_cbc: &[u8; 12] = b"aes-192-cbc\0";
+pub const NID_aes_192_cbc: i32 = 423;
+pub const SN_aes_192_ofb128: &[u8; 12] = b"AES-192-OFB\0";
+pub const LN_aes_192_ofb128: &[u8; 12] = b"aes-192-ofb\0";
+pub const NID_aes_192_ofb128: i32 = 424;
+pub const SN_aes_192_cfb128: &[u8; 12] = b"AES-192-CFB\0";
+pub const LN_aes_192_cfb128: &[u8; 12] = b"aes-192-cfb\0";
+pub const NID_aes_192_cfb128: i32 = 425;
+pub const SN_aes_256_ecb: &[u8; 12] = b"AES-256-ECB\0";
+pub const LN_aes_256_ecb: &[u8; 12] = b"aes-256-ecb\0";
+pub const NID_aes_256_ecb: i32 = 426;
+pub const SN_aes_256_cbc: &[u8; 12] = b"AES-256-CBC\0";
+pub const LN_aes_256_cbc: &[u8; 12] = b"aes-256-cbc\0";
+pub const NID_aes_256_cbc: i32 = 427;
+pub const SN_aes_256_ofb128: &[u8; 12] = b"AES-256-OFB\0";
+pub const LN_aes_256_ofb128: &[u8; 12] = b"aes-256-ofb\0";
+pub const NID_aes_256_ofb128: i32 = 428;
+pub const SN_aes_256_cfb128: &[u8; 12] = b"AES-256-CFB\0";
+pub const LN_aes_256_cfb128: &[u8; 12] = b"aes-256-cfb\0";
+pub const NID_aes_256_cfb128: i32 = 429;
+pub const SN_hold_instruction_code: &[u8; 20] = b"holdInstructionCode\0";
+pub const LN_hold_instruction_code: &[u8; 22] = b"Hold Instruction Code\0";
+pub const NID_hold_instruction_code: i32 = 430;
+pub const SN_hold_instruction_none: &[u8; 20] = b"holdInstructionNone\0";
+pub const LN_hold_instruction_none: &[u8; 22] = b"Hold Instruction None\0";
+pub const NID_hold_instruction_none: i32 = 431;
+pub const SN_hold_instruction_call_issuer: &[u8; 26] = b"holdInstructionCallIssuer\0";
+pub const LN_hold_instruction_call_issuer: &[u8; 29] = b"Hold Instruction Call Issuer\0";
+pub const NID_hold_instruction_call_issuer: i32 = 432;
+pub const SN_hold_instruction_reject: &[u8; 22] = b"holdInstructionReject\0";
+pub const LN_hold_instruction_reject: &[u8; 24] = b"Hold Instruction Reject\0";
+pub const NID_hold_instruction_reject: i32 = 433;
+pub const SN_data: &[u8; 5] = b"data\0";
+pub const NID_data: i32 = 434;
+pub const SN_pss: &[u8; 4] = b"pss\0";
+pub const NID_pss: i32 = 435;
+pub const SN_ucl: &[u8; 4] = b"ucl\0";
+pub const NID_ucl: i32 = 436;
+pub const SN_pilot: &[u8; 6] = b"pilot\0";
+pub const NID_pilot: i32 = 437;
+pub const LN_pilotAttributeType: &[u8; 19] = b"pilotAttributeType\0";
+pub const NID_pilotAttributeType: i32 = 438;
+pub const LN_pilotAttributeSyntax: &[u8; 21] = b"pilotAttributeSyntax\0";
+pub const NID_pilotAttributeSyntax: i32 = 439;
+pub const LN_pilotObjectClass: &[u8; 17] = b"pilotObjectClass\0";
+pub const NID_pilotObjectClass: i32 = 440;
+pub const LN_pilotGroups: &[u8; 12] = b"pilotGroups\0";
+pub const NID_pilotGroups: i32 = 441;
+pub const LN_iA5StringSyntax: &[u8; 16] = b"iA5StringSyntax\0";
+pub const NID_iA5StringSyntax: i32 = 442;
+pub const LN_caseIgnoreIA5StringSyntax: &[u8; 26] = b"caseIgnoreIA5StringSyntax\0";
+pub const NID_caseIgnoreIA5StringSyntax: i32 = 443;
+pub const LN_pilotObject: &[u8; 12] = b"pilotObject\0";
+pub const NID_pilotObject: i32 = 444;
+pub const LN_pilotPerson: &[u8; 12] = b"pilotPerson\0";
+pub const NID_pilotPerson: i32 = 445;
+pub const SN_account: &[u8; 8] = b"account\0";
+pub const NID_account: i32 = 446;
+pub const SN_document: &[u8; 9] = b"document\0";
+pub const NID_document: i32 = 447;
+pub const SN_room: &[u8; 5] = b"room\0";
+pub const NID_room: i32 = 448;
+pub const LN_documentSeries: &[u8; 15] = b"documentSeries\0";
+pub const NID_documentSeries: i32 = 449;
+pub const LN_rFC822localPart: &[u8; 16] = b"rFC822localPart\0";
+pub const NID_rFC822localPart: i32 = 450;
+pub const LN_dNSDomain: &[u8; 10] = b"dNSDomain\0";
+pub const NID_dNSDomain: i32 = 451;
+pub const LN_domainRelatedObject: &[u8; 20] = b"domainRelatedObject\0";
+pub const NID_domainRelatedObject: i32 = 452;
+pub const LN_friendlyCountry: &[u8; 16] = b"friendlyCountry\0";
+pub const NID_friendlyCountry: i32 = 453;
+pub const LN_simpleSecurityObject: &[u8; 21] = b"simpleSecurityObject\0";
+pub const NID_simpleSecurityObject: i32 = 454;
+pub const LN_pilotOrganization: &[u8; 18] = b"pilotOrganization\0";
+pub const NID_pilotOrganization: i32 = 455;
+pub const LN_pilotDSA: &[u8; 9] = b"pilotDSA\0";
+pub const NID_pilotDSA: i32 = 456;
+pub const LN_qualityLabelledData: &[u8; 20] = b"qualityLabelledData\0";
+pub const NID_qualityLabelledData: i32 = 457;
+pub const SN_userId: &[u8; 4] = b"UID\0";
+pub const LN_userId: &[u8; 7] = b"userId\0";
+pub const NID_userId: i32 = 458;
+pub const LN_textEncodedORAddress: &[u8; 21] = b"textEncodedORAddress\0";
+pub const NID_textEncodedORAddress: i32 = 459;
+pub const SN_rfc822Mailbox: &[u8; 5] = b"mail\0";
+pub const LN_rfc822Mailbox: &[u8; 14] = b"rfc822Mailbox\0";
+pub const NID_rfc822Mailbox: i32 = 460;
+pub const SN_info: &[u8; 5] = b"info\0";
+pub const NID_info: i32 = 461;
+pub const LN_favouriteDrink: &[u8; 15] = b"favouriteDrink\0";
+pub const NID_favouriteDrink: i32 = 462;
+pub const LN_roomNumber: &[u8; 11] = b"roomNumber\0";
+pub const NID_roomNumber: i32 = 463;
+pub const SN_photo: &[u8; 6] = b"photo\0";
+pub const NID_photo: i32 = 464;
+pub const LN_userClass: &[u8; 10] = b"userClass\0";
+pub const NID_userClass: i32 = 465;
+pub const SN_host: &[u8; 5] = b"host\0";
+pub const NID_host: i32 = 466;
+pub const SN_manager: &[u8; 8] = b"manager\0";
+pub const NID_manager: i32 = 467;
+pub const LN_documentIdentifier: &[u8; 19] = b"documentIdentifier\0";
+pub const NID_documentIdentifier: i32 = 468;
+pub const LN_documentTitle: &[u8; 14] = b"documentTitle\0";
+pub const NID_documentTitle: i32 = 469;
+pub const LN_documentVersion: &[u8; 16] = b"documentVersion\0";
+pub const NID_documentVersion: i32 = 470;
+pub const LN_documentAuthor: &[u8; 15] = b"documentAuthor\0";
+pub const NID_documentAuthor: i32 = 471;
+pub const LN_documentLocation: &[u8; 17] = b"documentLocation\0";
+pub const NID_documentLocation: i32 = 472;
+pub const LN_homeTelephoneNumber: &[u8; 20] = b"homeTelephoneNumber\0";
+pub const NID_homeTelephoneNumber: i32 = 473;
+pub const SN_secretary: &[u8; 10] = b"secretary\0";
+pub const NID_secretary: i32 = 474;
+pub const LN_otherMailbox: &[u8; 13] = b"otherMailbox\0";
+pub const NID_otherMailbox: i32 = 475;
+pub const LN_lastModifiedTime: &[u8; 17] = b"lastModifiedTime\0";
+pub const NID_lastModifiedTime: i32 = 476;
+pub const LN_lastModifiedBy: &[u8; 15] = b"lastModifiedBy\0";
+pub const NID_lastModifiedBy: i32 = 477;
+pub const LN_aRecord: &[u8; 8] = b"aRecord\0";
+pub const NID_aRecord: i32 = 478;
+pub const LN_pilotAttributeType27: &[u8; 21] = b"pilotAttributeType27\0";
+pub const NID_pilotAttributeType27: i32 = 479;
+pub const LN_mXRecord: &[u8; 9] = b"mXRecord\0";
+pub const NID_mXRecord: i32 = 480;
+pub const LN_nSRecord: &[u8; 9] = b"nSRecord\0";
+pub const NID_nSRecord: i32 = 481;
+pub const LN_sOARecord: &[u8; 10] = b"sOARecord\0";
+pub const NID_sOARecord: i32 = 482;
+pub const LN_cNAMERecord: &[u8; 12] = b"cNAMERecord\0";
+pub const NID_cNAMERecord: i32 = 483;
+pub const LN_associatedDomain: &[u8; 17] = b"associatedDomain\0";
+pub const NID_associatedDomain: i32 = 484;
+pub const LN_associatedName: &[u8; 15] = b"associatedName\0";
+pub const NID_associatedName: i32 = 485;
+pub const LN_homePostalAddress: &[u8; 18] = b"homePostalAddress\0";
+pub const NID_homePostalAddress: i32 = 486;
+pub const LN_personalTitle: &[u8; 14] = b"personalTitle\0";
+pub const NID_personalTitle: i32 = 487;
+pub const LN_mobileTelephoneNumber: &[u8; 22] = b"mobileTelephoneNumber\0";
+pub const NID_mobileTelephoneNumber: i32 = 488;
+pub const LN_pagerTelephoneNumber: &[u8; 21] = b"pagerTelephoneNumber\0";
+pub const NID_pagerTelephoneNumber: i32 = 489;
+pub const LN_friendlyCountryName: &[u8; 20] = b"friendlyCountryName\0";
+pub const NID_friendlyCountryName: i32 = 490;
+pub const LN_organizationalStatus: &[u8; 21] = b"organizationalStatus\0";
+pub const NID_organizationalStatus: i32 = 491;
+pub const LN_janetMailbox: &[u8; 13] = b"janetMailbox\0";
+pub const NID_janetMailbox: i32 = 492;
+pub const LN_mailPreferenceOption: &[u8; 21] = b"mailPreferenceOption\0";
+pub const NID_mailPreferenceOption: i32 = 493;
+pub const LN_buildingName: &[u8; 13] = b"buildingName\0";
+pub const NID_buildingName: i32 = 494;
+pub const LN_dSAQuality: &[u8; 11] = b"dSAQuality\0";
+pub const NID_dSAQuality: i32 = 495;
+pub const LN_singleLevelQuality: &[u8; 19] = b"singleLevelQuality\0";
+pub const NID_singleLevelQuality: i32 = 496;
+pub const LN_subtreeMinimumQuality: &[u8; 22] = b"subtreeMinimumQuality\0";
+pub const NID_subtreeMinimumQuality: i32 = 497;
+pub const LN_subtreeMaximumQuality: &[u8; 22] = b"subtreeMaximumQuality\0";
+pub const NID_subtreeMaximumQuality: i32 = 498;
+pub const LN_personalSignature: &[u8; 18] = b"personalSignature\0";
+pub const NID_personalSignature: i32 = 499;
+pub const LN_dITRedirect: &[u8; 12] = b"dITRedirect\0";
+pub const NID_dITRedirect: i32 = 500;
+pub const SN_audio: &[u8; 6] = b"audio\0";
+pub const NID_audio: i32 = 501;
+pub const LN_documentPublisher: &[u8; 18] = b"documentPublisher\0";
+pub const NID_documentPublisher: i32 = 502;
+pub const LN_x500UniqueIdentifier: &[u8; 21] = b"x500UniqueIdentifier\0";
+pub const NID_x500UniqueIdentifier: i32 = 503;
+pub const SN_mime_mhs: &[u8; 9] = b"mime-mhs\0";
+pub const LN_mime_mhs: &[u8; 9] = b"MIME MHS\0";
+pub const NID_mime_mhs: i32 = 504;
+pub const SN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
+pub const LN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
+pub const NID_mime_mhs_headings: i32 = 505;
+pub const SN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
+pub const LN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
+pub const NID_mime_mhs_bodies: i32 = 506;
+pub const SN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
+pub const LN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
+pub const NID_id_hex_partial_message: i32 = 507;
+pub const SN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
+pub const LN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
+pub const NID_id_hex_multipart_message: i32 = 508;
+pub const LN_generationQualifier: &[u8; 20] = b"generationQualifier\0";
+pub const NID_generationQualifier: i32 = 509;
+pub const LN_pseudonym: &[u8; 10] = b"pseudonym\0";
+pub const NID_pseudonym: i32 = 510;
+pub const SN_id_set: &[u8; 7] = b"id-set\0";
+pub const LN_id_set: &[u8; 31] = b"Secure Electronic Transactions\0";
+pub const NID_id_set: i32 = 512;
+pub const SN_set_ctype: &[u8; 10] = b"set-ctype\0";
+pub const LN_set_ctype: &[u8; 14] = b"content types\0";
+pub const NID_set_ctype: i32 = 513;
+pub const SN_set_msgExt: &[u8; 11] = b"set-msgExt\0";
+pub const LN_set_msgExt: &[u8; 19] = b"message extensions\0";
+pub const NID_set_msgExt: i32 = 514;
+pub const SN_set_attr: &[u8; 9] = b"set-attr\0";
+pub const NID_set_attr: i32 = 515;
+pub const SN_set_policy: &[u8; 11] = b"set-policy\0";
+pub const NID_set_policy: i32 = 516;
+pub const SN_set_certExt: &[u8; 12] = b"set-certExt\0";
+pub const LN_set_certExt: &[u8; 23] = b"certificate extensions\0";
+pub const NID_set_certExt: i32 = 517;
+pub const SN_set_brand: &[u8; 10] = b"set-brand\0";
+pub const NID_set_brand: i32 = 518;
+pub const SN_setct_PANData: &[u8; 14] = b"setct-PANData\0";
+pub const NID_setct_PANData: i32 = 519;
+pub const SN_setct_PANToken: &[u8; 15] = b"setct-PANToken\0";
+pub const NID_setct_PANToken: i32 = 520;
+pub const SN_setct_PANOnly: &[u8; 14] = b"setct-PANOnly\0";
+pub const NID_setct_PANOnly: i32 = 521;
+pub const SN_setct_OIData: &[u8; 13] = b"setct-OIData\0";
+pub const NID_setct_OIData: i32 = 522;
+pub const SN_setct_PI: &[u8; 9] = b"setct-PI\0";
+pub const NID_setct_PI: i32 = 523;
+pub const SN_setct_PIData: &[u8; 13] = b"setct-PIData\0";
+pub const NID_setct_PIData: i32 = 524;
+pub const SN_setct_PIDataUnsigned: &[u8; 21] = b"setct-PIDataUnsigned\0";
+pub const NID_setct_PIDataUnsigned: i32 = 525;
+pub const SN_setct_HODInput: &[u8; 15] = b"setct-HODInput\0";
+pub const NID_setct_HODInput: i32 = 526;
+pub const SN_setct_AuthResBaggage: &[u8; 21] = b"setct-AuthResBaggage\0";
+pub const NID_setct_AuthResBaggage: i32 = 527;
+pub const SN_setct_AuthRevReqBaggage: &[u8; 24] = b"setct-AuthRevReqBaggage\0";
+pub const NID_setct_AuthRevReqBaggage: i32 = 528;
+pub const SN_setct_AuthRevResBaggage: &[u8; 24] = b"setct-AuthRevResBaggage\0";
+pub const NID_setct_AuthRevResBaggage: i32 = 529;
+pub const SN_setct_CapTokenSeq: &[u8; 18] = b"setct-CapTokenSeq\0";
+pub const NID_setct_CapTokenSeq: i32 = 530;
+pub const SN_setct_PInitResData: &[u8; 19] = b"setct-PInitResData\0";
+pub const NID_setct_PInitResData: i32 = 531;
+pub const SN_setct_PI_TBS: &[u8; 13] = b"setct-PI-TBS\0";
+pub const NID_setct_PI_TBS: i32 = 532;
+pub const SN_setct_PResData: &[u8; 15] = b"setct-PResData\0";
+pub const NID_setct_PResData: i32 = 533;
+pub const SN_setct_AuthReqTBS: &[u8; 17] = b"setct-AuthReqTBS\0";
+pub const NID_setct_AuthReqTBS: i32 = 534;
+pub const SN_setct_AuthResTBS: &[u8; 17] = b"setct-AuthResTBS\0";
+pub const NID_setct_AuthResTBS: i32 = 535;
+pub const SN_setct_AuthResTBSX: &[u8; 18] = b"setct-AuthResTBSX\0";
+pub const NID_setct_AuthResTBSX: i32 = 536;
+pub const SN_setct_AuthTokenTBS: &[u8; 19] = b"setct-AuthTokenTBS\0";
+pub const NID_setct_AuthTokenTBS: i32 = 537;
+pub const SN_setct_CapTokenData: &[u8; 19] = b"setct-CapTokenData\0";
+pub const NID_setct_CapTokenData: i32 = 538;
+pub const SN_setct_CapTokenTBS: &[u8; 18] = b"setct-CapTokenTBS\0";
+pub const NID_setct_CapTokenTBS: i32 = 539;
+pub const SN_setct_AcqCardCodeMsg: &[u8; 21] = b"setct-AcqCardCodeMsg\0";
+pub const NID_setct_AcqCardCodeMsg: i32 = 540;
+pub const SN_setct_AuthRevReqTBS: &[u8; 20] = b"setct-AuthRevReqTBS\0";
+pub const NID_setct_AuthRevReqTBS: i32 = 541;
+pub const SN_setct_AuthRevResData: &[u8; 21] = b"setct-AuthRevResData\0";
+pub const NID_setct_AuthRevResData: i32 = 542;
+pub const SN_setct_AuthRevResTBS: &[u8; 20] = b"setct-AuthRevResTBS\0";
+pub const NID_setct_AuthRevResTBS: i32 = 543;
+pub const SN_setct_CapReqTBS: &[u8; 16] = b"setct-CapReqTBS\0";
+pub const NID_setct_CapReqTBS: i32 = 544;
+pub const SN_setct_CapReqTBSX: &[u8; 17] = b"setct-CapReqTBSX\0";
+pub const NID_setct_CapReqTBSX: i32 = 545;
+pub const SN_setct_CapResData: &[u8; 17] = b"setct-CapResData\0";
+pub const NID_setct_CapResData: i32 = 546;
+pub const SN_setct_CapRevReqTBS: &[u8; 19] = b"setct-CapRevReqTBS\0";
+pub const NID_setct_CapRevReqTBS: i32 = 547;
+pub const SN_setct_CapRevReqTBSX: &[u8; 20] = b"setct-CapRevReqTBSX\0";
+pub const NID_setct_CapRevReqTBSX: i32 = 548;
+pub const SN_setct_CapRevResData: &[u8; 20] = b"setct-CapRevResData\0";
+pub const NID_setct_CapRevResData: i32 = 549;
+pub const SN_setct_CredReqTBS: &[u8; 17] = b"setct-CredReqTBS\0";
+pub const NID_setct_CredReqTBS: i32 = 550;
+pub const SN_setct_CredReqTBSX: &[u8; 18] = b"setct-CredReqTBSX\0";
+pub const NID_setct_CredReqTBSX: i32 = 551;
+pub const SN_setct_CredResData: &[u8; 18] = b"setct-CredResData\0";
+pub const NID_setct_CredResData: i32 = 552;
+pub const SN_setct_CredRevReqTBS: &[u8; 20] = b"setct-CredRevReqTBS\0";
+pub const NID_setct_CredRevReqTBS: i32 = 553;
+pub const SN_setct_CredRevReqTBSX: &[u8; 21] = b"setct-CredRevReqTBSX\0";
+pub const NID_setct_CredRevReqTBSX: i32 = 554;
+pub const SN_setct_CredRevResData: &[u8; 21] = b"setct-CredRevResData\0";
+pub const NID_setct_CredRevResData: i32 = 555;
+pub const SN_setct_PCertReqData: &[u8; 19] = b"setct-PCertReqData\0";
+pub const NID_setct_PCertReqData: i32 = 556;
+pub const SN_setct_PCertResTBS: &[u8; 18] = b"setct-PCertResTBS\0";
+pub const NID_setct_PCertResTBS: i32 = 557;
+pub const SN_setct_BatchAdminReqData: &[u8; 24] = b"setct-BatchAdminReqData\0";
+pub const NID_setct_BatchAdminReqData: i32 = 558;
+pub const SN_setct_BatchAdminResData: &[u8; 24] = b"setct-BatchAdminResData\0";
+pub const NID_setct_BatchAdminResData: i32 = 559;
+pub const SN_setct_CardCInitResTBS: &[u8; 22] = b"setct-CardCInitResTBS\0";
+pub const NID_setct_CardCInitResTBS: i32 = 560;
+pub const SN_setct_MeAqCInitResTBS: &[u8; 22] = b"setct-MeAqCInitResTBS\0";
+pub const NID_setct_MeAqCInitResTBS: i32 = 561;
+pub const SN_setct_RegFormResTBS: &[u8; 20] = b"setct-RegFormResTBS\0";
+pub const NID_setct_RegFormResTBS: i32 = 562;
+pub const SN_setct_CertReqData: &[u8; 18] = b"setct-CertReqData\0";
+pub const NID_setct_CertReqData: i32 = 563;
+pub const SN_setct_CertReqTBS: &[u8; 17] = b"setct-CertReqTBS\0";
+pub const NID_setct_CertReqTBS: i32 = 564;
+pub const SN_setct_CertResData: &[u8; 18] = b"setct-CertResData\0";
+pub const NID_setct_CertResData: i32 = 565;
+pub const SN_setct_CertInqReqTBS: &[u8; 20] = b"setct-CertInqReqTBS\0";
+pub const NID_setct_CertInqReqTBS: i32 = 566;
+pub const SN_setct_ErrorTBS: &[u8; 15] = b"setct-ErrorTBS\0";
+pub const NID_setct_ErrorTBS: i32 = 567;
+pub const SN_setct_PIDualSignedTBE: &[u8; 22] = b"setct-PIDualSignedTBE\0";
+pub const NID_setct_PIDualSignedTBE: i32 = 568;
+pub const SN_setct_PIUnsignedTBE: &[u8; 20] = b"setct-PIUnsignedTBE\0";
+pub const NID_setct_PIUnsignedTBE: i32 = 569;
+pub const SN_setct_AuthReqTBE: &[u8; 17] = b"setct-AuthReqTBE\0";
+pub const NID_setct_AuthReqTBE: i32 = 570;
+pub const SN_setct_AuthResTBE: &[u8; 17] = b"setct-AuthResTBE\0";
+pub const NID_setct_AuthResTBE: i32 = 571;
+pub const SN_setct_AuthResTBEX: &[u8; 18] = b"setct-AuthResTBEX\0";
+pub const NID_setct_AuthResTBEX: i32 = 572;
+pub const SN_setct_AuthTokenTBE: &[u8; 19] = b"setct-AuthTokenTBE\0";
+pub const NID_setct_AuthTokenTBE: i32 = 573;
+pub const SN_setct_CapTokenTBE: &[u8; 18] = b"setct-CapTokenTBE\0";
+pub const NID_setct_CapTokenTBE: i32 = 574;
+pub const SN_setct_CapTokenTBEX: &[u8; 19] = b"setct-CapTokenTBEX\0";
+pub const NID_setct_CapTokenTBEX: i32 = 575;
+pub const SN_setct_AcqCardCodeMsgTBE: &[u8; 24] = b"setct-AcqCardCodeMsgTBE\0";
+pub const NID_setct_AcqCardCodeMsgTBE: i32 = 576;
+pub const SN_setct_AuthRevReqTBE: &[u8; 20] = b"setct-AuthRevReqTBE\0";
+pub const NID_setct_AuthRevReqTBE: i32 = 577;
+pub const SN_setct_AuthRevResTBE: &[u8; 20] = b"setct-AuthRevResTBE\0";
+pub const NID_setct_AuthRevResTBE: i32 = 578;
+pub const SN_setct_AuthRevResTBEB: &[u8; 21] = b"setct-AuthRevResTBEB\0";
+pub const NID_setct_AuthRevResTBEB: i32 = 579;
+pub const SN_setct_CapReqTBE: &[u8; 16] = b"setct-CapReqTBE\0";
+pub const NID_setct_CapReqTBE: i32 = 580;
+pub const SN_setct_CapReqTBEX: &[u8; 17] = b"setct-CapReqTBEX\0";
+pub const NID_setct_CapReqTBEX: i32 = 581;
+pub const SN_setct_CapResTBE: &[u8; 16] = b"setct-CapResTBE\0";
+pub const NID_setct_CapResTBE: i32 = 582;
+pub const SN_setct_CapRevReqTBE: &[u8; 19] = b"setct-CapRevReqTBE\0";
+pub const NID_setct_CapRevReqTBE: i32 = 583;
+pub const SN_setct_CapRevReqTBEX: &[u8; 20] = b"setct-CapRevReqTBEX\0";
+pub const NID_setct_CapRevReqTBEX: i32 = 584;
+pub const SN_setct_CapRevResTBE: &[u8; 19] = b"setct-CapRevResTBE\0";
+pub const NID_setct_CapRevResTBE: i32 = 585;
+pub const SN_setct_CredReqTBE: &[u8; 17] = b"setct-CredReqTBE\0";
+pub const NID_setct_CredReqTBE: i32 = 586;
+pub const SN_setct_CredReqTBEX: &[u8; 18] = b"setct-CredReqTBEX\0";
+pub const NID_setct_CredReqTBEX: i32 = 587;
+pub const SN_setct_CredResTBE: &[u8; 17] = b"setct-CredResTBE\0";
+pub const NID_setct_CredResTBE: i32 = 588;
+pub const SN_setct_CredRevReqTBE: &[u8; 20] = b"setct-CredRevReqTBE\0";
+pub const NID_setct_CredRevReqTBE: i32 = 589;
+pub const SN_setct_CredRevReqTBEX: &[u8; 21] = b"setct-CredRevReqTBEX\0";
+pub const NID_setct_CredRevReqTBEX: i32 = 590;
+pub const SN_setct_CredRevResTBE: &[u8; 20] = b"setct-CredRevResTBE\0";
+pub const NID_setct_CredRevResTBE: i32 = 591;
+pub const SN_setct_BatchAdminReqTBE: &[u8; 23] = b"setct-BatchAdminReqTBE\0";
+pub const NID_setct_BatchAdminReqTBE: i32 = 592;
+pub const SN_setct_BatchAdminResTBE: &[u8; 23] = b"setct-BatchAdminResTBE\0";
+pub const NID_setct_BatchAdminResTBE: i32 = 593;
+pub const SN_setct_RegFormReqTBE: &[u8; 20] = b"setct-RegFormReqTBE\0";
+pub const NID_setct_RegFormReqTBE: i32 = 594;
+pub const SN_setct_CertReqTBE: &[u8; 17] = b"setct-CertReqTBE\0";
+pub const NID_setct_CertReqTBE: i32 = 595;
+pub const SN_setct_CertReqTBEX: &[u8; 18] = b"setct-CertReqTBEX\0";
+pub const NID_setct_CertReqTBEX: i32 = 596;
+pub const SN_setct_CertResTBE: &[u8; 17] = b"setct-CertResTBE\0";
+pub const NID_setct_CertResTBE: i32 = 597;
+pub const SN_setct_CRLNotificationTBS: &[u8; 25] = b"setct-CRLNotificationTBS\0";
+pub const NID_setct_CRLNotificationTBS: i32 = 598;
+pub const SN_setct_CRLNotificationResTBS: &[u8; 28] = b"setct-CRLNotificationResTBS\0";
+pub const NID_setct_CRLNotificationResTBS: i32 = 599;
+pub const SN_setct_BCIDistributionTBS: &[u8; 25] = b"setct-BCIDistributionTBS\0";
+pub const NID_setct_BCIDistributionTBS: i32 = 600;
+pub const SN_setext_genCrypt: &[u8; 16] = b"setext-genCrypt\0";
+pub const LN_setext_genCrypt: &[u8; 19] = b"generic cryptogram\0";
+pub const NID_setext_genCrypt: i32 = 601;
+pub const SN_setext_miAuth: &[u8; 14] = b"setext-miAuth\0";
+pub const LN_setext_miAuth: &[u8; 24] = b"merchant initiated auth\0";
+pub const NID_setext_miAuth: i32 = 602;
+pub const SN_setext_pinSecure: &[u8; 17] = b"setext-pinSecure\0";
+pub const NID_setext_pinSecure: i32 = 603;
+pub const SN_setext_pinAny: &[u8; 14] = b"setext-pinAny\0";
+pub const NID_setext_pinAny: i32 = 604;
+pub const SN_setext_track2: &[u8; 14] = b"setext-track2\0";
+pub const NID_setext_track2: i32 = 605;
+pub const SN_setext_cv: &[u8; 10] = b"setext-cv\0";
+pub const LN_setext_cv: &[u8; 24] = b"additional verification\0";
+pub const NID_setext_cv: i32 = 606;
+pub const SN_set_policy_root: &[u8; 16] = b"set-policy-root\0";
+pub const NID_set_policy_root: i32 = 607;
+pub const SN_setCext_hashedRoot: &[u8; 19] = b"setCext-hashedRoot\0";
+pub const NID_setCext_hashedRoot: i32 = 608;
+pub const SN_setCext_certType: &[u8; 17] = b"setCext-certType\0";
+pub const NID_setCext_certType: i32 = 609;
+pub const SN_setCext_merchData: &[u8; 18] = b"setCext-merchData\0";
+pub const NID_setCext_merchData: i32 = 610;
+pub const SN_setCext_cCertRequired: &[u8; 22] = b"setCext-cCertRequired\0";
+pub const NID_setCext_cCertRequired: i32 = 611;
+pub const SN_setCext_tunneling: &[u8; 18] = b"setCext-tunneling\0";
+pub const NID_setCext_tunneling: i32 = 612;
+pub const SN_setCext_setExt: &[u8; 15] = b"setCext-setExt\0";
+pub const NID_setCext_setExt: i32 = 613;
+pub const SN_setCext_setQualf: &[u8; 17] = b"setCext-setQualf\0";
+pub const NID_setCext_setQualf: i32 = 614;
+pub const SN_setCext_PGWYcapabilities: &[u8; 25] = b"setCext-PGWYcapabilities\0";
+pub const NID_setCext_PGWYcapabilities: i32 = 615;
+pub const SN_setCext_TokenIdentifier: &[u8; 24] = b"setCext-TokenIdentifier\0";
+pub const NID_setCext_TokenIdentifier: i32 = 616;
+pub const SN_setCext_Track2Data: &[u8; 19] = b"setCext-Track2Data\0";
+pub const NID_setCext_Track2Data: i32 = 617;
+pub const SN_setCext_TokenType: &[u8; 18] = b"setCext-TokenType\0";
+pub const NID_setCext_TokenType: i32 = 618;
+pub const SN_setCext_IssuerCapabilities: &[u8; 27] = b"setCext-IssuerCapabilities\0";
+pub const NID_setCext_IssuerCapabilities: i32 = 619;
+pub const SN_setAttr_Cert: &[u8; 13] = b"setAttr-Cert\0";
+pub const NID_setAttr_Cert: i32 = 620;
+pub const SN_setAttr_PGWYcap: &[u8; 16] = b"setAttr-PGWYcap\0";
+pub const LN_setAttr_PGWYcap: &[u8; 29] = b"payment gateway capabilities\0";
+pub const NID_setAttr_PGWYcap: i32 = 621;
+pub const SN_setAttr_TokenType: &[u8; 18] = b"setAttr-TokenType\0";
+pub const NID_setAttr_TokenType: i32 = 622;
+pub const SN_setAttr_IssCap: &[u8; 15] = b"setAttr-IssCap\0";
+pub const LN_setAttr_IssCap: &[u8; 20] = b"issuer capabilities\0";
+pub const NID_setAttr_IssCap: i32 = 623;
+pub const SN_set_rootKeyThumb: &[u8; 17] = b"set-rootKeyThumb\0";
+pub const NID_set_rootKeyThumb: i32 = 624;
+pub const SN_set_addPolicy: &[u8; 14] = b"set-addPolicy\0";
+pub const NID_set_addPolicy: i32 = 625;
+pub const SN_setAttr_Token_EMV: &[u8; 18] = b"setAttr-Token-EMV\0";
+pub const NID_setAttr_Token_EMV: i32 = 626;
+pub const SN_setAttr_Token_B0Prime: &[u8; 22] = b"setAttr-Token-B0Prime\0";
+pub const NID_setAttr_Token_B0Prime: i32 = 627;
+pub const SN_setAttr_IssCap_CVM: &[u8; 19] = b"setAttr-IssCap-CVM\0";
+pub const NID_setAttr_IssCap_CVM: i32 = 628;
+pub const SN_setAttr_IssCap_T2: &[u8; 18] = b"setAttr-IssCap-T2\0";
+pub const NID_setAttr_IssCap_T2: i32 = 629;
+pub const SN_setAttr_IssCap_Sig: &[u8; 19] = b"setAttr-IssCap-Sig\0";
+pub const NID_setAttr_IssCap_Sig: i32 = 630;
+pub const SN_setAttr_GenCryptgrm: &[u8; 20] = b"setAttr-GenCryptgrm\0";
+pub const LN_setAttr_GenCryptgrm: &[u8; 20] = b"generate cryptogram\0";
+pub const NID_setAttr_GenCryptgrm: i32 = 631;
+pub const SN_setAttr_T2Enc: &[u8; 14] = b"setAttr-T2Enc\0";
+pub const LN_setAttr_T2Enc: &[u8; 18] = b"encrypted track 2\0";
+pub const NID_setAttr_T2Enc: i32 = 632;
+pub const SN_setAttr_T2cleartxt: &[u8; 19] = b"setAttr-T2cleartxt\0";
+pub const LN_setAttr_T2cleartxt: &[u8; 18] = b"cleartext track 2\0";
+pub const NID_setAttr_T2cleartxt: i32 = 633;
+pub const SN_setAttr_TokICCsig: &[u8; 18] = b"setAttr-TokICCsig\0";
+pub const LN_setAttr_TokICCsig: &[u8; 23] = b"ICC or token signature\0";
+pub const NID_setAttr_TokICCsig: i32 = 634;
+pub const SN_setAttr_SecDevSig: &[u8; 18] = b"setAttr-SecDevSig\0";
+pub const LN_setAttr_SecDevSig: &[u8; 24] = b"secure device signature\0";
+pub const NID_setAttr_SecDevSig: i32 = 635;
+pub const SN_set_brand_IATA_ATA: &[u8; 19] = b"set-brand-IATA-ATA\0";
+pub const NID_set_brand_IATA_ATA: i32 = 636;
+pub const SN_set_brand_Diners: &[u8; 17] = b"set-brand-Diners\0";
+pub const NID_set_brand_Diners: i32 = 637;
+pub const SN_set_brand_AmericanExpress: &[u8; 26] = b"set-brand-AmericanExpress\0";
+pub const NID_set_brand_AmericanExpress: i32 = 638;
+pub const SN_set_brand_JCB: &[u8; 14] = b"set-brand-JCB\0";
+pub const NID_set_brand_JCB: i32 = 639;
+pub const SN_set_brand_Visa: &[u8; 15] = b"set-brand-Visa\0";
+pub const NID_set_brand_Visa: i32 = 640;
+pub const SN_set_brand_MasterCard: &[u8; 21] = b"set-brand-MasterCard\0";
+pub const NID_set_brand_MasterCard: i32 = 641;
+pub const SN_set_brand_Novus: &[u8; 16] = b"set-brand-Novus\0";
+pub const NID_set_brand_Novus: i32 = 642;
+pub const SN_des_cdmf: &[u8; 9] = b"DES-CDMF\0";
+pub const LN_des_cdmf: &[u8; 9] = b"des-cdmf\0";
+pub const NID_des_cdmf: i32 = 643;
+pub const SN_rsaOAEPEncryptionSET: &[u8; 21] = b"rsaOAEPEncryptionSET\0";
+pub const NID_rsaOAEPEncryptionSET: i32 = 644;
+pub const SN_itu_t: &[u8; 6] = b"ITU-T\0";
+pub const LN_itu_t: &[u8; 6] = b"itu-t\0";
+pub const NID_itu_t: i32 = 645;
+pub const OBJ_itu_t: i32 = 0;
+pub const SN_joint_iso_itu_t: &[u8; 16] = b"JOINT-ISO-ITU-T\0";
+pub const LN_joint_iso_itu_t: &[u8; 16] = b"joint-iso-itu-t\0";
+pub const NID_joint_iso_itu_t: i32 = 646;
+pub const OBJ_joint_iso_itu_t: i32 = 2;
+pub const SN_international_organizations: &[u8; 28] = b"international-organizations\0";
+pub const LN_international_organizations: &[u8; 28] = b"International Organizations\0";
+pub const NID_international_organizations: i32 = 647;
+pub const SN_ms_smartcard_login: &[u8; 17] = b"msSmartcardLogin\0";
+pub const LN_ms_smartcard_login: &[u8; 25] = b"Microsoft Smartcardlogin\0";
+pub const NID_ms_smartcard_login: i32 = 648;
+pub const SN_ms_upn: &[u8; 6] = b"msUPN\0";
+pub const LN_ms_upn: &[u8; 35] = b"Microsoft Universal Principal Name\0";
+pub const NID_ms_upn: i32 = 649;
+pub const SN_aes_128_cfb1: &[u8; 13] = b"AES-128-CFB1\0";
+pub const LN_aes_128_cfb1: &[u8; 13] = b"aes-128-cfb1\0";
+pub const NID_aes_128_cfb1: i32 = 650;
+pub const SN_aes_192_cfb1: &[u8; 13] = b"AES-192-CFB1\0";
+pub const LN_aes_192_cfb1: &[u8; 13] = b"aes-192-cfb1\0";
+pub const NID_aes_192_cfb1: i32 = 651;
+pub const SN_aes_256_cfb1: &[u8; 13] = b"AES-256-CFB1\0";
+pub const LN_aes_256_cfb1: &[u8; 13] = b"aes-256-cfb1\0";
+pub const NID_aes_256_cfb1: i32 = 652;
+pub const SN_aes_128_cfb8: &[u8; 13] = b"AES-128-CFB8\0";
+pub const LN_aes_128_cfb8: &[u8; 13] = b"aes-128-cfb8\0";
+pub const NID_aes_128_cfb8: i32 = 653;
+pub const SN_aes_192_cfb8: &[u8; 13] = b"AES-192-CFB8\0";
+pub const LN_aes_192_cfb8: &[u8; 13] = b"aes-192-cfb8\0";
+pub const NID_aes_192_cfb8: i32 = 654;
+pub const SN_aes_256_cfb8: &[u8; 13] = b"AES-256-CFB8\0";
+pub const LN_aes_256_cfb8: &[u8; 13] = b"aes-256-cfb8\0";
+pub const NID_aes_256_cfb8: i32 = 655;
+pub const SN_des_cfb1: &[u8; 9] = b"DES-CFB1\0";
+pub const LN_des_cfb1: &[u8; 9] = b"des-cfb1\0";
+pub const NID_des_cfb1: i32 = 656;
+pub const SN_des_cfb8: &[u8; 9] = b"DES-CFB8\0";
+pub const LN_des_cfb8: &[u8; 9] = b"des-cfb8\0";
+pub const NID_des_cfb8: i32 = 657;
+pub const SN_des_ede3_cfb1: &[u8; 14] = b"DES-EDE3-CFB1\0";
+pub const LN_des_ede3_cfb1: &[u8; 14] = b"des-ede3-cfb1\0";
+pub const NID_des_ede3_cfb1: i32 = 658;
+pub const SN_des_ede3_cfb8: &[u8; 14] = b"DES-EDE3-CFB8\0";
+pub const LN_des_ede3_cfb8: &[u8; 14] = b"des-ede3-cfb8\0";
+pub const NID_des_ede3_cfb8: i32 = 659;
+pub const SN_streetAddress: &[u8; 7] = b"street\0";
+pub const LN_streetAddress: &[u8; 14] = b"streetAddress\0";
+pub const NID_streetAddress: i32 = 660;
+pub const LN_postalCode: &[u8; 11] = b"postalCode\0";
+pub const NID_postalCode: i32 = 661;
+pub const SN_id_ppl: &[u8; 7] = b"id-ppl\0";
+pub const NID_id_ppl: i32 = 662;
+pub const SN_proxyCertInfo: &[u8; 14] = b"proxyCertInfo\0";
+pub const LN_proxyCertInfo: &[u8; 30] = b"Proxy Certificate Information\0";
+pub const NID_proxyCertInfo: i32 = 663;
+pub const SN_id_ppl_anyLanguage: &[u8; 19] = b"id-ppl-anyLanguage\0";
+pub const LN_id_ppl_anyLanguage: &[u8; 13] = b"Any language\0";
+pub const NID_id_ppl_anyLanguage: i32 = 664;
+pub const SN_id_ppl_inheritAll: &[u8; 18] = b"id-ppl-inheritAll\0";
+pub const LN_id_ppl_inheritAll: &[u8; 12] = b"Inherit all\0";
+pub const NID_id_ppl_inheritAll: i32 = 665;
+pub const SN_name_constraints: &[u8; 16] = b"nameConstraints\0";
+pub const LN_name_constraints: &[u8; 24] = b"X509v3 Name Constraints\0";
+pub const NID_name_constraints: i32 = 666;
+pub const SN_Independent: &[u8; 19] = b"id-ppl-independent\0";
+pub const LN_Independent: &[u8; 12] = b"Independent\0";
+pub const NID_Independent: i32 = 667;
+pub const SN_sha256WithRSAEncryption: &[u8; 11] = b"RSA-SHA256\0";
+pub const LN_sha256WithRSAEncryption: &[u8; 24] = b"sha256WithRSAEncryption\0";
+pub const NID_sha256WithRSAEncryption: i32 = 668;
+pub const SN_sha384WithRSAEncryption: &[u8; 11] = b"RSA-SHA384\0";
+pub const LN_sha384WithRSAEncryption: &[u8; 24] = b"sha384WithRSAEncryption\0";
+pub const NID_sha384WithRSAEncryption: i32 = 669;
+pub const SN_sha512WithRSAEncryption: &[u8; 11] = b"RSA-SHA512\0";
+pub const LN_sha512WithRSAEncryption: &[u8; 24] = b"sha512WithRSAEncryption\0";
+pub const NID_sha512WithRSAEncryption: i32 = 670;
+pub const SN_sha224WithRSAEncryption: &[u8; 11] = b"RSA-SHA224\0";
+pub const LN_sha224WithRSAEncryption: &[u8; 24] = b"sha224WithRSAEncryption\0";
+pub const NID_sha224WithRSAEncryption: i32 = 671;
+pub const SN_sha256: &[u8; 7] = b"SHA256\0";
+pub const LN_sha256: &[u8; 7] = b"sha256\0";
+pub const NID_sha256: i32 = 672;
+pub const SN_sha384: &[u8; 7] = b"SHA384\0";
+pub const LN_sha384: &[u8; 7] = b"sha384\0";
+pub const NID_sha384: i32 = 673;
+pub const SN_sha512: &[u8; 7] = b"SHA512\0";
+pub const LN_sha512: &[u8; 7] = b"sha512\0";
+pub const NID_sha512: i32 = 674;
+pub const SN_sha224: &[u8; 7] = b"SHA224\0";
+pub const LN_sha224: &[u8; 7] = b"sha224\0";
+pub const NID_sha224: i32 = 675;
+pub const SN_identified_organization: &[u8; 24] = b"identified-organization\0";
+pub const NID_identified_organization: i32 = 676;
+pub const SN_certicom_arc: &[u8; 13] = b"certicom-arc\0";
+pub const NID_certicom_arc: i32 = 677;
+pub const SN_wap: &[u8; 4] = b"wap\0";
+pub const NID_wap: i32 = 678;
+pub const SN_wap_wsg: &[u8; 8] = b"wap-wsg\0";
+pub const NID_wap_wsg: i32 = 679;
+pub const SN_X9_62_id_characteristic_two_basis: &[u8; 28] = b"id-characteristic-two-basis\0";
+pub const NID_X9_62_id_characteristic_two_basis: i32 = 680;
+pub const SN_X9_62_onBasis: &[u8; 8] = b"onBasis\0";
+pub const NID_X9_62_onBasis: i32 = 681;
+pub const SN_X9_62_tpBasis: &[u8; 8] = b"tpBasis\0";
+pub const NID_X9_62_tpBasis: i32 = 682;
+pub const SN_X9_62_ppBasis: &[u8; 8] = b"ppBasis\0";
+pub const NID_X9_62_ppBasis: i32 = 683;
+pub const SN_X9_62_c2pnb163v1: &[u8; 11] = b"c2pnb163v1\0";
+pub const NID_X9_62_c2pnb163v1: i32 = 684;
+pub const SN_X9_62_c2pnb163v2: &[u8; 11] = b"c2pnb163v2\0";
+pub const NID_X9_62_c2pnb163v2: i32 = 685;
+pub const SN_X9_62_c2pnb163v3: &[u8; 11] = b"c2pnb163v3\0";
+pub const NID_X9_62_c2pnb163v3: i32 = 686;
+pub const SN_X9_62_c2pnb176v1: &[u8; 11] = b"c2pnb176v1\0";
+pub const NID_X9_62_c2pnb176v1: i32 = 687;
+pub const SN_X9_62_c2tnb191v1: &[u8; 11] = b"c2tnb191v1\0";
+pub const NID_X9_62_c2tnb191v1: i32 = 688;
+pub const SN_X9_62_c2tnb191v2: &[u8; 11] = b"c2tnb191v2\0";
+pub const NID_X9_62_c2tnb191v2: i32 = 689;
+pub const SN_X9_62_c2tnb191v3: &[u8; 11] = b"c2tnb191v3\0";
+pub const NID_X9_62_c2tnb191v3: i32 = 690;
+pub const SN_X9_62_c2onb191v4: &[u8; 11] = b"c2onb191v4\0";
+pub const NID_X9_62_c2onb191v4: i32 = 691;
+pub const SN_X9_62_c2onb191v5: &[u8; 11] = b"c2onb191v5\0";
+pub const NID_X9_62_c2onb191v5: i32 = 692;
+pub const SN_X9_62_c2pnb208w1: &[u8; 11] = b"c2pnb208w1\0";
+pub const NID_X9_62_c2pnb208w1: i32 = 693;
+pub const SN_X9_62_c2tnb239v1: &[u8; 11] = b"c2tnb239v1\0";
+pub const NID_X9_62_c2tnb239v1: i32 = 694;
+pub const SN_X9_62_c2tnb239v2: &[u8; 11] = b"c2tnb239v2\0";
+pub const NID_X9_62_c2tnb239v2: i32 = 695;
+pub const SN_X9_62_c2tnb239v3: &[u8; 11] = b"c2tnb239v3\0";
+pub const NID_X9_62_c2tnb239v3: i32 = 696;
+pub const SN_X9_62_c2onb239v4: &[u8; 11] = b"c2onb239v4\0";
+pub const NID_X9_62_c2onb239v4: i32 = 697;
+pub const SN_X9_62_c2onb239v5: &[u8; 11] = b"c2onb239v5\0";
+pub const NID_X9_62_c2onb239v5: i32 = 698;
+pub const SN_X9_62_c2pnb272w1: &[u8; 11] = b"c2pnb272w1\0";
+pub const NID_X9_62_c2pnb272w1: i32 = 699;
+pub const SN_X9_62_c2pnb304w1: &[u8; 11] = b"c2pnb304w1\0";
+pub const NID_X9_62_c2pnb304w1: i32 = 700;
+pub const SN_X9_62_c2tnb359v1: &[u8; 11] = b"c2tnb359v1\0";
+pub const NID_X9_62_c2tnb359v1: i32 = 701;
+pub const SN_X9_62_c2pnb368w1: &[u8; 11] = b"c2pnb368w1\0";
+pub const NID_X9_62_c2pnb368w1: i32 = 702;
+pub const SN_X9_62_c2tnb431r1: &[u8; 11] = b"c2tnb431r1\0";
+pub const NID_X9_62_c2tnb431r1: i32 = 703;
+pub const SN_secp112r1: &[u8; 10] = b"secp112r1\0";
+pub const NID_secp112r1: i32 = 704;
+pub const SN_secp112r2: &[u8; 10] = b"secp112r2\0";
+pub const NID_secp112r2: i32 = 705;
+pub const SN_secp128r1: &[u8; 10] = b"secp128r1\0";
+pub const NID_secp128r1: i32 = 706;
+pub const SN_secp128r2: &[u8; 10] = b"secp128r2\0";
+pub const NID_secp128r2: i32 = 707;
+pub const SN_secp160k1: &[u8; 10] = b"secp160k1\0";
+pub const NID_secp160k1: i32 = 708;
+pub const SN_secp160r1: &[u8; 10] = b"secp160r1\0";
+pub const NID_secp160r1: i32 = 709;
+pub const SN_secp160r2: &[u8; 10] = b"secp160r2\0";
+pub const NID_secp160r2: i32 = 710;
+pub const SN_secp192k1: &[u8; 10] = b"secp192k1\0";
+pub const NID_secp192k1: i32 = 711;
+pub const SN_secp224k1: &[u8; 10] = b"secp224k1\0";
+pub const NID_secp224k1: i32 = 712;
+pub const SN_secp224r1: &[u8; 10] = b"secp224r1\0";
+pub const NID_secp224r1: i32 = 713;
+pub const SN_secp256k1: &[u8; 10] = b"secp256k1\0";
+pub const NID_secp256k1: i32 = 714;
+pub const SN_secp384r1: &[u8; 10] = b"secp384r1\0";
+pub const NID_secp384r1: i32 = 715;
+pub const SN_secp521r1: &[u8; 10] = b"secp521r1\0";
+pub const NID_secp521r1: i32 = 716;
+pub const SN_sect113r1: &[u8; 10] = b"sect113r1\0";
+pub const NID_sect113r1: i32 = 717;
+pub const SN_sect113r2: &[u8; 10] = b"sect113r2\0";
+pub const NID_sect113r2: i32 = 718;
+pub const SN_sect131r1: &[u8; 10] = b"sect131r1\0";
+pub const NID_sect131r1: i32 = 719;
+pub const SN_sect131r2: &[u8; 10] = b"sect131r2\0";
+pub const NID_sect131r2: i32 = 720;
+pub const SN_sect163k1: &[u8; 10] = b"sect163k1\0";
+pub const NID_sect163k1: i32 = 721;
+pub const SN_sect163r1: &[u8; 10] = b"sect163r1\0";
+pub const NID_sect163r1: i32 = 722;
+pub const SN_sect163r2: &[u8; 10] = b"sect163r2\0";
+pub const NID_sect163r2: i32 = 723;
+pub const SN_sect193r1: &[u8; 10] = b"sect193r1\0";
+pub const NID_sect193r1: i32 = 724;
+pub const SN_sect193r2: &[u8; 10] = b"sect193r2\0";
+pub const NID_sect193r2: i32 = 725;
+pub const SN_sect233k1: &[u8; 10] = b"sect233k1\0";
+pub const NID_sect233k1: i32 = 726;
+pub const SN_sect233r1: &[u8; 10] = b"sect233r1\0";
+pub const NID_sect233r1: i32 = 727;
+pub const SN_sect239k1: &[u8; 10] = b"sect239k1\0";
+pub const NID_sect239k1: i32 = 728;
+pub const SN_sect283k1: &[u8; 10] = b"sect283k1\0";
+pub const NID_sect283k1: i32 = 729;
+pub const SN_sect283r1: &[u8; 10] = b"sect283r1\0";
+pub const NID_sect283r1: i32 = 730;
+pub const SN_sect409k1: &[u8; 10] = b"sect409k1\0";
+pub const NID_sect409k1: i32 = 731;
+pub const SN_sect409r1: &[u8; 10] = b"sect409r1\0";
+pub const NID_sect409r1: i32 = 732;
+pub const SN_sect571k1: &[u8; 10] = b"sect571k1\0";
+pub const NID_sect571k1: i32 = 733;
+pub const SN_sect571r1: &[u8; 10] = b"sect571r1\0";
+pub const NID_sect571r1: i32 = 734;
+pub const SN_wap_wsg_idm_ecid_wtls1: &[u8; 23] = b"wap-wsg-idm-ecid-wtls1\0";
+pub const NID_wap_wsg_idm_ecid_wtls1: i32 = 735;
+pub const SN_wap_wsg_idm_ecid_wtls3: &[u8; 23] = b"wap-wsg-idm-ecid-wtls3\0";
+pub const NID_wap_wsg_idm_ecid_wtls3: i32 = 736;
+pub const SN_wap_wsg_idm_ecid_wtls4: &[u8; 23] = b"wap-wsg-idm-ecid-wtls4\0";
+pub const NID_wap_wsg_idm_ecid_wtls4: i32 = 737;
+pub const SN_wap_wsg_idm_ecid_wtls5: &[u8; 23] = b"wap-wsg-idm-ecid-wtls5\0";
+pub const NID_wap_wsg_idm_ecid_wtls5: i32 = 738;
+pub const SN_wap_wsg_idm_ecid_wtls6: &[u8; 23] = b"wap-wsg-idm-ecid-wtls6\0";
+pub const NID_wap_wsg_idm_ecid_wtls6: i32 = 739;
+pub const SN_wap_wsg_idm_ecid_wtls7: &[u8; 23] = b"wap-wsg-idm-ecid-wtls7\0";
+pub const NID_wap_wsg_idm_ecid_wtls7: i32 = 740;
+pub const SN_wap_wsg_idm_ecid_wtls8: &[u8; 23] = b"wap-wsg-idm-ecid-wtls8\0";
+pub const NID_wap_wsg_idm_ecid_wtls8: i32 = 741;
+pub const SN_wap_wsg_idm_ecid_wtls9: &[u8; 23] = b"wap-wsg-idm-ecid-wtls9\0";
+pub const NID_wap_wsg_idm_ecid_wtls9: i32 = 742;
+pub const SN_wap_wsg_idm_ecid_wtls10: &[u8; 24] = b"wap-wsg-idm-ecid-wtls10\0";
+pub const NID_wap_wsg_idm_ecid_wtls10: i32 = 743;
+pub const SN_wap_wsg_idm_ecid_wtls11: &[u8; 24] = b"wap-wsg-idm-ecid-wtls11\0";
+pub const NID_wap_wsg_idm_ecid_wtls11: i32 = 744;
+pub const SN_wap_wsg_idm_ecid_wtls12: &[u8; 24] = b"wap-wsg-idm-ecid-wtls12\0";
+pub const NID_wap_wsg_idm_ecid_wtls12: i32 = 745;
+pub const SN_any_policy: &[u8; 10] = b"anyPolicy\0";
+pub const LN_any_policy: &[u8; 18] = b"X509v3 Any Policy\0";
+pub const NID_any_policy: i32 = 746;
+pub const SN_policy_mappings: &[u8; 15] = b"policyMappings\0";
+pub const LN_policy_mappings: &[u8; 23] = b"X509v3 Policy Mappings\0";
+pub const NID_policy_mappings: i32 = 747;
+pub const SN_inhibit_any_policy: &[u8; 17] = b"inhibitAnyPolicy\0";
+pub const LN_inhibit_any_policy: &[u8; 26] = b"X509v3 Inhibit Any Policy\0";
+pub const NID_inhibit_any_policy: i32 = 748;
+pub const SN_ipsec3: &[u8; 14] = b"Oakley-EC2N-3\0";
+pub const LN_ipsec3: &[u8; 7] = b"ipsec3\0";
+pub const NID_ipsec3: i32 = 749;
+pub const SN_ipsec4: &[u8; 14] = b"Oakley-EC2N-4\0";
+pub const LN_ipsec4: &[u8; 7] = b"ipsec4\0";
+pub const NID_ipsec4: i32 = 750;
+pub const SN_camellia_128_cbc: &[u8; 17] = b"CAMELLIA-128-CBC\0";
+pub const LN_camellia_128_cbc: &[u8; 17] = b"camellia-128-cbc\0";
+pub const NID_camellia_128_cbc: i32 = 751;
+pub const SN_camellia_192_cbc: &[u8; 17] = b"CAMELLIA-192-CBC\0";
+pub const LN_camellia_192_cbc: &[u8; 17] = b"camellia-192-cbc\0";
+pub const NID_camellia_192_cbc: i32 = 752;
+pub const SN_camellia_256_cbc: &[u8; 17] = b"CAMELLIA-256-CBC\0";
+pub const LN_camellia_256_cbc: &[u8; 17] = b"camellia-256-cbc\0";
+pub const NID_camellia_256_cbc: i32 = 753;
+pub const SN_camellia_128_ecb: &[u8; 17] = b"CAMELLIA-128-ECB\0";
+pub const LN_camellia_128_ecb: &[u8; 17] = b"camellia-128-ecb\0";
+pub const NID_camellia_128_ecb: i32 = 754;
+pub const SN_camellia_192_ecb: &[u8; 17] = b"CAMELLIA-192-ECB\0";
+pub const LN_camellia_192_ecb: &[u8; 17] = b"camellia-192-ecb\0";
+pub const NID_camellia_192_ecb: i32 = 755;
+pub const SN_camellia_256_ecb: &[u8; 17] = b"CAMELLIA-256-ECB\0";
+pub const LN_camellia_256_ecb: &[u8; 17] = b"camellia-256-ecb\0";
+pub const NID_camellia_256_ecb: i32 = 756;
+pub const SN_camellia_128_cfb128: &[u8; 17] = b"CAMELLIA-128-CFB\0";
+pub const LN_camellia_128_cfb128: &[u8; 17] = b"camellia-128-cfb\0";
+pub const NID_camellia_128_cfb128: i32 = 757;
+pub const SN_camellia_192_cfb128: &[u8; 17] = b"CAMELLIA-192-CFB\0";
+pub const LN_camellia_192_cfb128: &[u8; 17] = b"camellia-192-cfb\0";
+pub const NID_camellia_192_cfb128: i32 = 758;
+pub const SN_camellia_256_cfb128: &[u8; 17] = b"CAMELLIA-256-CFB\0";
+pub const LN_camellia_256_cfb128: &[u8; 17] = b"camellia-256-cfb\0";
+pub const NID_camellia_256_cfb128: i32 = 759;
+pub const SN_camellia_128_cfb1: &[u8; 18] = b"CAMELLIA-128-CFB1\0";
+pub const LN_camellia_128_cfb1: &[u8; 18] = b"camellia-128-cfb1\0";
+pub const NID_camellia_128_cfb1: i32 = 760;
+pub const SN_camellia_192_cfb1: &[u8; 18] = b"CAMELLIA-192-CFB1\0";
+pub const LN_camellia_192_cfb1: &[u8; 18] = b"camellia-192-cfb1\0";
+pub const NID_camellia_192_cfb1: i32 = 761;
+pub const SN_camellia_256_cfb1: &[u8; 18] = b"CAMELLIA-256-CFB1\0";
+pub const LN_camellia_256_cfb1: &[u8; 18] = b"camellia-256-cfb1\0";
+pub const NID_camellia_256_cfb1: i32 = 762;
+pub const SN_camellia_128_cfb8: &[u8; 18] = b"CAMELLIA-128-CFB8\0";
+pub const LN_camellia_128_cfb8: &[u8; 18] = b"camellia-128-cfb8\0";
+pub const NID_camellia_128_cfb8: i32 = 763;
+pub const SN_camellia_192_cfb8: &[u8; 18] = b"CAMELLIA-192-CFB8\0";
+pub const LN_camellia_192_cfb8: &[u8; 18] = b"camellia-192-cfb8\0";
+pub const NID_camellia_192_cfb8: i32 = 764;
+pub const SN_camellia_256_cfb8: &[u8; 18] = b"CAMELLIA-256-CFB8\0";
+pub const LN_camellia_256_cfb8: &[u8; 18] = b"camellia-256-cfb8\0";
+pub const NID_camellia_256_cfb8: i32 = 765;
+pub const SN_camellia_128_ofb128: &[u8; 17] = b"CAMELLIA-128-OFB\0";
+pub const LN_camellia_128_ofb128: &[u8; 17] = b"camellia-128-ofb\0";
+pub const NID_camellia_128_ofb128: i32 = 766;
+pub const SN_camellia_192_ofb128: &[u8; 17] = b"CAMELLIA-192-OFB\0";
+pub const LN_camellia_192_ofb128: &[u8; 17] = b"camellia-192-ofb\0";
+pub const NID_camellia_192_ofb128: i32 = 767;
+pub const SN_camellia_256_ofb128: &[u8; 17] = b"CAMELLIA-256-OFB\0";
+pub const LN_camellia_256_ofb128: &[u8; 17] = b"camellia-256-ofb\0";
+pub const NID_camellia_256_ofb128: i32 = 768;
+pub const SN_subject_directory_attributes: &[u8; 27] = b"subjectDirectoryAttributes\0";
+pub const LN_subject_directory_attributes: &[u8; 36] = b"X509v3 Subject Directory Attributes\0";
+pub const NID_subject_directory_attributes: i32 = 769;
+pub const SN_issuing_distribution_point: &[u8; 25] = b"issuingDistributionPoint\0";
+pub const LN_issuing_distribution_point: &[u8; 34] = b"X509v3 Issuing Distribution Point\0";
+pub const NID_issuing_distribution_point: i32 = 770;
+pub const SN_certificate_issuer: &[u8; 18] = b"certificateIssuer\0";
+pub const LN_certificate_issuer: &[u8; 26] = b"X509v3 Certificate Issuer\0";
+pub const NID_certificate_issuer: i32 = 771;
+pub const SN_kisa: &[u8; 5] = b"KISA\0";
+pub const LN_kisa: &[u8; 5] = b"kisa\0";
+pub const NID_kisa: i32 = 773;
+pub const SN_seed_ecb: &[u8; 9] = b"SEED-ECB\0";
+pub const LN_seed_ecb: &[u8; 9] = b"seed-ecb\0";
+pub const NID_seed_ecb: i32 = 776;
+pub const SN_seed_cbc: &[u8; 9] = b"SEED-CBC\0";
+pub const LN_seed_cbc: &[u8; 9] = b"seed-cbc\0";
+pub const NID_seed_cbc: i32 = 777;
+pub const SN_seed_ofb128: &[u8; 9] = b"SEED-OFB\0";
+pub const LN_seed_ofb128: &[u8; 9] = b"seed-ofb\0";
+pub const NID_seed_ofb128: i32 = 778;
+pub const SN_seed_cfb128: &[u8; 9] = b"SEED-CFB\0";
+pub const LN_seed_cfb128: &[u8; 9] = b"seed-cfb\0";
+pub const NID_seed_cfb128: i32 = 779;
+pub const SN_hmac_md5: &[u8; 9] = b"HMAC-MD5\0";
+pub const LN_hmac_md5: &[u8; 9] = b"hmac-md5\0";
+pub const NID_hmac_md5: i32 = 780;
+pub const SN_hmac_sha1: &[u8; 10] = b"HMAC-SHA1\0";
+pub const LN_hmac_sha1: &[u8; 10] = b"hmac-sha1\0";
+pub const NID_hmac_sha1: i32 = 781;
+pub const SN_id_PasswordBasedMAC: &[u8; 20] = b"id-PasswordBasedMAC\0";
+pub const LN_id_PasswordBasedMAC: &[u8; 19] = b"password based MAC\0";
+pub const NID_id_PasswordBasedMAC: i32 = 782;
+pub const SN_id_DHBasedMac: &[u8; 14] = b"id-DHBasedMac\0";
+pub const LN_id_DHBasedMac: &[u8; 25] = b"Diffie-Hellman based MAC\0";
+pub const NID_id_DHBasedMac: i32 = 783;
+pub const SN_id_it_suppLangTags: &[u8; 19] = b"id-it-suppLangTags\0";
+pub const NID_id_it_suppLangTags: i32 = 784;
+pub const SN_caRepository: &[u8; 13] = b"caRepository\0";
+pub const LN_caRepository: &[u8; 14] = b"CA Repository\0";
+pub const NID_caRepository: i32 = 785;
+pub const SN_id_smime_ct_compressedData: &[u8; 27] = b"id-smime-ct-compressedData\0";
+pub const NID_id_smime_ct_compressedData: i32 = 786;
+pub const SN_id_ct_asciiTextWithCRLF: &[u8; 24] = b"id-ct-asciiTextWithCRLF\0";
+pub const NID_id_ct_asciiTextWithCRLF: i32 = 787;
+pub const SN_id_aes128_wrap: &[u8; 15] = b"id-aes128-wrap\0";
+pub const NID_id_aes128_wrap: i32 = 788;
+pub const SN_id_aes192_wrap: &[u8; 15] = b"id-aes192-wrap\0";
+pub const NID_id_aes192_wrap: i32 = 789;
+pub const SN_id_aes256_wrap: &[u8; 15] = b"id-aes256-wrap\0";
+pub const NID_id_aes256_wrap: i32 = 790;
+pub const SN_ecdsa_with_Recommended: &[u8; 23] = b"ecdsa-with-Recommended\0";
+pub const NID_ecdsa_with_Recommended: i32 = 791;
+pub const SN_ecdsa_with_Specified: &[u8; 21] = b"ecdsa-with-Specified\0";
+pub const NID_ecdsa_with_Specified: i32 = 792;
+pub const SN_ecdsa_with_SHA224: &[u8; 18] = b"ecdsa-with-SHA224\0";
+pub const NID_ecdsa_with_SHA224: i32 = 793;
+pub const SN_ecdsa_with_SHA256: &[u8; 18] = b"ecdsa-with-SHA256\0";
+pub const NID_ecdsa_with_SHA256: i32 = 794;
+pub const SN_ecdsa_with_SHA384: &[u8; 18] = b"ecdsa-with-SHA384\0";
+pub const NID_ecdsa_with_SHA384: i32 = 795;
+pub const SN_ecdsa_with_SHA512: &[u8; 18] = b"ecdsa-with-SHA512\0";
+pub const NID_ecdsa_with_SHA512: i32 = 796;
+pub const LN_hmacWithMD5: &[u8; 12] = b"hmacWithMD5\0";
+pub const NID_hmacWithMD5: i32 = 797;
+pub const LN_hmacWithSHA224: &[u8; 15] = b"hmacWithSHA224\0";
+pub const NID_hmacWithSHA224: i32 = 798;
+pub const LN_hmacWithSHA256: &[u8; 15] = b"hmacWithSHA256\0";
+pub const NID_hmacWithSHA256: i32 = 799;
+pub const LN_hmacWithSHA384: &[u8; 15] = b"hmacWithSHA384\0";
+pub const NID_hmacWithSHA384: i32 = 800;
+pub const LN_hmacWithSHA512: &[u8; 15] = b"hmacWithSHA512\0";
+pub const NID_hmacWithSHA512: i32 = 801;
+pub const SN_dsa_with_SHA224: &[u8; 16] = b"dsa_with_SHA224\0";
+pub const NID_dsa_with_SHA224: i32 = 802;
+pub const SN_dsa_with_SHA256: &[u8; 16] = b"dsa_with_SHA256\0";
+pub const NID_dsa_with_SHA256: i32 = 803;
+pub const SN_whirlpool: &[u8; 10] = b"whirlpool\0";
+pub const NID_whirlpool: i32 = 804;
+pub const SN_cryptopro: &[u8; 10] = b"cryptopro\0";
+pub const NID_cryptopro: i32 = 805;
+pub const SN_cryptocom: &[u8; 10] = b"cryptocom\0";
+pub const NID_cryptocom: i32 = 806;
+pub const SN_id_GostR3411_94_with_GostR3410_2001: &[u8; 36] =
+    b"id-GostR3411-94-with-GostR3410-2001\0";
+pub const LN_id_GostR3411_94_with_GostR3410_2001: &[u8; 39] =
+    b"GOST R 34.11-94 with GOST R 34.10-2001\0";
+pub const NID_id_GostR3411_94_with_GostR3410_2001: i32 = 807;
+pub const SN_id_GostR3411_94_with_GostR3410_94: &[u8; 34] = b"id-GostR3411-94-with-GostR3410-94\0";
+pub const LN_id_GostR3411_94_with_GostR3410_94: &[u8; 37] =
+    b"GOST R 34.11-94 with GOST R 34.10-94\0";
+pub const NID_id_GostR3411_94_with_GostR3410_94: i32 = 808;
+pub const SN_id_GostR3411_94: &[u8; 10] = b"md_gost94\0";
+pub const LN_id_GostR3411_94: &[u8; 16] = b"GOST R 34.11-94\0";
+pub const NID_id_GostR3411_94: i32 = 809;
+pub const SN_id_HMACGostR3411_94: &[u8; 20] = b"id-HMACGostR3411-94\0";
+pub const LN_id_HMACGostR3411_94: &[u8; 19] = b"HMAC GOST 34.11-94\0";
+pub const NID_id_HMACGostR3411_94: i32 = 810;
+pub const SN_id_GostR3410_2001: &[u8; 9] = b"gost2001\0";
+pub const LN_id_GostR3410_2001: &[u8; 18] = b"GOST R 34.10-2001\0";
+pub const NID_id_GostR3410_2001: i32 = 811;
+pub const SN_id_GostR3410_94: &[u8; 7] = b"gost94\0";
+pub const LN_id_GostR3410_94: &[u8; 16] = b"GOST R 34.10-94\0";
+pub const NID_id_GostR3410_94: i32 = 812;
+pub const SN_id_Gost28147_89: &[u8; 7] = b"gost89\0";
+pub const LN_id_Gost28147_89: &[u8; 14] = b"GOST 28147-89\0";
+pub const NID_id_Gost28147_89: i32 = 813;
+pub const SN_gost89_cnt: &[u8; 11] = b"gost89-cnt\0";
+pub const NID_gost89_cnt: i32 = 814;
+pub const SN_id_Gost28147_89_MAC: &[u8; 9] = b"gost-mac\0";
+pub const LN_id_Gost28147_89_MAC: &[u8; 18] = b"GOST 28147-89 MAC\0";
+pub const NID_id_Gost28147_89_MAC: i32 = 815;
+pub const SN_id_GostR3411_94_prf: &[u8; 17] = b"prf-gostr3411-94\0";
+pub const LN_id_GostR3411_94_prf: &[u8; 20] = b"GOST R 34.11-94 PRF\0";
+pub const NID_id_GostR3411_94_prf: i32 = 816;
+pub const SN_id_GostR3410_2001DH: &[u8; 20] = b"id-GostR3410-2001DH\0";
+pub const LN_id_GostR3410_2001DH: &[u8; 21] = b"GOST R 34.10-2001 DH\0";
+pub const NID_id_GostR3410_2001DH: i32 = 817;
+pub const SN_id_GostR3410_94DH: &[u8; 18] = b"id-GostR3410-94DH\0";
+pub const LN_id_GostR3410_94DH: &[u8; 19] = b"GOST R 34.10-94 DH\0";
+pub const NID_id_GostR3410_94DH: i32 = 818;
+pub const SN_id_Gost28147_89_CryptoPro_KeyMeshing: &[u8; 37] =
+    b"id-Gost28147-89-CryptoPro-KeyMeshing\0";
+pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing: i32 = 819;
+pub const SN_id_Gost28147_89_None_KeyMeshing: &[u8; 32] = b"id-Gost28147-89-None-KeyMeshing\0";
+pub const NID_id_Gost28147_89_None_KeyMeshing: i32 = 820;
+pub const SN_id_GostR3411_94_TestParamSet: &[u8; 29] = b"id-GostR3411-94-TestParamSet\0";
+pub const NID_id_GostR3411_94_TestParamSet: i32 = 821;
+pub const SN_id_GostR3411_94_CryptoProParamSet: &[u8; 34] = b"id-GostR3411-94-CryptoProParamSet\0";
+pub const NID_id_GostR3411_94_CryptoProParamSet: i32 = 822;
+pub const SN_id_Gost28147_89_TestParamSet: &[u8; 29] = b"id-Gost28147-89-TestParamSet\0";
+pub const NID_id_Gost28147_89_TestParamSet: i32 = 823;
+pub const SN_id_Gost28147_89_CryptoPro_A_ParamSet: &[u8; 37] =
+    b"id-Gost28147-89-CryptoPro-A-ParamSet\0";
+pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet: i32 = 824;
+pub const SN_id_Gost28147_89_CryptoPro_B_ParamSet: &[u8; 37] =
+    b"id-Gost28147-89-CryptoPro-B-ParamSet\0";
+pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet: i32 = 825;
+pub const SN_id_Gost28147_89_CryptoPro_C_ParamSet: &[u8; 37] =
+    b"id-Gost28147-89-CryptoPro-C-ParamSet\0";
+pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet: i32 = 826;
+pub const SN_id_Gost28147_89_CryptoPro_D_ParamSet: &[u8; 37] =
+    b"id-Gost28147-89-CryptoPro-D-ParamSet\0";
+pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet: i32 = 827;
+pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: &[u8; 45] =
+    b"id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet\0";
+pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: i32 = 828;
+pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: &[u8; 45] =
+    b"id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet\0";
+pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: i32 = 829;
+pub const SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: &[u8; 41] =
+    b"id-Gost28147-89-CryptoPro-RIC-1-ParamSet\0";
+pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: i32 = 830;
+pub const SN_id_GostR3410_94_TestParamSet: &[u8; 29] = b"id-GostR3410-94-TestParamSet\0";
+pub const NID_id_GostR3410_94_TestParamSet: i32 = 831;
+pub const SN_id_GostR3410_94_CryptoPro_A_ParamSet: &[u8; 37] =
+    b"id-GostR3410-94-CryptoPro-A-ParamSet\0";
+pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet: i32 = 832;
+pub const SN_id_GostR3410_94_CryptoPro_B_ParamSet: &[u8; 37] =
+    b"id-GostR3410-94-CryptoPro-B-ParamSet\0";
+pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet: i32 = 833;
+pub const SN_id_GostR3410_94_CryptoPro_C_ParamSet: &[u8; 37] =
+    b"id-GostR3410-94-CryptoPro-C-ParamSet\0";
+pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet: i32 = 834;
+pub const SN_id_GostR3410_94_CryptoPro_D_ParamSet: &[u8; 37] =
+    b"id-GostR3410-94-CryptoPro-D-ParamSet\0";
+pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet: i32 = 835;
+pub const SN_id_GostR3410_94_CryptoPro_XchA_ParamSet: &[u8; 40] =
+    b"id-GostR3410-94-CryptoPro-XchA-ParamSet\0";
+pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet: i32 = 836;
+pub const SN_id_GostR3410_94_CryptoPro_XchB_ParamSet: &[u8; 40] =
+    b"id-GostR3410-94-CryptoPro-XchB-ParamSet\0";
+pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet: i32 = 837;
+pub const SN_id_GostR3410_94_CryptoPro_XchC_ParamSet: &[u8; 40] =
+    b"id-GostR3410-94-CryptoPro-XchC-ParamSet\0";
+pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet: i32 = 838;
+pub const SN_id_GostR3410_2001_TestParamSet: &[u8; 31] = b"id-GostR3410-2001-TestParamSet\0";
+pub const NID_id_GostR3410_2001_TestParamSet: i32 = 839;
+pub const SN_id_GostR3410_2001_CryptoPro_A_ParamSet: &[u8; 39] =
+    b"id-GostR3410-2001-CryptoPro-A-ParamSet\0";
+pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet: i32 = 840;
+pub const SN_id_GostR3410_2001_CryptoPro_B_ParamSet: &[u8; 39] =
+    b"id-GostR3410-2001-CryptoPro-B-ParamSet\0";
+pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet: i32 = 841;
+pub const SN_id_GostR3410_2001_CryptoPro_C_ParamSet: &[u8; 39] =
+    b"id-GostR3410-2001-CryptoPro-C-ParamSet\0";
+pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet: i32 = 842;
+pub const SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet: &[u8; 42] =
+    b"id-GostR3410-2001-CryptoPro-XchA-ParamSet\0";
+pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: i32 = 843;
+pub const SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet: &[u8; 42] =
+    b"id-GostR3410-2001-CryptoPro-XchB-ParamSet\0";
+pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: i32 = 844;
+pub const SN_id_GostR3410_94_a: &[u8; 18] = b"id-GostR3410-94-a\0";
+pub const NID_id_GostR3410_94_a: i32 = 845;
+pub const SN_id_GostR3410_94_aBis: &[u8; 21] = b"id-GostR3410-94-aBis\0";
+pub const NID_id_GostR3410_94_aBis: i32 = 846;
+pub const SN_id_GostR3410_94_b: &[u8; 18] = b"id-GostR3410-94-b\0";
+pub const NID_id_GostR3410_94_b: i32 = 847;
+pub const SN_id_GostR3410_94_bBis: &[u8; 21] = b"id-GostR3410-94-bBis\0";
+pub const NID_id_GostR3410_94_bBis: i32 = 848;
+pub const SN_id_Gost28147_89_cc: &[u8; 19] = b"id-Gost28147-89-cc\0";
+pub const LN_id_Gost28147_89_cc: &[u8; 33] = b"GOST 28147-89 Cryptocom ParamSet\0";
+pub const NID_id_Gost28147_89_cc: i32 = 849;
+pub const SN_id_GostR3410_94_cc: &[u8; 9] = b"gost94cc\0";
+pub const LN_id_GostR3410_94_cc: &[u8; 24] = b"GOST 34.10-94 Cryptocom\0";
+pub const NID_id_GostR3410_94_cc: i32 = 850;
+pub const SN_id_GostR3410_2001_cc: &[u8; 11] = b"gost2001cc\0";
+pub const LN_id_GostR3410_2001_cc: &[u8; 26] = b"GOST 34.10-2001 Cryptocom\0";
+pub const NID_id_GostR3410_2001_cc: i32 = 851;
+pub const SN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 37] =
+    b"id-GostR3411-94-with-GostR3410-94-cc\0";
+pub const LN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 47] =
+    b"GOST R 34.11-94 with GOST R 34.10-94 Cryptocom\0";
+pub const NID_id_GostR3411_94_with_GostR3410_94_cc: i32 = 852;
+pub const SN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 39] =
+    b"id-GostR3411-94-with-GostR3410-2001-cc\0";
+pub const LN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 49] =
+    b"GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom\0";
+pub const NID_id_GostR3411_94_with_GostR3410_2001_cc: i32 = 853;
+pub const SN_id_GostR3410_2001_ParamSet_cc: &[u8; 30] = b"id-GostR3410-2001-ParamSet-cc\0";
+pub const LN_id_GostR3410_2001_ParamSet_cc: &[u8; 41] =
+    b"GOST R 3410-2001 Parameter Set Cryptocom\0";
+pub const NID_id_GostR3410_2001_ParamSet_cc: i32 = 854;
+pub const SN_hmac: &[u8; 5] = b"HMAC\0";
+pub const LN_hmac: &[u8; 5] = b"hmac\0";
+pub const NID_hmac: i32 = 855;
+pub const SN_LocalKeySet: &[u8; 12] = b"LocalKeySet\0";
+pub const LN_LocalKeySet: &[u8; 24] = b"Microsoft Local Key set\0";
+pub const NID_LocalKeySet: i32 = 856;
+pub const SN_freshest_crl: &[u8; 12] = b"freshestCRL\0";
+pub const LN_freshest_crl: &[u8; 20] = b"X509v3 Freshest CRL\0";
+pub const NID_freshest_crl: i32 = 857;
+pub const SN_id_on_permanentIdentifier: &[u8; 26] = b"id-on-permanentIdentifier\0";
+pub const LN_id_on_permanentIdentifier: &[u8; 21] = b"Permanent Identifier\0";
+pub const NID_id_on_permanentIdentifier: i32 = 858;
+pub const LN_searchGuide: &[u8; 12] = b"searchGuide\0";
+pub const NID_searchGuide: i32 = 859;
+pub const LN_businessCategory: &[u8; 17] = b"businessCategory\0";
+pub const NID_businessCategory: i32 = 860;
+pub const LN_postalAddress: &[u8; 14] = b"postalAddress\0";
+pub const NID_postalAddress: i32 = 861;
+pub const LN_postOfficeBox: &[u8; 14] = b"postOfficeBox\0";
+pub const NID_postOfficeBox: i32 = 862;
+pub const LN_physicalDeliveryOfficeName: &[u8; 27] = b"physicalDeliveryOfficeName\0";
+pub const NID_physicalDeliveryOfficeName: i32 = 863;
+pub const LN_telephoneNumber: &[u8; 16] = b"telephoneNumber\0";
+pub const NID_telephoneNumber: i32 = 864;
+pub const LN_telexNumber: &[u8; 12] = b"telexNumber\0";
+pub const NID_telexNumber: i32 = 865;
+pub const LN_teletexTerminalIdentifier: &[u8; 26] = b"teletexTerminalIdentifier\0";
+pub const NID_teletexTerminalIdentifier: i32 = 866;
+pub const LN_facsimileTelephoneNumber: &[u8; 25] = b"facsimileTelephoneNumber\0";
+pub const NID_facsimileTelephoneNumber: i32 = 867;
+pub const LN_x121Address: &[u8; 12] = b"x121Address\0";
+pub const NID_x121Address: i32 = 868;
+pub const LN_internationaliSDNNumber: &[u8; 24] = b"internationaliSDNNumber\0";
+pub const NID_internationaliSDNNumber: i32 = 869;
+pub const LN_registeredAddress: &[u8; 18] = b"registeredAddress\0";
+pub const NID_registeredAddress: i32 = 870;
+pub const LN_destinationIndicator: &[u8; 21] = b"destinationIndicator\0";
+pub const NID_destinationIndicator: i32 = 871;
+pub const LN_preferredDeliveryMethod: &[u8; 24] = b"preferredDeliveryMethod\0";
+pub const NID_preferredDeliveryMethod: i32 = 872;
+pub const LN_presentationAddress: &[u8; 20] = b"presentationAddress\0";
+pub const NID_presentationAddress: i32 = 873;
+pub const LN_supportedApplicationContext: &[u8; 28] = b"supportedApplicationContext\0";
+pub const NID_supportedApplicationContext: i32 = 874;
+pub const SN_member: &[u8; 7] = b"member\0";
+pub const NID_member: i32 = 875;
+pub const SN_owner: &[u8; 6] = b"owner\0";
+pub const NID_owner: i32 = 876;
+pub const LN_roleOccupant: &[u8; 13] = b"roleOccupant\0";
+pub const NID_roleOccupant: i32 = 877;
+pub const SN_seeAlso: &[u8; 8] = b"seeAlso\0";
+pub const NID_seeAlso: i32 = 878;
+pub const LN_userPassword: &[u8; 13] = b"userPassword\0";
+pub const NID_userPassword: i32 = 879;
+pub const LN_userCertificate: &[u8; 16] = b"userCertificate\0";
+pub const NID_userCertificate: i32 = 880;
+pub const LN_cACertificate: &[u8; 14] = b"cACertificate\0";
+pub const NID_cACertificate: i32 = 881;
+pub const LN_authorityRevocationList: &[u8; 24] = b"authorityRevocationList\0";
+pub const NID_authorityRevocationList: i32 = 882;
+pub const LN_certificateRevocationList: &[u8; 26] = b"certificateRevocationList\0";
+pub const NID_certificateRevocationList: i32 = 883;
+pub const LN_crossCertificatePair: &[u8; 21] = b"crossCertificatePair\0";
+pub const NID_crossCertificatePair: i32 = 884;
+pub const LN_enhancedSearchGuide: &[u8; 20] = b"enhancedSearchGuide\0";
+pub const NID_enhancedSearchGuide: i32 = 885;
+pub const LN_protocolInformation: &[u8; 20] = b"protocolInformation\0";
+pub const NID_protocolInformation: i32 = 886;
+pub const LN_distinguishedName: &[u8; 18] = b"distinguishedName\0";
+pub const NID_distinguishedName: i32 = 887;
+pub const LN_uniqueMember: &[u8; 13] = b"uniqueMember\0";
+pub const NID_uniqueMember: i32 = 888;
+pub const LN_houseIdentifier: &[u8; 16] = b"houseIdentifier\0";
+pub const NID_houseIdentifier: i32 = 889;
+pub const LN_supportedAlgorithms: &[u8; 20] = b"supportedAlgorithms\0";
+pub const NID_supportedAlgorithms: i32 = 890;
+pub const LN_deltaRevocationList: &[u8; 20] = b"deltaRevocationList\0";
+pub const NID_deltaRevocationList: i32 = 891;
+pub const SN_dmdName: &[u8; 8] = b"dmdName\0";
+pub const NID_dmdName: i32 = 892;
+pub const SN_id_alg_PWRI_KEK: &[u8; 16] = b"id-alg-PWRI-KEK\0";
+pub const NID_id_alg_PWRI_KEK: i32 = 893;
+pub const SN_cmac: &[u8; 5] = b"CMAC\0";
+pub const LN_cmac: &[u8; 5] = b"cmac\0";
+pub const NID_cmac: i32 = 894;
+pub const SN_aes_128_gcm: &[u8; 14] = b"id-aes128-GCM\0";
+pub const LN_aes_128_gcm: &[u8; 12] = b"aes-128-gcm\0";
+pub const NID_aes_128_gcm: i32 = 895;
+pub const SN_aes_128_ccm: &[u8; 14] = b"id-aes128-CCM\0";
+pub const LN_aes_128_ccm: &[u8; 12] = b"aes-128-ccm\0";
+pub const NID_aes_128_ccm: i32 = 896;
+pub const SN_id_aes128_wrap_pad: &[u8; 19] = b"id-aes128-wrap-pad\0";
+pub const NID_id_aes128_wrap_pad: i32 = 897;
+pub const SN_aes_192_gcm: &[u8; 14] = b"id-aes192-GCM\0";
+pub const LN_aes_192_gcm: &[u8; 12] = b"aes-192-gcm\0";
+pub const NID_aes_192_gcm: i32 = 898;
+pub const SN_aes_192_ccm: &[u8; 14] = b"id-aes192-CCM\0";
+pub const LN_aes_192_ccm: &[u8; 12] = b"aes-192-ccm\0";
+pub const NID_aes_192_ccm: i32 = 899;
+pub const SN_id_aes192_wrap_pad: &[u8; 19] = b"id-aes192-wrap-pad\0";
+pub const NID_id_aes192_wrap_pad: i32 = 900;
+pub const SN_aes_256_gcm: &[u8; 14] = b"id-aes256-GCM\0";
+pub const LN_aes_256_gcm: &[u8; 12] = b"aes-256-gcm\0";
+pub const NID_aes_256_gcm: i32 = 901;
+pub const SN_aes_256_ccm: &[u8; 14] = b"id-aes256-CCM\0";
+pub const LN_aes_256_ccm: &[u8; 12] = b"aes-256-ccm\0";
+pub const NID_aes_256_ccm: i32 = 902;
+pub const SN_id_aes256_wrap_pad: &[u8; 19] = b"id-aes256-wrap-pad\0";
+pub const NID_id_aes256_wrap_pad: i32 = 903;
+pub const SN_aes_128_ctr: &[u8; 12] = b"AES-128-CTR\0";
+pub const LN_aes_128_ctr: &[u8; 12] = b"aes-128-ctr\0";
+pub const NID_aes_128_ctr: i32 = 904;
+pub const SN_aes_192_ctr: &[u8; 12] = b"AES-192-CTR\0";
+pub const LN_aes_192_ctr: &[u8; 12] = b"aes-192-ctr\0";
+pub const NID_aes_192_ctr: i32 = 905;
+pub const SN_aes_256_ctr: &[u8; 12] = b"AES-256-CTR\0";
+pub const LN_aes_256_ctr: &[u8; 12] = b"aes-256-ctr\0";
+pub const NID_aes_256_ctr: i32 = 906;
+pub const SN_id_camellia128_wrap: &[u8; 20] = b"id-camellia128-wrap\0";
+pub const NID_id_camellia128_wrap: i32 = 907;
+pub const SN_id_camellia192_wrap: &[u8; 20] = b"id-camellia192-wrap\0";
+pub const NID_id_camellia192_wrap: i32 = 908;
+pub const SN_id_camellia256_wrap: &[u8; 20] = b"id-camellia256-wrap\0";
+pub const NID_id_camellia256_wrap: i32 = 909;
+pub const SN_anyExtendedKeyUsage: &[u8; 20] = b"anyExtendedKeyUsage\0";
+pub const LN_anyExtendedKeyUsage: &[u8; 23] = b"Any Extended Key Usage\0";
+pub const NID_anyExtendedKeyUsage: i32 = 910;
+pub const SN_mgf1: &[u8; 5] = b"MGF1\0";
+pub const LN_mgf1: &[u8; 5] = b"mgf1\0";
+pub const NID_mgf1: i32 = 911;
+pub const SN_rsassaPss: &[u8; 11] = b"RSASSA-PSS\0";
+pub const LN_rsassaPss: &[u8; 10] = b"rsassaPss\0";
+pub const NID_rsassaPss: i32 = 912;
+pub const SN_aes_128_xts: &[u8; 12] = b"AES-128-XTS\0";
+pub const LN_aes_128_xts: &[u8; 12] = b"aes-128-xts\0";
+pub const NID_aes_128_xts: i32 = 913;
+pub const SN_aes_256_xts: &[u8; 12] = b"AES-256-XTS\0";
+pub const LN_aes_256_xts: &[u8; 12] = b"aes-256-xts\0";
+pub const NID_aes_256_xts: i32 = 914;
+pub const SN_rc4_hmac_md5: &[u8; 13] = b"RC4-HMAC-MD5\0";
+pub const LN_rc4_hmac_md5: &[u8; 13] = b"rc4-hmac-md5\0";
+pub const NID_rc4_hmac_md5: i32 = 915;
+pub const SN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"AES-128-CBC-HMAC-SHA1\0";
+pub const LN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"aes-128-cbc-hmac-sha1\0";
+pub const NID_aes_128_cbc_hmac_sha1: i32 = 916;
+pub const SN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"AES-192-CBC-HMAC-SHA1\0";
+pub const LN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"aes-192-cbc-hmac-sha1\0";
+pub const NID_aes_192_cbc_hmac_sha1: i32 = 917;
+pub const SN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"AES-256-CBC-HMAC-SHA1\0";
+pub const LN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"aes-256-cbc-hmac-sha1\0";
+pub const NID_aes_256_cbc_hmac_sha1: i32 = 918;
+pub const SN_rsaesOaep: &[u8; 11] = b"RSAES-OAEP\0";
+pub const LN_rsaesOaep: &[u8; 10] = b"rsaesOaep\0";
+pub const NID_rsaesOaep: i32 = 919;
+pub const SN_dhpublicnumber: &[u8; 15] = b"dhpublicnumber\0";
+pub const LN_dhpublicnumber: &[u8; 9] = b"X9.42 DH\0";
+pub const NID_dhpublicnumber: i32 = 920;
+pub const SN_brainpoolP160r1: &[u8; 16] = b"brainpoolP160r1\0";
+pub const NID_brainpoolP160r1: i32 = 921;
+pub const SN_brainpoolP160t1: &[u8; 16] = b"brainpoolP160t1\0";
+pub const NID_brainpoolP160t1: i32 = 922;
+pub const SN_brainpoolP192r1: &[u8; 16] = b"brainpoolP192r1\0";
+pub const NID_brainpoolP192r1: i32 = 923;
+pub const SN_brainpoolP192t1: &[u8; 16] = b"brainpoolP192t1\0";
+pub const NID_brainpoolP192t1: i32 = 924;
+pub const SN_brainpoolP224r1: &[u8; 16] = b"brainpoolP224r1\0";
+pub const NID_brainpoolP224r1: i32 = 925;
+pub const SN_brainpoolP224t1: &[u8; 16] = b"brainpoolP224t1\0";
+pub const NID_brainpoolP224t1: i32 = 926;
+pub const SN_brainpoolP256r1: &[u8; 16] = b"brainpoolP256r1\0";
+pub const NID_brainpoolP256r1: i32 = 927;
+pub const SN_brainpoolP256t1: &[u8; 16] = b"brainpoolP256t1\0";
+pub const NID_brainpoolP256t1: i32 = 928;
+pub const SN_brainpoolP320r1: &[u8; 16] = b"brainpoolP320r1\0";
+pub const NID_brainpoolP320r1: i32 = 929;
+pub const SN_brainpoolP320t1: &[u8; 16] = b"brainpoolP320t1\0";
+pub const NID_brainpoolP320t1: i32 = 930;
+pub const SN_brainpoolP384r1: &[u8; 16] = b"brainpoolP384r1\0";
+pub const NID_brainpoolP384r1: i32 = 931;
+pub const SN_brainpoolP384t1: &[u8; 16] = b"brainpoolP384t1\0";
+pub const NID_brainpoolP384t1: i32 = 932;
+pub const SN_brainpoolP512r1: &[u8; 16] = b"brainpoolP512r1\0";
+pub const NID_brainpoolP512r1: i32 = 933;
+pub const SN_brainpoolP512t1: &[u8; 16] = b"brainpoolP512t1\0";
+pub const NID_brainpoolP512t1: i32 = 934;
+pub const SN_pSpecified: &[u8; 11] = b"PSPECIFIED\0";
+pub const LN_pSpecified: &[u8; 11] = b"pSpecified\0";
+pub const NID_pSpecified: i32 = 935;
+pub const SN_dhSinglePass_stdDH_sha1kdf_scheme: &[u8; 34] = b"dhSinglePass-stdDH-sha1kdf-scheme\0";
+pub const NID_dhSinglePass_stdDH_sha1kdf_scheme: i32 = 936;
+pub const SN_dhSinglePass_stdDH_sha224kdf_scheme: &[u8; 36] =
+    b"dhSinglePass-stdDH-sha224kdf-scheme\0";
+pub const NID_dhSinglePass_stdDH_sha224kdf_scheme: i32 = 937;
+pub const SN_dhSinglePass_stdDH_sha256kdf_scheme: &[u8; 36] =
+    b"dhSinglePass-stdDH-sha256kdf-scheme\0";
+pub const NID_dhSinglePass_stdDH_sha256kdf_scheme: i32 = 938;
+pub const SN_dhSinglePass_stdDH_sha384kdf_scheme: &[u8; 36] =
+    b"dhSinglePass-stdDH-sha384kdf-scheme\0";
+pub const NID_dhSinglePass_stdDH_sha384kdf_scheme: i32 = 939;
+pub const SN_dhSinglePass_stdDH_sha512kdf_scheme: &[u8; 36] =
+    b"dhSinglePass-stdDH-sha512kdf-scheme\0";
+pub const NID_dhSinglePass_stdDH_sha512kdf_scheme: i32 = 940;
+pub const SN_dhSinglePass_cofactorDH_sha1kdf_scheme: &[u8; 39] =
+    b"dhSinglePass-cofactorDH-sha1kdf-scheme\0";
+pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme: i32 = 941;
+pub const SN_dhSinglePass_cofactorDH_sha224kdf_scheme: &[u8; 41] =
+    b"dhSinglePass-cofactorDH-sha224kdf-scheme\0";
+pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme: i32 = 942;
+pub const SN_dhSinglePass_cofactorDH_sha256kdf_scheme: &[u8; 41] =
+    b"dhSinglePass-cofactorDH-sha256kdf-scheme\0";
+pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme: i32 = 943;
+pub const SN_dhSinglePass_cofactorDH_sha384kdf_scheme: &[u8; 41] =
+    b"dhSinglePass-cofactorDH-sha384kdf-scheme\0";
+pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme: i32 = 944;
+pub const SN_dhSinglePass_cofactorDH_sha512kdf_scheme: &[u8; 41] =
+    b"dhSinglePass-cofactorDH-sha512kdf-scheme\0";
+pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme: i32 = 945;
+pub const SN_dh_std_kdf: &[u8; 11] = b"dh-std-kdf\0";
+pub const NID_dh_std_kdf: i32 = 946;
+pub const SN_dh_cofactor_kdf: &[u8; 16] = b"dh-cofactor-kdf\0";
+pub const NID_dh_cofactor_kdf: i32 = 947;
+pub const SN_X25519: &[u8; 7] = b"X25519\0";
+pub const NID_X25519: i32 = 948;
+pub const SN_ED25519: &[u8; 8] = b"ED25519\0";
+pub const NID_ED25519: i32 = 949;
+pub const SN_chacha20_poly1305: &[u8; 18] = b"ChaCha20-Poly1305\0";
+pub const LN_chacha20_poly1305: &[u8; 18] = b"chacha20-poly1305\0";
+pub const NID_chacha20_poly1305: i32 = 950;
+pub const SN_kx_rsa: &[u8; 6] = b"KxRSA\0";
+pub const LN_kx_rsa: &[u8; 7] = b"kx-rsa\0";
+pub const NID_kx_rsa: i32 = 951;
+pub const SN_kx_ecdhe: &[u8; 8] = b"KxECDHE\0";
+pub const LN_kx_ecdhe: &[u8; 9] = b"kx-ecdhe\0";
+pub const NID_kx_ecdhe: i32 = 952;
+pub const SN_kx_psk: &[u8; 6] = b"KxPSK\0";
+pub const LN_kx_psk: &[u8; 7] = b"kx-psk\0";
+pub const NID_kx_psk: i32 = 953;
+pub const SN_auth_rsa: &[u8; 8] = b"AuthRSA\0";
+pub const LN_auth_rsa: &[u8; 9] = b"auth-rsa\0";
+pub const NID_auth_rsa: i32 = 954;
+pub const SN_auth_ecdsa: &[u8; 10] = b"AuthECDSA\0";
+pub const LN_auth_ecdsa: &[u8; 11] = b"auth-ecdsa\0";
+pub const NID_auth_ecdsa: i32 = 955;
+pub const SN_auth_psk: &[u8; 8] = b"AuthPSK\0";
+pub const LN_auth_psk: &[u8; 9] = b"auth-psk\0";
+pub const NID_auth_psk: i32 = 956;
+pub const SN_kx_any: &[u8; 6] = b"KxANY\0";
+pub const LN_kx_any: &[u8; 7] = b"kx-any\0";
+pub const NID_kx_any: i32 = 957;
+pub const SN_auth_any: &[u8; 8] = b"AuthANY\0";
+pub const LN_auth_any: &[u8; 9] = b"auth-any\0";
+pub const NID_auth_any: i32 = 958;
+pub const SN_ED448: &[u8; 6] = b"ED448\0";
+pub const NID_ED448: i32 = 960;
+pub const SN_X448: &[u8; 5] = b"X448\0";
+pub const NID_X448: i32 = 961;
+pub const SN_sha512_256: &[u8; 11] = b"SHA512-256\0";
+pub const LN_sha512_256: &[u8; 11] = b"sha512-256\0";
+pub const NID_sha512_256: i32 = 962;
+pub const SN_aes_128_cbc_hmac_sha256: &[u8; 24] = b"AES-128-CBC-HMAC-SHA256\0";
+pub const LN_aes_128_cbc_hmac_sha256: &[u8; 24] = b"aes-128-cbc-hmac-sha256\0";
+pub const NID_aes_128_cbc_hmac_sha256: i32 = 963;
+pub const SN_aes_256_cbc_hmac_sha256: &[u8; 24] = b"AES-256-CBC-HMAC-SHA256\0";
+pub const LN_aes_256_cbc_hmac_sha256: &[u8; 24] = b"aes-256-cbc-hmac-sha256\0";
+pub const NID_aes_256_cbc_hmac_sha256: i32 = 964;
+pub const SN_sha3_224: &[u8; 9] = b"SHA3-224\0";
+pub const LN_sha3_224: &[u8; 9] = b"sha3-224\0";
+pub const NID_sha3_224: i32 = 965;
+pub const SN_sha3_256: &[u8; 9] = b"SHA3-256\0";
+pub const LN_sha3_256: &[u8; 9] = b"sha3-256\0";
+pub const NID_sha3_256: i32 = 966;
+pub const SN_sha3_384: &[u8; 9] = b"SHA3-384\0";
+pub const LN_sha3_384: &[u8; 9] = b"sha3-384\0";
+pub const NID_sha3_384: i32 = 967;
+pub const SN_sha3_512: &[u8; 9] = b"SHA3-512\0";
+pub const LN_sha3_512: &[u8; 9] = b"sha3-512\0";
+pub const NID_sha3_512: i32 = 968;
+pub const SN_hkdf: &[u8; 5] = b"HKDF\0";
+pub const LN_hkdf: &[u8; 5] = b"hkdf\0";
+pub const NID_hkdf: i32 = 969;
+pub const SN_kem: &[u8; 4] = b"KEM\0";
+pub const LN_kem: &[u8; 4] = b"kem\0";
+pub const NID_kem: i32 = 970;
+pub const SN_KYBER512: &[u8; 9] = b"KYBER512\0";
+pub const NID_KYBER512: i32 = 971;
+pub const SN_KYBER512_R3: &[u8; 12] = b"KYBER512_R3\0";
+pub const NID_KYBER512_R3: i32 = 972;
+pub const SN_KYBER768_R3: &[u8; 12] = b"KYBER768_R3\0";
+pub const NID_KYBER768_R3: i32 = 973;
+pub const SN_KYBER1024_R3: &[u8; 13] = b"KYBER1024_R3\0";
+pub const NID_KYBER1024_R3: i32 = 974;
+pub const SN_DILITHIUM3_R3: &[u8; 14] = b"DILITHIUM3_R3\0";
+pub const NID_DILITHIUM3_R3: i32 = 975;
+pub const SN_ffdhe2048: &[u8; 10] = b"ffdhe2048\0";
+pub const NID_ffdhe2048: i32 = 976;
+pub const SN_ffdhe4096: &[u8; 10] = b"ffdhe4096\0";
+pub const NID_ffdhe4096: i32 = 977;
+pub const SN_sha512_224: &[u8; 11] = b"SHA512-224\0";
+pub const LN_sha512_224: &[u8; 11] = b"sha512-224\0";
+pub const NID_sha512_224: i32 = 978;
+pub const SN_shake128: &[u8; 9] = b"SHAKE128\0";
+pub const LN_shake128: &[u8; 9] = b"shake128\0";
+pub const NID_shake128: i32 = 979;
+pub const SN_shake256: &[u8; 9] = b"SHAKE256\0";
+pub const LN_shake256: &[u8; 9] = b"shake256\0";
+pub const NID_shake256: i32 = 980;
+pub const SN_SecP256r1Kyber768Draft00: &[u8; 25] = b"SecP256r1Kyber768Draft00\0";
+pub const NID_SecP256r1Kyber768Draft00: i32 = 981;
+pub const SN_X25519Kyber768Draft00: &[u8; 22] = b"X25519Kyber768Draft00\0";
+pub const NID_X25519Kyber768Draft00: i32 = 982;
+pub const SN_ffdhe3072: &[u8; 10] = b"ffdhe3072\0";
+pub const NID_ffdhe3072: i32 = 983;
+pub const SN_ffdhe8192: &[u8; 10] = b"ffdhe8192\0";
+pub const NID_ffdhe8192: i32 = 984;
+pub const SN_MLKEM512IPD: &[u8; 12] = b"MLKEM512IPD\0";
+pub const NID_MLKEM512IPD: i32 = 985;
+pub const SN_MLKEM768IPD: &[u8; 12] = b"MLKEM768IPD\0";
+pub const NID_MLKEM768IPD: i32 = 986;
+pub const SN_MLKEM1024IPD: &[u8; 13] = b"MLKEM1024IPD\0";
+pub const NID_MLKEM1024IPD: i32 = 987;
+pub const SN_MLKEM512: &[u8; 9] = b"MLKEM512\0";
+pub const NID_MLKEM512: i32 = 988;
+pub const SN_MLKEM768: &[u8; 9] = b"MLKEM768\0";
+pub const NID_MLKEM768: i32 = 989;
+pub const SN_MLKEM1024: &[u8; 10] = b"MLKEM1024\0";
+pub const NID_MLKEM1024: i32 = 990;
+pub const SN_X25519MLKEM768: &[u8; 15] = b"X25519MLKEM768\0";
+pub const NID_X25519MLKEM768: i32 = 991;
+pub const SN_SecP256r1MLKEM768: &[u8; 18] = b"SecP256r1MLKEM768\0";
+pub const NID_SecP256r1MLKEM768: i32 = 992;
+pub const SN_PQDSA: &[u8; 6] = b"PQDSA\0";
+pub const NID_PQDSA: i32 = 993;
+pub const SN_MLDSA44: &[u8; 8] = b"MLDSA44\0";
+pub const NID_MLDSA44: i32 = 994;
+pub const SN_MLDSA65: &[u8; 8] = b"MLDSA65\0";
+pub const NID_MLDSA65: i32 = 995;
+pub const SN_MLDSA87: &[u8; 8] = b"MLDSA87\0";
+pub const NID_MLDSA87: i32 = 996;
+pub const OBJ_NAME_TYPE_MD_METH: i32 = 1;
+pub const OBJ_NAME_TYPE_CIPHER_METH: i32 = 2;
+pub const OBJ_R_UNKNOWN_NID: i32 = 100;
+pub const OBJ_R_INVALID_OID_STRING: i32 = 101;
+pub const EVP_PKEY_NONE: i32 = 0;
+pub const EVP_PKEY_RSA: i32 = 6;
+pub const EVP_PKEY_RSA_PSS: i32 = 912;
+pub const EVP_PKEY_EC: i32 = 408;
+pub const EVP_PKEY_ED25519: i32 = 949;
+pub const EVP_PKEY_X25519: i32 = 948;
+pub const EVP_PKEY_HKDF: i32 = 969;
+pub const EVP_PKEY_HMAC: i32 = 855;
+pub const EVP_PKEY_DH: i32 = 28;
+pub const EVP_PKEY_KEM: i32 = 970;
+pub const PKCS5_SALT_LEN: i32 = 8;
+pub const EVP_PKEY_RSA2: i32 = 19;
+pub const EVP_PKEY_X448: i32 = 961;
+pub const EVP_PKEY_ED448: i32 = 960;
+pub const EVP_PKEY_DSA: i32 = 116;
+pub const HKDF_R_OUTPUT_TOO_LARGE: i32 = 100;
+pub const MD5_CBLOCK: i32 = 64;
+pub const MD5_DIGEST_LENGTH: i32 = 16;
+pub const HMAC_MD5_PRECOMPUTED_KEY_SIZE: i32 = 32;
+pub const HMAC_SHA1_PRECOMPUTED_KEY_SIZE: i32 = 40;
+pub const HMAC_SHA224_PRECOMPUTED_KEY_SIZE: i32 = 64;
+pub const HMAC_SHA256_PRECOMPUTED_KEY_SIZE: i32 = 64;
+pub const HMAC_SHA384_PRECOMPUTED_KEY_SIZE: i32 = 128;
+pub const HMAC_SHA512_PRECOMPUTED_KEY_SIZE: i32 = 128;
+pub const HMAC_SHA512_224_PRECOMPUTED_KEY_SIZE: i32 = 128;
+pub const HMAC_SHA512_256_PRECOMPUTED_KEY_SIZE: i32 = 128;
+pub const HMAC_MAX_PRECOMPUTED_KEY_SIZE: i32 = 128;
+pub const HMAC_R_MISSING_PARAMETERS: i32 = 100;
+pub const HMAC_R_BUFFER_TOO_SMALL: i32 = 102;
+pub const HMAC_R_SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED: i32 = 103;
+pub const HMAC_R_NOT_CALLED_JUST_AFTER_INIT: i32 = 104;
+pub const EVP_HPKE_DHKEM_X25519_HKDF_SHA256: i32 = 32;
+pub const EVP_HPKE_MAX_PUBLIC_KEY_LENGTH: i32 = 32;
+pub const EVP_HPKE_MAX_PRIVATE_KEY_LENGTH: i32 = 32;
+pub const EVP_HPKE_MAX_ENC_LENGTH: i32 = 32;
+pub const EVP_HPKE_HKDF_SHA256: i32 = 1;
+pub const EVP_HPKE_AES_128_GCM: i32 = 1;
+pub const EVP_HPKE_AES_256_GCM: i32 = 2;
+pub const EVP_HPKE_CHACHA20_POLY1305: i32 = 3;
+pub const EVP_HPKE_MAX_OVERHEAD: i32 = 64;
+pub const HRSS_SAMPLE_BYTES: i32 = 700;
+pub const HRSS_GENERATE_KEY_BYTES: i32 = 1432;
+pub const HRSS_ENCAP_BYTES: i32 = 1400;
+pub const HRSS_PUBLIC_KEY_BYTES: i32 = 1138;
+pub const HRSS_CIPHERTEXT_BYTES: i32 = 1138;
+pub const HRSS_KEY_BYTES: i32 = 32;
+pub const HRSS_POLY3_BYTES: i32 = 140;
+pub const HRSS_PRIVATE_KEY_BYTES: i32 = 1452;
+pub const EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND: i32 = 0;
+pub const EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY: i32 = 1;
+pub const EVP_PKEY_HKDEF_MODE_EXPAND_ONLY: i32 = 2;
+pub const MD4_CBLOCK: i32 = 64;
+pub const MD4_DIGEST_LENGTH: i32 = 16;
+pub const PKCS7_DETACHED: i32 = 64;
+pub const PKCS7_BINARY: i32 = 128;
+pub const PKCS7_NOINTERN: i32 = 16;
+pub const PKCS7_NOATTR: i32 = 256;
+pub const PKCS7_NOCERTS: i32 = 2;
+pub const PKCS7_NOVERIFY: i32 = 32;
+pub const PKCS7_TEXT: i32 = 1;
+pub const PKCS7_NOSIGS: i32 = 4;
+pub const PKCS7_NOCHAIN: i32 = 8;
+pub const PKCS7_NOSMIMECAP: i32 = 512;
+pub const PKCS7_STREAM: i32 = 4096;
+pub const PKCS7_PARTIAL: i32 = 16384;
+pub const PKCS7_R_BAD_PKCS7_VERSION: i32 = 100;
+pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA: i32 = 101;
+pub const PKCS7_R_NO_CERTIFICATES_INCLUDED: i32 = 102;
+pub const PKCS7_R_NO_CRLS_INCLUDED: i32 = 103;
+pub const PKCS7_R_INVALID_NULL_POINTER: i32 = 104;
+pub const PKCS7_R_NO_CONTENT: i32 = 105;
+pub const PKCS7_R_CIPHER_NOT_INITIALIZED: i32 = 106;
+pub const PKCS7_R_UNSUPPORTED_CONTENT_TYPE: i32 = 107;
+pub const PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST: i32 = 108;
+pub const PKCS7_R_UNABLE_TO_FIND_MEM_BIO: i32 = 109;
+pub const PKCS7_R_WRONG_CONTENT_TYPE: i32 = 110;
+pub const PKCS7_R_CONTENT_AND_DATA_PRESENT: i32 = 111;
+pub const PKCS7_R_NO_SIGNATURES_ON_DATA: i32 = 112;
+pub const PKCS7_R_CERTIFICATE_VERIFY_ERROR: i32 = 113;
+pub const PKCS7_R_SMIME_TEXT_ERROR: i32 = 114;
+pub const PKCS7_R_SIGNATURE_FAILURE: i32 = 115;
+pub const PKCS7_R_NO_SIGNERS: i32 = 116;
+pub const PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 117;
+pub const PKCS7_R_ERROR_SETTING_CIPHER: i32 = 118;
+pub const PKCS7_R_ERROR_ADDING_RECIPIENT: i32 = 119;
+pub const PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 120;
+pub const PKCS7_R_DECRYPT_ERROR: i32 = 121;
+pub const PKCS7_R_PKCS7_DATASIGN: i32 = 122;
+pub const PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 123;
+pub const PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE: i32 = 124;
+pub const PKCS7_R_UNKNOWN_DIGEST_TYPE: i32 = 125;
+pub const PKCS7_R_INVALID_SIGNED_DATA_TYPE: i32 = 126;
+pub const PKCS7_R_UNSUPPORTED_CIPHER_TYPE: i32 = 127;
+pub const PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE: i32 = 128;
+pub const PKCS7_R_DIGEST_FAILURE: i32 = 129;
+pub const PKCS7_R_WRONG_PKCS7_TYPE: i32 = 130;
+pub const PKCS7_R_PKCS7_ADD_SIGNER_ERROR: i32 = 131;
+pub const PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR: i32 = 132;
+pub const PKCS7_R_NO_DEFAULT_DIGEST: i32 = 133;
+pub const PKCS7_R_CERT_MUST_BE_RSA: i32 = 134;
+pub const RSA_PKCS1_PADDING: i32 = 1;
+pub const RSA_NO_PADDING: i32 = 3;
+pub const RSA_PKCS1_OAEP_PADDING: i32 = 4;
+pub const RSA_PKCS1_PSS_PADDING: i32 = 6;
+pub const RSA_PSS_SALTLEN_DIGEST: i32 = -1;
+pub const RSA_FLAG_OPAQUE: i32 = 1;
+pub const RSA_FLAG_NO_BLINDING: i32 = 8;
+pub const RSA_FLAG_EXT_PKEY: i32 = 32;
+pub const RSA_FLAG_NO_PUBLIC_EXPONENT: i32 = 64;
+pub const RSA_FLAG_LARGE_PUBLIC_EXPONENT: i32 = 128;
+pub const RSA_3: i32 = 3;
+pub const RSA_F4: i32 = 65537;
+pub const RSA_METHOD_FLAG_NO_CHECK: i32 = 1;
+pub const RSA_R_BAD_ENCODING: i32 = 100;
+pub const RSA_R_BAD_E_VALUE: i32 = 101;
+pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: i32 = 102;
+pub const RSA_R_BAD_PAD_BYTE_COUNT: i32 = 103;
+pub const RSA_R_BAD_RSA_PARAMETERS: i32 = 104;
+pub const RSA_R_BAD_SIGNATURE: i32 = 105;
+pub const RSA_R_BAD_VERSION: i32 = 106;
+pub const RSA_R_BLOCK_TYPE_IS_NOT_01: i32 = 107;
+pub const RSA_R_BN_NOT_INITIALIZED: i32 = 108;
+pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: i32 = 109;
+pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: i32 = 110;
+pub const RSA_R_CRT_VALUES_INCORRECT: i32 = 111;
+pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: i32 = 112;
+pub const RSA_R_DATA_TOO_LARGE: i32 = 113;
+pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: i32 = 114;
+pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: i32 = 115;
+pub const RSA_R_DATA_TOO_SMALL: i32 = 116;
+pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: i32 = 117;
+pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: i32 = 118;
+pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: i32 = 119;
+pub const RSA_R_EMPTY_PUBLIC_KEY: i32 = 120;
+pub const RSA_R_ENCODE_ERROR: i32 = 121;
+pub const RSA_R_FIRST_OCTET_INVALID: i32 = 122;
+pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: i32 = 123;
+pub const RSA_R_INTERNAL_ERROR: i32 = 124;
+pub const RSA_R_INVALID_MESSAGE_LENGTH: i32 = 125;
+pub const RSA_R_KEY_SIZE_TOO_SMALL: i32 = 126;
+pub const RSA_R_LAST_OCTET_INVALID: i32 = 127;
+pub const RSA_R_MODULUS_TOO_LARGE: i32 = 128;
+pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: i32 = 129;
+pub const RSA_R_NO_PUBLIC_EXPONENT: i32 = 130;
+pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: i32 = 131;
+pub const RSA_R_N_NOT_EQUAL_P_Q: i32 = 132;
+pub const RSA_R_OAEP_DECODING_ERROR: i32 = 133;
+pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: i32 = 134;
+pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: i32 = 135;
+pub const RSA_R_PADDING_CHECK_FAILED: i32 = 136;
+pub const RSA_R_PKCS_DECODING_ERROR: i32 = 137;
+pub const RSA_R_SLEN_CHECK_FAILED: i32 = 138;
+pub const RSA_R_SLEN_RECOVERY_FAILED: i32 = 139;
+pub const RSA_R_TOO_LONG: i32 = 140;
+pub const RSA_R_TOO_MANY_ITERATIONS: i32 = 141;
+pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: i32 = 142;
+pub const RSA_R_UNKNOWN_PADDING_TYPE: i32 = 143;
+pub const RSA_R_VALUE_MISSING: i32 = 144;
+pub const RSA_R_WRONG_SIGNATURE_LENGTH: i32 = 145;
+pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 146;
+pub const RSA_R_D_OUT_OF_RANGE: i32 = 147;
+pub const RSA_R_BLOCK_TYPE_IS_NOT_02: i32 = 148;
+pub const RSA_R_MISMATCHED_SIGNATURE: i32 = 248;
+pub const RSA_F_RSA_OSSL_PRIVATE_ENCRYPT: i32 = 0;
+pub const X509V3_R_BAD_IP_ADDRESS: i32 = 100;
+pub const X509V3_R_BAD_OBJECT: i32 = 101;
+pub const X509V3_R_BN_DEC2BN_ERROR: i32 = 102;
+pub const X509V3_R_BN_TO_ASN1_INTEGER_ERROR: i32 = 103;
+pub const X509V3_R_CANNOT_FIND_FREE_FUNCTION: i32 = 104;
+pub const X509V3_R_DIRNAME_ERROR: i32 = 105;
+pub const X509V3_R_DISTPOINT_ALREADY_SET: i32 = 106;
+pub const X509V3_R_DUPLICATE_ZONE_ID: i32 = 107;
+pub const X509V3_R_ERROR_CONVERTING_ZONE: i32 = 108;
+pub const X509V3_R_ERROR_CREATING_EXTENSION: i32 = 109;
+pub const X509V3_R_ERROR_IN_EXTENSION: i32 = 110;
+pub const X509V3_R_EXPECTED_A_SECTION_NAME: i32 = 111;
+pub const X509V3_R_EXTENSION_EXISTS: i32 = 112;
+pub const X509V3_R_EXTENSION_NAME_ERROR: i32 = 113;
+pub const X509V3_R_EXTENSION_NOT_FOUND: i32 = 114;
+pub const X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED: i32 = 115;
+pub const X509V3_R_EXTENSION_VALUE_ERROR: i32 = 116;
+pub const X509V3_R_ILLEGAL_EMPTY_EXTENSION: i32 = 117;
+pub const X509V3_R_ILLEGAL_HEX_DIGIT: i32 = 118;
+pub const X509V3_R_INCORRECT_POLICY_SYNTAX_TAG: i32 = 119;
+pub const X509V3_R_INVALID_BOOLEAN_STRING: i32 = 120;
+pub const X509V3_R_INVALID_EXTENSION_STRING: i32 = 121;
+pub const X509V3_R_INVALID_MULTIPLE_RDNS: i32 = 122;
+pub const X509V3_R_INVALID_NAME: i32 = 123;
+pub const X509V3_R_INVALID_NULL_ARGUMENT: i32 = 124;
+pub const X509V3_R_INVALID_NULL_NAME: i32 = 125;
+pub const X509V3_R_INVALID_NULL_VALUE: i32 = 126;
+pub const X509V3_R_INVALID_NUMBER: i32 = 127;
+pub const X509V3_R_INVALID_NUMBERS: i32 = 128;
+pub const X509V3_R_INVALID_OBJECT_IDENTIFIER: i32 = 129;
+pub const X509V3_R_INVALID_OPTION: i32 = 130;
+pub const X509V3_R_INVALID_POLICY_IDENTIFIER: i32 = 131;
+pub const X509V3_R_INVALID_PROXY_POLICY_SETTING: i32 = 132;
+pub const X509V3_R_INVALID_PURPOSE: i32 = 133;
+pub const X509V3_R_INVALID_SECTION: i32 = 134;
+pub const X509V3_R_INVALID_SYNTAX: i32 = 135;
+pub const X509V3_R_ISSUER_DECODE_ERROR: i32 = 136;
+pub const X509V3_R_MISSING_VALUE: i32 = 137;
+pub const X509V3_R_NEED_ORGANIZATION_AND_NUMBERS: i32 = 138;
+pub const X509V3_R_NO_CONFIG_DATABASE: i32 = 139;
+pub const X509V3_R_NO_ISSUER_CERTIFICATE: i32 = 140;
+pub const X509V3_R_NO_ISSUER_DETAILS: i32 = 141;
+pub const X509V3_R_NO_POLICY_IDENTIFIER: i32 = 142;
+pub const X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED: i32 = 143;
+pub const X509V3_R_NO_PUBLIC_KEY: i32 = 144;
+pub const X509V3_R_NO_SUBJECT_DETAILS: i32 = 145;
+pub const X509V3_R_ODD_NUMBER_OF_DIGITS: i32 = 146;
+pub const X509V3_R_OPERATION_NOT_DEFINED: i32 = 147;
+pub const X509V3_R_OTHERNAME_ERROR: i32 = 148;
+pub const X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED: i32 = 149;
+pub const X509V3_R_POLICY_PATH_LENGTH: i32 = 150;
+pub const X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED: i32 = 151;
+pub const X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY: i32 = 152;
+pub const X509V3_R_SECTION_NOT_FOUND: i32 = 153;
+pub const X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS: i32 = 154;
+pub const X509V3_R_UNABLE_TO_GET_ISSUER_KEYID: i32 = 155;
+pub const X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT: i32 = 156;
+pub const X509V3_R_UNKNOWN_EXTENSION: i32 = 157;
+pub const X509V3_R_UNKNOWN_EXTENSION_NAME: i32 = 158;
+pub const X509V3_R_UNKNOWN_OPTION: i32 = 159;
+pub const X509V3_R_UNSUPPORTED_OPTION: i32 = 160;
+pub const X509V3_R_UNSUPPORTED_TYPE: i32 = 161;
+pub const X509V3_R_USER_TOO_LONG: i32 = 162;
+pub const X509V3_R_INVALID_VALUE: i32 = 163;
+pub const X509V3_R_TRAILING_DATA_IN_EXTENSION: i32 = 164;
+pub const X509_VERSION_1: i32 = 0;
+pub const X509_VERSION_2: i32 = 1;
+pub const X509_VERSION_3: i32 = 2;
+pub const EXFLAG_BCONS: i32 = 1;
+pub const EXFLAG_KUSAGE: i32 = 2;
+pub const EXFLAG_XKUSAGE: i32 = 4;
+pub const EXFLAG_NSCERT: i32 = 8;
+pub const EXFLAG_CA: i32 = 16;
+pub const EXFLAG_SI: i32 = 32;
+pub const EXFLAG_V1: i32 = 64;
+pub const EXFLAG_INVALID: i32 = 128;
+pub const EXFLAG_SET: i32 = 256;
+pub const EXFLAG_CRITICAL: i32 = 512;
+pub const EXFLAG_SS: i32 = 8192;
+pub const X509v3_KU_DIGITAL_SIGNATURE: i32 = 128;
+pub const X509v3_KU_NON_REPUDIATION: i32 = 64;
+pub const X509v3_KU_KEY_ENCIPHERMENT: i32 = 32;
+pub const X509v3_KU_DATA_ENCIPHERMENT: i32 = 16;
+pub const X509v3_KU_KEY_AGREEMENT: i32 = 8;
+pub const X509v3_KU_KEY_CERT_SIGN: i32 = 4;
+pub const X509v3_KU_CRL_SIGN: i32 = 2;
+pub const X509v3_KU_ENCIPHER_ONLY: i32 = 1;
+pub const X509v3_KU_DECIPHER_ONLY: i32 = 32768;
+pub const XKU_SSL_SERVER: i32 = 1;
+pub const XKU_SSL_CLIENT: i32 = 2;
+pub const XKU_SMIME: i32 = 4;
+pub const XKU_CODE_SIGN: i32 = 8;
+pub const XKU_SGC: i32 = 16;
+pub const XKU_OCSP_SIGN: i32 = 32;
+pub const XKU_TIMESTAMP: i32 = 64;
+pub const XKU_DVCS: i32 = 128;
+pub const XKU_ANYEKU: i32 = 256;
+pub const X509_SIG_INFO_VALID: i32 = 1;
+pub const X509_SIG_INFO_TLS: i32 = 2;
+pub const X509_CRL_VERSION_1: i32 = 0;
+pub const X509_CRL_VERSION_2: i32 = 1;
+pub const X509_REQ_VERSION_1: i32 = 0;
+pub const X509V3_ADD_OP_MASK: i32 = 15;
+pub const X509V3_ADD_DEFAULT: i32 = 0;
+pub const X509V3_ADD_APPEND: i32 = 1;
+pub const X509V3_ADD_REPLACE: i32 = 2;
+pub const X509V3_ADD_REPLACE_EXISTING: i32 = 3;
+pub const X509V3_ADD_KEEP_EXISTING: i32 = 4;
+pub const X509V3_ADD_DELETE: i32 = 5;
+pub const X509V3_ADD_SILENT: i32 = 16;
+pub const GEN_OTHERNAME: i32 = 0;
+pub const GEN_EMAIL: i32 = 1;
+pub const GEN_DNS: i32 = 2;
+pub const GEN_X400: i32 = 3;
+pub const GEN_DIRNAME: i32 = 4;
+pub const GEN_EDIPARTY: i32 = 5;
+pub const GEN_URI: i32 = 6;
+pub const GEN_IPADD: i32 = 7;
+pub const GEN_RID: i32 = 8;
+pub const X509_LU_NONE: i32 = 0;
+pub const X509_LU_X509: i32 = 1;
+pub const X509_LU_CRL: i32 = 2;
+pub const X509_LU_PKEY: i32 = 3;
+pub const X509_V_OK: i32 = 0;
+pub const X509_V_ERR_UNSPECIFIED: i32 = 1;
+pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: i32 = 2;
+pub const X509_V_ERR_UNABLE_TO_GET_CRL: i32 = 3;
+pub const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: i32 = 4;
+pub const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: i32 = 5;
+pub const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: i32 = 6;
+pub const X509_V_ERR_CERT_SIGNATURE_FAILURE: i32 = 7;
+pub const X509_V_ERR_CRL_SIGNATURE_FAILURE: i32 = 8;
+pub const X509_V_ERR_CERT_NOT_YET_VALID: i32 = 9;
+pub const X509_V_ERR_CERT_HAS_EXPIRED: i32 = 10;
+pub const X509_V_ERR_CRL_NOT_YET_VALID: i32 = 11;
+pub const X509_V_ERR_CRL_HAS_EXPIRED: i32 = 12;
+pub const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: i32 = 13;
+pub const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: i32 = 14;
+pub const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: i32 = 15;
+pub const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: i32 = 16;
+pub const X509_V_ERR_OUT_OF_MEM: i32 = 17;
+pub const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: i32 = 18;
+pub const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: i32 = 19;
+pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: i32 = 20;
+pub const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: i32 = 21;
+pub const X509_V_ERR_CERT_CHAIN_TOO_LONG: i32 = 22;
+pub const X509_V_ERR_CERT_REVOKED: i32 = 23;
+pub const X509_V_ERR_INVALID_CA: i32 = 24;
+pub const X509_V_ERR_PATH_LENGTH_EXCEEDED: i32 = 25;
+pub const X509_V_ERR_INVALID_PURPOSE: i32 = 26;
+pub const X509_V_ERR_CERT_UNTRUSTED: i32 = 27;
+pub const X509_V_ERR_CERT_REJECTED: i32 = 28;
+pub const X509_V_ERR_SUBJECT_ISSUER_MISMATCH: i32 = 29;
+pub const X509_V_ERR_AKID_SKID_MISMATCH: i32 = 30;
+pub const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: i32 = 31;
+pub const X509_V_ERR_KEYUSAGE_NO_CERTSIGN: i32 = 32;
+pub const X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: i32 = 33;
+pub const X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: i32 = 34;
+pub const X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: i32 = 35;
+pub const X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: i32 = 36;
+pub const X509_V_ERR_INVALID_NON_CA: i32 = 37;
+pub const X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: i32 = 38;
+pub const X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: i32 = 39;
+pub const X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: i32 = 40;
+pub const X509_V_ERR_INVALID_EXTENSION: i32 = 41;
+pub const X509_V_ERR_INVALID_POLICY_EXTENSION: i32 = 42;
+pub const X509_V_ERR_NO_EXPLICIT_POLICY: i32 = 43;
+pub const X509_V_ERR_DIFFERENT_CRL_SCOPE: i32 = 44;
+pub const X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: i32 = 45;
+pub const X509_V_ERR_UNNESTED_RESOURCE: i32 = 46;
+pub const X509_V_ERR_PERMITTED_VIOLATION: i32 = 47;
+pub const X509_V_ERR_EXCLUDED_VIOLATION: i32 = 48;
+pub const X509_V_ERR_SUBTREE_MINMAX: i32 = 49;
+pub const X509_V_ERR_APPLICATION_VERIFICATION: i32 = 50;
+pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: i32 = 51;
+pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: i32 = 52;
+pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: i32 = 53;
+pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR: i32 = 54;
+pub const X509_V_ERR_HOSTNAME_MISMATCH: i32 = 62;
+pub const X509_V_ERR_EMAIL_MISMATCH: i32 = 63;
+pub const X509_V_ERR_IP_ADDRESS_MISMATCH: i32 = 64;
+pub const X509_V_ERR_INVALID_CALL: i32 = 65;
+pub const X509_V_ERR_STORE_LOOKUP: i32 = 66;
+pub const X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS: i32 = 67;
+pub const X509_V_FLAG_CB_ISSUER_CHECK: i32 = 1;
+pub const X509_V_FLAG_USE_CHECK_TIME: i32 = 2;
+pub const X509_V_FLAG_CRL_CHECK: i32 = 4;
+pub const X509_V_FLAG_CRL_CHECK_ALL: i32 = 8;
+pub const X509_V_FLAG_IGNORE_CRITICAL: i32 = 16;
+pub const X509_V_FLAG_X509_STRICT: i32 = 0;
+pub const X509_V_FLAG_ALLOW_PROXY_CERTS: i32 = 64;
+pub const X509_V_FLAG_POLICY_CHECK: i32 = 128;
+pub const X509_V_FLAG_EXPLICIT_POLICY: i32 = 256;
+pub const X509_V_FLAG_INHIBIT_ANY: i32 = 512;
+pub const X509_V_FLAG_INHIBIT_MAP: i32 = 1024;
+pub const X509_V_FLAG_NOTIFY_POLICY: i32 = 2048;
+pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT: i32 = 4096;
+pub const X509_V_FLAG_USE_DELTAS: i32 = 8192;
+pub const X509_V_FLAG_CHECK_SS_SIGNATURE: i32 = 16384;
+pub const X509_V_FLAG_TRUSTED_FIRST: i32 = 32768;
+pub const X509_V_FLAG_PARTIAL_CHAIN: i32 = 524288;
+pub const X509_V_FLAG_NO_ALT_CHAINS: i32 = 1048576;
+pub const X509_V_FLAG_NO_CHECK_TIME: i32 = 2097152;
+pub const X509_CHECK_FLAG_NO_WILDCARDS: i32 = 2;
+pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: i32 = 32;
+pub const X509_PURPOSE_SSL_CLIENT: i32 = 1;
+pub const X509_PURPOSE_SSL_SERVER: i32 = 2;
+pub const X509_PURPOSE_NS_SSL_SERVER: i32 = 3;
+pub const X509_PURPOSE_SMIME_SIGN: i32 = 4;
+pub const X509_PURPOSE_SMIME_ENCRYPT: i32 = 5;
+pub const X509_PURPOSE_CRL_SIGN: i32 = 6;
+pub const X509_PURPOSE_ANY: i32 = 7;
+pub const X509_PURPOSE_OCSP_HELPER: i32 = 8;
+pub const X509_PURPOSE_TIMESTAMP_SIGN: i32 = 9;
+pub const X509_TRUST_COMPAT: i32 = 1;
+pub const X509_TRUST_SSL_CLIENT: i32 = 2;
+pub const X509_TRUST_SSL_SERVER: i32 = 3;
+pub const X509_TRUST_EMAIL: i32 = 4;
+pub const X509_TRUST_OBJECT_SIGN: i32 = 5;
+pub const X509_TRUST_OCSP_SIGN: i32 = 6;
+pub const X509_TRUST_OCSP_REQUEST: i32 = 7;
+pub const X509_TRUST_TSA: i32 = 8;
+pub const X509_FILETYPE_PEM: i32 = 1;
+pub const X509_FILETYPE_ASN1: i32 = 2;
+pub const X509_FILETYPE_DEFAULT: i32 = 3;
+pub const X509_L_FILE_LOAD: i32 = 1;
+pub const X509_L_ADD_DIR: i32 = 2;
+pub const X509_FLAG_COMPAT: i32 = 0;
+pub const X509_FLAG_NO_HEADER: i32 = 1;
+pub const X509_FLAG_NO_VERSION: i32 = 2;
+pub const X509_FLAG_NO_SERIAL: i32 = 4;
+pub const X509_FLAG_NO_SIGNAME: i32 = 8;
+pub const X509_FLAG_NO_ISSUER: i32 = 16;
+pub const X509_FLAG_NO_VALIDITY: i32 = 32;
+pub const X509_FLAG_NO_SUBJECT: i32 = 64;
+pub const X509_FLAG_NO_PUBKEY: i32 = 128;
+pub const X509_FLAG_NO_EXTENSIONS: i32 = 256;
+pub const X509_FLAG_NO_SIGDUMP: i32 = 512;
+pub const X509_FLAG_NO_AUX: i32 = 1024;
+pub const X509_FLAG_NO_ATTRIBUTES: i32 = 2048;
+pub const X509_FLAG_NO_IDS: i32 = 4096;
+pub const X509V3_EXT_UNKNOWN_MASK: i32 = 983040;
+pub const X509V3_EXT_DEFAULT: i32 = 0;
+pub const X509V3_EXT_ERROR_UNKNOWN: i32 = 65536;
+pub const X509V3_EXT_PARSE_UNKNOWN: i32 = 131072;
+pub const X509V3_EXT_DUMP_UNKNOWN: i32 = 196608;
+pub const XN_FLAG_COMPAT: i32 = 0;
+pub const XN_FLAG_SEP_MASK: i32 = 983040;
+pub const XN_FLAG_SEP_COMMA_PLUS: i32 = 65536;
+pub const XN_FLAG_SEP_CPLUS_SPC: i32 = 131072;
+pub const XN_FLAG_SEP_SPLUS_SPC: i32 = 196608;
+pub const XN_FLAG_SEP_MULTILINE: i32 = 262144;
+pub const XN_FLAG_DN_REV: i32 = 1048576;
+pub const XN_FLAG_FN_MASK: i32 = 6291456;
+pub const XN_FLAG_FN_SN: i32 = 0;
+pub const XN_FLAG_FN_LN: i32 = 2097152;
+pub const XN_FLAG_FN_OID: i32 = 4194304;
+pub const XN_FLAG_FN_NONE: i32 = 6291456;
+pub const XN_FLAG_SPC_EQ: i32 = 8388608;
+pub const XN_FLAG_DUMP_UNKNOWN_FIELDS: i32 = 16777216;
+pub const XN_FLAG_FN_ALIGN: i32 = 33554432;
+pub const XN_FLAG_RFC2253: i32 = 17892119;
+pub const XN_FLAG_ONELINE: i32 = 8520479;
+pub const XN_FLAG_MULTILINE: i32 = 44302342;
+pub const X509_TRUST_TRUSTED: i32 = 1;
+pub const X509_TRUST_REJECTED: i32 = 2;
+pub const X509_TRUST_UNTRUSTED: i32 = 3;
+pub const X509V3_EXT_MULTILINE: i32 = 4;
+pub const X509V3_CTX_TEST: i32 = 1;
+pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: i32 = 0;
+pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: i32 = 0;
+pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: i32 = 0;
+pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: i32 = 0;
+pub const NS_SSL_CLIENT: i32 = 128;
+pub const NS_SSL_SERVER: i32 = 64;
+pub const NS_SMIME: i32 = 32;
+pub const NS_OBJSIGN: i32 = 16;
+pub const NS_SSL_CA: i32 = 4;
+pub const NS_SMIME_CA: i32 = 2;
+pub const NS_OBJSIGN_CA: i32 = 1;
+pub const NS_ANY_CA: i32 = 7;
+pub const X509_V_FLAG_POLICY_MASK: i32 = 1920;
+pub const X509_R_AKID_MISMATCH: i32 = 100;
+pub const X509_R_BAD_PKCS7_VERSION: i32 = 101;
+pub const X509_R_BAD_X509_FILETYPE: i32 = 102;
+pub const X509_R_BASE64_DECODE_ERROR: i32 = 103;
+pub const X509_R_CANT_CHECK_DH_KEY: i32 = 104;
+pub const X509_R_CERT_ALREADY_IN_HASH_TABLE: i32 = 105;
+pub const X509_R_CRL_ALREADY_DELTA: i32 = 106;
+pub const X509_R_CRL_VERIFY_FAILURE: i32 = 107;
+pub const X509_R_IDP_MISMATCH: i32 = 108;
+pub const X509_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 109;
+pub const X509_R_INVALID_DIRECTORY: i32 = 110;
+pub const X509_R_INVALID_FIELD_NAME: i32 = 111;
+pub const X509_R_INVALID_PSS_PARAMETERS: i32 = 112;
+pub const X509_R_INVALID_TRUST: i32 = 113;
+pub const X509_R_ISSUER_MISMATCH: i32 = 114;
+pub const X509_R_KEY_TYPE_MISMATCH: i32 = 115;
+pub const X509_R_KEY_VALUES_MISMATCH: i32 = 116;
+pub const X509_R_LOADING_CERT_DIR: i32 = 117;
+pub const X509_R_LOADING_DEFAULTS: i32 = 118;
+pub const X509_R_NEWER_CRL_NOT_NEWER: i32 = 119;
+pub const X509_R_NOT_PKCS7_SIGNED_DATA: i32 = 120;
+pub const X509_R_NO_CERTIFICATES_INCLUDED: i32 = 121;
+pub const X509_R_NO_CERT_SET_FOR_US_TO_VERIFY: i32 = 122;
+pub const X509_R_NO_CRLS_INCLUDED: i32 = 123;
+pub const X509_R_NO_CRL_NUMBER: i32 = 124;
+pub const X509_R_PUBLIC_KEY_DECODE_ERROR: i32 = 125;
+pub const X509_R_PUBLIC_KEY_ENCODE_ERROR: i32 = 126;
+pub const X509_R_SHOULD_RETRY: i32 = 127;
+pub const X509_R_UNKNOWN_KEY_TYPE: i32 = 128;
+pub const X509_R_UNKNOWN_NID: i32 = 129;
+pub const X509_R_UNKNOWN_PURPOSE_ID: i32 = 130;
+pub const X509_R_UNKNOWN_TRUST_ID: i32 = 131;
+pub const X509_R_UNSUPPORTED_ALGORITHM: i32 = 132;
+pub const X509_R_WRONG_LOOKUP_TYPE: i32 = 133;
+pub const X509_R_WRONG_TYPE: i32 = 134;
+pub const X509_R_NAME_TOO_LONG: i32 = 135;
+pub const X509_R_INVALID_PARAMETER: i32 = 136;
+pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH: i32 = 137;
+pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER: i32 = 138;
+pub const X509_R_INVALID_FIELD_FOR_VERSION: i32 = 139;
+pub const X509_R_INVALID_VERSION: i32 = 140;
+pub const X509_R_NO_CERTIFICATE_FOUND: i32 = 141;
+pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND: i32 = 142;
+pub const X509_R_NO_CRL_FOUND: i32 = 143;
+pub const X509_R_INVALID_POLICY_EXTENSION: i32 = 144;
+pub const X509_R_UNKNOWN_SIGID_ALGS: i32 = 145;
+pub const CRL_REASON_NONE: i32 = -1;
+pub const CRL_REASON_UNSPECIFIED: i32 = 0;
+pub const CRL_REASON_KEY_COMPROMISE: i32 = 1;
+pub const CRL_REASON_CA_COMPROMISE: i32 = 2;
+pub const CRL_REASON_AFFILIATION_CHANGED: i32 = 3;
+pub const CRL_REASON_SUPERSEDED: i32 = 4;
+pub const CRL_REASON_CESSATION_OF_OPERATION: i32 = 5;
+pub const CRL_REASON_CERTIFICATE_HOLD: i32 = 6;
+pub const CRL_REASON_REMOVE_FROM_CRL: i32 = 8;
+pub const CRL_REASON_PRIVILEGE_WITHDRAWN: i32 = 9;
+pub const CRL_REASON_AA_COMPROMISE: i32 = 10;
+pub const KU_DIGITAL_SIGNATURE: i32 = 128;
+pub const KU_NON_REPUDIATION: i32 = 64;
+pub const KU_KEY_ENCIPHERMENT: i32 = 32;
+pub const KU_DATA_ENCIPHERMENT: i32 = 16;
+pub const KU_KEY_AGREEMENT: i32 = 8;
+pub const KU_KEY_CERT_SIGN: i32 = 4;
+pub const KU_CRL_SIGN: i32 = 2;
+pub const KU_ENCIPHER_ONLY: i32 = 1;
+pub const KU_DECIPHER_ONLY: i32 = 32768;
+pub const OCSP_REVOKED_STATUS_NOSTATUS: i32 = -1;
+pub const OCSP_REVOKED_STATUS_UNSPECIFIED: i32 = 0;
+pub const OCSP_REVOKED_STATUS_KEYCOMPROMISE: i32 = 1;
+pub const OCSP_REVOKED_STATUS_CACOMPROMISE: i32 = 2;
+pub const OCSP_REVOKED_STATUS_AFFILIATIONCHANGED: i32 = 3;
+pub const OCSP_REVOKED_STATUS_SUPERSEDED: i32 = 4;
+pub const OCSP_REVOKED_STATUS_CESSATIONOFOPERATION: i32 = 5;
+pub const OCSP_REVOKED_STATUS_CERTIFICATEHOLD: i32 = 6;
+pub const OCSP_REVOKED_STATUS_REMOVEFROMCRL: i32 = 8;
+pub const OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN: i32 = 9;
+pub const OCSP_REVOKED_STATUS_AACOMPROMISE: i32 = 10;
+pub const OCSP_NOCERTS: i32 = 1;
+pub const OCSP_NOINTERN: i32 = 2;
+pub const OCSP_NOCHAIN: i32 = 8;
+pub const OCSP_NOVERIFY: i32 = 16;
+pub const OCSP_NOEXPLICIT: i32 = 32;
+pub const OCSP_TRUSTOTHER: i32 = 512;
+pub const OCSP_RESPID_KEY: i32 = 1024;
+pub const OCSP_NOTIME: i32 = 2048;
+pub const OCSP_NOSIGS: i32 = 0;
+pub const OCSP_NOCASIGN: i32 = 0;
+pub const OCSP_NODELEGATED: i32 = 0;
+pub const OCSP_NOCHECKS: i32 = 0;
+pub const OCSP_RESPONSE_STATUS_SUCCESSFUL: i32 = 0;
+pub const OCSP_RESPONSE_STATUS_MALFORMEDREQUEST: i32 = 1;
+pub const OCSP_RESPONSE_STATUS_INTERNALERROR: i32 = 2;
+pub const OCSP_RESPONSE_STATUS_TRYLATER: i32 = 3;
+pub const OCSP_RESPONSE_STATUS_SIGREQUIRED: i32 = 5;
+pub const OCSP_RESPONSE_STATUS_UNAUTHORIZED: i32 = 6;
+pub const V_OCSP_RESPID_NAME: i32 = 0;
+pub const V_OCSP_RESPID_KEY: i32 = 1;
+pub const V_OCSP_CERTSTATUS_GOOD: i32 = 0;
+pub const V_OCSP_CERTSTATUS_REVOKED: i32 = 1;
+pub const V_OCSP_CERTSTATUS_UNKNOWN: i32 = 2;
+pub const OCSP_NONCE_EQUAL: i32 = 1;
+pub const OCSP_NONCE_BOTH_ABSENT: i32 = 2;
+pub const OCSP_NONCE_RESPONSE_ONLY: i32 = 3;
+pub const OCSP_NONCE_NOT_EQUAL: i32 = 0;
+pub const OCSP_NONCE_REQUEST_ONLY: i32 = -1;
+pub const OCSP_R_CERTIFICATE_VERIFY_ERROR: i32 = 101;
+pub const OCSP_R_DIGEST_ERR: i32 = 102;
+pub const OCSP_R_MISSING_OCSPSIGNING_USAGE: i32 = 103;
+pub const OCSP_R_NOT_BASIC_RESPONSE: i32 = 104;
+pub const OCSP_R_NO_CERTIFICATES_IN_CHAIN: i32 = 105;
+pub const OCSP_R_NO_RESPONSE_DATA: i32 = 108;
+pub const OCSP_R_NO_REVOKED_TIME: i32 = 109;
+pub const OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 110;
+pub const OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA: i32 = 111;
+pub const OCSP_R_ROOT_CA_NOT_TRUSTED: i32 = 112;
+pub const OCSP_R_SERVER_RESPONSE_PARSE_ERROR: i32 = 115;
+pub const OCSP_R_SIGNATURE_FAILURE: i32 = 117;
+pub const OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 118;
+pub const OCSP_R_UNKNOWN_MESSAGE_DIGEST: i32 = 119;
+pub const OCSP_R_UNKNOWN_NID: i32 = 120;
+pub const OCSP_R_ERROR_PARSING_URL: i32 = 121;
+pub const OCSP_R_ERROR_IN_NEXTUPDATE_FIELD: i32 = 122;
+pub const OCSP_R_ERROR_IN_THISUPDATE_FIELD: i32 = 123;
+pub const OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE: i32 = 124;
+pub const OCSP_R_STATUS_EXPIRED: i32 = 125;
+pub const OCSP_R_STATUS_NOT_YET_VALID: i32 = 126;
+pub const OCSP_R_STATUS_TOO_OLD: i32 = 127;
+pub const OCSP_R_REQUEST_NOT_SIGNED: i32 = 128;
+pub const OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE: i32 = 129;
+pub const OCSP_R_NO_SIGNER_KEY: i32 = 130;
+pub const OCSP_R_OCSP_REQUEST_DUPLICATE_SIGNATURE: i32 = 131;
+pub const OCSP_R_UNKNOWN_FIELD_VALUE: i32 = 132;
+pub const PEM_BUFSIZE: i32 = 1024;
+pub const PEM_STRING_X509_OLD: &[u8; 17] = b"X509 CERTIFICATE\0";
+pub const PEM_STRING_X509: &[u8; 12] = b"CERTIFICATE\0";
+pub const PEM_STRING_X509_PAIR: &[u8; 17] = b"CERTIFICATE PAIR\0";
+pub const PEM_STRING_X509_TRUSTED: &[u8; 20] = b"TRUSTED CERTIFICATE\0";
+pub const PEM_STRING_X509_REQ_OLD: &[u8; 24] = b"NEW CERTIFICATE REQUEST\0";
+pub const PEM_STRING_X509_REQ: &[u8; 20] = b"CERTIFICATE REQUEST\0";
+pub const PEM_STRING_X509_CRL: &[u8; 9] = b"X509 CRL\0";
+pub const PEM_STRING_EVP_PKEY: &[u8; 16] = b"ANY PRIVATE KEY\0";
+pub const PEM_STRING_PUBLIC: &[u8; 11] = b"PUBLIC KEY\0";
+pub const PEM_STRING_RSA: &[u8; 16] = b"RSA PRIVATE KEY\0";
+pub const PEM_STRING_RSA_PUBLIC: &[u8; 15] = b"RSA PUBLIC KEY\0";
+pub const PEM_STRING_DSA: &[u8; 16] = b"DSA PRIVATE KEY\0";
+pub const PEM_STRING_DSA_PUBLIC: &[u8; 15] = b"DSA PUBLIC KEY\0";
+pub const PEM_STRING_EC: &[u8; 15] = b"EC PRIVATE KEY\0";
+pub const PEM_STRING_PKCS7: &[u8; 6] = b"PKCS7\0";
+pub const PEM_STRING_PKCS7_SIGNED: &[u8; 20] = b"PKCS #7 SIGNED DATA\0";
+pub const PEM_STRING_PKCS8: &[u8; 22] = b"ENCRYPTED PRIVATE KEY\0";
+pub const PEM_STRING_PKCS8INF: &[u8; 12] = b"PRIVATE KEY\0";
+pub const PEM_STRING_DHPARAMS: &[u8; 14] = b"DH PARAMETERS\0";
+pub const PEM_STRING_SSL_SESSION: &[u8; 23] = b"SSL SESSION PARAMETERS\0";
+pub const PEM_STRING_DSAPARAMS: &[u8; 15] = b"DSA PARAMETERS\0";
+pub const PEM_STRING_ECDSA_PUBLIC: &[u8; 17] = b"ECDSA PUBLIC KEY\0";
+pub const PEM_STRING_ECPARAMETERS: &[u8; 14] = b"EC PARAMETERS\0";
+pub const PEM_STRING_ECPRIVATEKEY: &[u8; 15] = b"EC PRIVATE KEY\0";
+pub const PEM_STRING_PARAMETERS: &[u8; 11] = b"PARAMETERS\0";
+pub const PEM_STRING_CMS: &[u8; 4] = b"CMS\0";
+pub const PEM_TYPE_ENCRYPTED: i32 = 10;
+pub const PEM_TYPE_MIC_ONLY: i32 = 20;
+pub const PEM_TYPE_MIC_CLEAR: i32 = 30;
+pub const PEM_TYPE_CLEAR: i32 = 40;
+pub const PEM_R_BAD_BASE64_DECODE: i32 = 100;
+pub const PEM_R_BAD_DECRYPT: i32 = 101;
+pub const PEM_R_BAD_END_LINE: i32 = 102;
+pub const PEM_R_BAD_IV_CHARS: i32 = 103;
+pub const PEM_R_BAD_PASSWORD_READ: i32 = 104;
+pub const PEM_R_CIPHER_IS_NULL: i32 = 105;
+pub const PEM_R_ERROR_CONVERTING_PRIVATE_KEY: i32 = 106;
+pub const PEM_R_NOT_DEK_INFO: i32 = 107;
+pub const PEM_R_NOT_ENCRYPTED: i32 = 108;
+pub const PEM_R_NOT_PROC_TYPE: i32 = 109;
+pub const PEM_R_NO_START_LINE: i32 = 110;
+pub const PEM_R_READ_KEY: i32 = 111;
+pub const PEM_R_SHORT_HEADER: i32 = 112;
+pub const PEM_R_UNSUPPORTED_CIPHER: i32 = 113;
+pub const PEM_R_UNSUPPORTED_ENCRYPTION: i32 = 114;
+pub const PEM_R_PROBLEMS_GETTING_PASSWORD: i32 = 115;
+pub const PKCS12_DEFAULT_ITER: i32 = 2048;
+pub const PKCS8_R_BAD_PKCS12_DATA: i32 = 100;
+pub const PKCS8_R_BAD_PKCS12_VERSION: i32 = 101;
+pub const PKCS8_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 102;
+pub const PKCS8_R_CRYPT_ERROR: i32 = 103;
+pub const PKCS8_R_DECODE_ERROR: i32 = 104;
+pub const PKCS8_R_ENCODE_ERROR: i32 = 105;
+pub const PKCS8_R_ENCRYPT_ERROR: i32 = 106;
+pub const PKCS8_R_ERROR_SETTING_CIPHER_PARAMS: i32 = 107;
+pub const PKCS8_R_INCORRECT_PASSWORD: i32 = 108;
+pub const PKCS8_R_KEYGEN_FAILURE: i32 = 109;
+pub const PKCS8_R_KEY_GEN_ERROR: i32 = 110;
+pub const PKCS8_R_METHOD_NOT_SUPPORTED: i32 = 111;
+pub const PKCS8_R_MISSING_MAC: i32 = 112;
+pub const PKCS8_R_MULTIPLE_PRIVATE_KEYS_IN_PKCS12: i32 = 113;
+pub const PKCS8_R_PKCS12_PUBLIC_KEY_INTEGRITY_NOT_SUPPORTED: i32 = 114;
+pub const PKCS8_R_PKCS12_TOO_DEEPLY_NESTED: i32 = 115;
+pub const PKCS8_R_PRIVATE_KEY_DECODE_ERROR: i32 = 116;
+pub const PKCS8_R_PRIVATE_KEY_ENCODE_ERROR: i32 = 117;
+pub const PKCS8_R_TOO_LONG: i32 = 118;
+pub const PKCS8_R_UNKNOWN_ALGORITHM: i32 = 119;
+pub const PKCS8_R_UNKNOWN_CIPHER: i32 = 120;
+pub const PKCS8_R_UNKNOWN_CIPHER_ALGORITHM: i32 = 121;
+pub const PKCS8_R_UNKNOWN_DIGEST: i32 = 122;
+pub const PKCS8_R_UNKNOWN_HASH: i32 = 123;
+pub const PKCS8_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM: i32 = 124;
+pub const PKCS8_R_UNSUPPORTED_KEYLENGTH: i32 = 125;
+pub const PKCS8_R_UNSUPPORTED_SALT_TYPE: i32 = 126;
+pub const PKCS8_R_UNSUPPORTED_CIPHER: i32 = 127;
+pub const PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION: i32 = 128;
+pub const PKCS8_R_BAD_ITERATION_COUNT: i32 = 129;
+pub const PKCS8_R_UNSUPPORTED_PRF: i32 = 130;
+pub const PKCS8_R_INVALID_CHARACTERS: i32 = 131;
+pub const PKCS8_R_UNSUPPORTED_OPTIONS: i32 = 132;
+pub const PKCS8_R_AMBIGUOUS_FRIENDLY_NAME: i32 = 133;
+pub const PKCS12_R_MAC_VERIFY_FAILURE: i32 = 108;
+pub const RIPEMD160_CBLOCK: i32 = 64;
+pub const RIPEMD160_LBLOCK: i32 = 16;
+pub const RIPEMD160_DIGEST_LENGTH: i32 = 20;
+pub const TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE: i32 = 512;
+pub const TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE: i32 = 512;
+pub const TRUST_TOKEN_R_KEYGEN_FAILURE: i32 = 100;
+pub const TRUST_TOKEN_R_BUFFER_TOO_SMALL: i32 = 101;
+pub const TRUST_TOKEN_R_OVER_BATCHSIZE: i32 = 102;
+pub const TRUST_TOKEN_R_DECODE_ERROR: i32 = 103;
+pub const TRUST_TOKEN_R_SRR_SIGNATURE_ERROR: i32 = 104;
+pub const TRUST_TOKEN_R_DECODE_FAILURE: i32 = 105;
+pub const TRUST_TOKEN_R_INVALID_METADATA: i32 = 106;
+pub const TRUST_TOKEN_R_TOO_MANY_KEYS: i32 = 107;
+pub const TRUST_TOKEN_R_NO_KEYS_CONFIGURED: i32 = 108;
+pub const TRUST_TOKEN_R_INVALID_KEY_ID: i32 = 109;
+pub const TRUST_TOKEN_R_INVALID_TOKEN: i32 = 110;
+pub const TRUST_TOKEN_R_BAD_VALIDITY_CHECK: i32 = 111;
+pub const TRUST_TOKEN_R_NO_SRR_KEY_CONFIGURED: i32 = 112;
+pub const TRUST_TOKEN_R_INVALID_METADATA_KEY: i32 = 113;
+pub const TRUST_TOKEN_R_INVALID_PROOF: i32 = 114;
+pub type time_t = ::std::os::raw::c_long;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pthread_rwlock_t {
+    pub __u: pthread_rwlock_t__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pthread_rwlock_t__bindgen_ty_1 {
+    pub __i: [::std::os::raw::c_int; 14usize],
+    pub __vi: [::std::os::raw::c_int; 14usize],
+    pub __p: [*mut ::std::os::raw::c_void; 7usize],
+}
+#[test]
+fn bindgen_test_layout_pthread_rwlock_t__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pthread_rwlock_t__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pthread_rwlock_t__bindgen_ty_1>(),
+        56usize,
+        concat!("Size of: ", stringify!(pthread_rwlock_t__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pthread_rwlock_t__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pthread_rwlock_t__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__i) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pthread_rwlock_t__bindgen_ty_1),
+            "::",
+            stringify!(__i)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__vi) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pthread_rwlock_t__bindgen_ty_1),
+            "::",
+            stringify!(__vi)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__p) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pthread_rwlock_t__bindgen_ty_1),
+            "::",
+            stringify!(__p)
+        )
+    );
+}
+impl Default for pthread_rwlock_t__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[test]
+fn bindgen_test_layout_pthread_rwlock_t() {
+    const UNINIT: ::std::mem::MaybeUninit<pthread_rwlock_t> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pthread_rwlock_t>(),
+        56usize,
+        concat!("Size of: ", stringify!(pthread_rwlock_t))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pthread_rwlock_t>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pthread_rwlock_t))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__u) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pthread_rwlock_t),
+            "::",
+            stringify!(__u)
+        )
+    );
+}
+impl Default for pthread_rwlock_t {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type ossl_ssize_t = isize;
+pub type CBS_ASN1_TAG = u32;
+pub type CRYPTO_THREADID = ::std::os::raw::c_int;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct asn1_null_st {
+    _unused: [u8; 0],
+}
+pub type ASN1_NULL = asn1_null_st;
+pub type ASN1_BOOLEAN = ::std::os::raw::c_int;
+pub type ASN1_ITEM = ASN1_ITEM_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct asn1_object_st {
+    _unused: [u8; 0],
+}
+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 BASIC_CONSTRAINTS = BASIC_CONSTRAINTS_st;
+pub type DIST_POINT = DIST_POINT_st;
+pub type DSA_SIG = DSA_SIG_st;
+pub type GENERAL_NAME = GENERAL_NAME_st;
+pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
+pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
+pub type NETSCAPE_SPKAC = Netscape_spkac_st;
+pub type NETSCAPE_SPKI = Netscape_spki_st;
+pub type RIPEMD160_CTX = RIPEMD160state_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_VERIFY_PARAM_st {
+    _unused: [u8; 0],
+}
+pub type X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
+pub type X509_ALGOR = X509_algor_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_crl_st {
+    _unused: [u8; 0],
+}
+pub type X509_CRL = X509_crl_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_extension_st {
+    _unused: [u8; 0],
+}
+pub type X509_EXTENSION = X509_extension_st;
+pub type X509_INFO = X509_info_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_name_entry_st {
+    _unused: [u8; 0],
+}
+pub type X509_NAME_ENTRY = X509_name_entry_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_name_st {
+    _unused: [u8; 0],
+}
+pub type X509_NAME = X509_name_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_pubkey_st {
+    _unused: [u8; 0],
+}
+pub type X509_PUBKEY = X509_pubkey_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_req_st {
+    _unused: [u8; 0],
+}
+pub type X509_REQ = X509_req_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_sig_info_st {
+    _unused: [u8; 0],
+}
+pub type X509_SIG_INFO = x509_sig_info_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct X509_sig_st {
+    _unused: [u8; 0],
+}
+pub type X509_SIG = X509_sig_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 BLAKE2B_CTX = blake2b_state_st;
+pub type BN_GENCB = bn_gencb_st;
+pub type BN_MONT_CTX = bn_mont_ctx_st;
+pub type BUF_MEM = buf_mem_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cast_key_st {
+    _unused: [u8; 0],
+}
+pub type CAST_KEY = cast_key_st;
+pub type CBB = cbb_st;
+pub type CBS = cbs_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cmac_ctx_st {
+    _unused: [u8; 0],
+}
+pub type CMAC_CTX = cmac_ctx_st;
+pub type CONF = conf_st;
+pub type CONF_VALUE = conf_value_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;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ctr_drbg_state_st {
+    _unused: [u8; 0],
+}
+pub type CTR_DRBG_STATE = ctr_drbg_state_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dh_st {
+    _unused: [u8; 0],
+}
+pub type DH = dh_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dsa_st {
+    _unused: [u8; 0],
+}
+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;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ec_key_method_st {
+    _unused: [u8; 0],
+}
+pub type EC_KEY_METHOD = ec_key_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_AEAD_CTX = evp_aead_ctx_st;
+pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_cipher_st {
+    _unused: [u8; 0],
+}
+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_hpke_aead_st {
+    _unused: [u8; 0],
+}
+pub type EVP_HPKE_AEAD = evp_hpke_aead_st;
+pub type EVP_HPKE_CTX = evp_hpke_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_hpke_kdf_st {
+    _unused: [u8; 0],
+}
+pub type EVP_HPKE_KDF = evp_hpke_kdf_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_hpke_kem_st {
+    _unused: [u8; 0],
+}
+pub type EVP_HPKE_KEM = evp_hpke_kem_st;
+pub type EVP_HPKE_KEY = evp_hpke_key_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_kem_st {
+    _unused: [u8; 0],
+}
+pub type EVP_KEM = evp_kem_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct kem_key_st {
+    _unused: [u8; 0],
+}
+pub type KEM_KEY = kem_key_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_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_st {
+    _unused: [u8; 0],
+}
+pub type EVP_PKEY = evp_pkey_st;
+pub type HMAC_CTX = hmac_ctx_st;
+pub type MD4_CTX = md4_state_st;
+pub type MD5_CTX = md5_state_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pqdsa_key_st {
+    _unused: [u8; 0],
+}
+pub type PQDSA_KEY = pqdsa_key_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_req_ctx_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_REQ_CTX = ocsp_req_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;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pkcs7_digest_st {
+    _unused: [u8; 0],
+}
+pub type PKCS7_DIGEST = pkcs7_digest_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pkcs7_enc_content_st {
+    _unused: [u8; 0],
+}
+pub type PKCS7_ENC_CONTENT = pkcs7_enc_content_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pkcs7_encrypt_st {
+    _unused: [u8; 0],
+}
+pub type PKCS7_ENCRYPT = pkcs7_encrypt_st;
+pub type PKCS7_ENVELOPE = pkcs7_envelope_st;
+pub type PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st;
+pub type PKCS7_RECIP_INFO = pkcs7_recip_info_st;
+pub type PKCS7_SIGN_ENVELOPE = pkcs7_sign_envelope_st;
+pub type PKCS7_SIGNED = pkcs7_signed_st;
+pub type PKCS7_SIGNER_INFO = pkcs7_signer_info_st;
+pub type PKCS7 = pkcs7_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pkcs12_st {
+    _unused: [u8; 0],
+}
+pub type PKCS12 = pkcs12_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pkcs8_priv_key_info_st {
+    _unused: [u8; 0],
+}
+pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
+pub type X509_PKEY = private_key_st;
+pub type RAND_METHOD = rand_meth_st;
+pub type RC4_KEY = rc4_key_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rsa_meth_st {
+    _unused: [u8; 0],
+}
+pub type RSA_METHOD = rsa_meth_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rsassa_pss_params_st {
+    _unused: [u8; 0],
+}
+pub type RSASSA_PSS_PARAMS = rsassa_pss_params_st;
+pub type RSA_PSS_PARAMS = rsa_pss_params_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rsa_st {
+    _unused: [u8; 0],
+}
+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 spake2_ctx_st {
+    _unused: [u8; 0],
+}
+pub type SPAKE2_CTX = spake2_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct srtp_protection_profile_st {
+    _unused: [u8; 0],
+}
+pub type SRTP_PROTECTION_PROFILE = srtp_protection_profile_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_cipher_st {
+    _unused: [u8; 0],
+}
+pub type SSL_CIPHER = ssl_cipher_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_ctx_st {
+    _unused: [u8; 0],
+}
+pub type SSL_CTX = ssl_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_early_callback_ctx {
+    _unused: [u8; 0],
+}
+pub type SSL_CLIENT_HELLO = ssl_early_callback_ctx;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_ech_keys_st {
+    _unused: [u8; 0],
+}
+pub type SSL_ECH_KEYS = ssl_ech_keys_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_method_st {
+    _unused: [u8; 0],
+}
+pub type SSL_METHOD = ssl_method_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_private_key_method_st {
+    _unused: [u8; 0],
+}
+pub type SSL_PRIVATE_KEY_METHOD = ssl_private_key_method_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_quic_method_st {
+    _unused: [u8; 0],
+}
+pub type SSL_QUIC_METHOD = ssl_quic_method_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ssl_session_st {
+    _unused: [u8; 0],
+}
+pub type SSL_SESSION = ssl_session_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 ssl_ticket_aead_method_st {
+    _unused: [u8; 0],
+}
+pub type SSL_TICKET_AEAD_METHOD = ssl_ticket_aead_method_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct st_ERR_FNS {
+    _unused: [u8; 0],
+}
+pub type ERR_FNS = st_ERR_FNS;
+pub type TRUST_TOKEN = trust_token_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct trust_token_client_st {
+    _unused: [u8; 0],
+}
+pub type TRUST_TOKEN_CLIENT = trust_token_client_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct trust_token_issuer_st {
+    _unused: [u8; 0],
+}
+pub type TRUST_TOKEN_ISSUER = trust_token_issuer_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct trust_token_method_st {
+    _unused: [u8; 0],
+}
+pub type TRUST_TOKEN_METHOD = trust_token_method_st;
+pub type X509V3_CTX = v3_ext_ctx;
+pub type X509V3_EXT_METHOD = v3_ext_method;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_attributes_st {
+    _unused: [u8; 0],
+}
+pub type X509_ATTRIBUTE = x509_attributes_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_lookup_st {
+    _unused: [u8; 0],
+}
+pub type X509_LOOKUP = x509_lookup_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_lookup_method_st {
+    _unused: [u8; 0],
+}
+pub type X509_LOOKUP_METHOD = x509_lookup_method_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_object_st {
+    _unused: [u8; 0],
+}
+pub type X509_OBJECT = x509_object_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_revoked_st {
+    _unused: [u8; 0],
+}
+pub type X509_REVOKED = x509_revoked_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_st {
+    _unused: [u8; 0],
+}
+pub type X509 = x509_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_store_ctx_st {
+    _unused: [u8; 0],
+}
+pub type X509_STORE_CTX = x509_store_ctx_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x509_store_st {
+    _unused: [u8; 0],
+}
+pub type X509_STORE = x509_store_st;
+pub type X509_TRUST = x509_trust_st;
+pub type OPENSSL_BLOCK = *mut ::std::os::raw::c_void;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct aes_key_st {
+    pub rd_key: [u32; 60usize],
+    pub rounds: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_aes_key_st() {
+    const UNINIT: ::std::mem::MaybeUninit<aes_key_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<aes_key_st>(),
+        244usize,
+        concat!("Size of: ", stringify!(aes_key_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<aes_key_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(aes_key_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rd_key) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(aes_key_st),
+            "::",
+            stringify!(rd_key)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rounds) as usize - ptr as usize },
+        240usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(aes_key_st),
+            "::",
+            stringify!(rounds)
+        )
+    );
+}
+impl Default for aes_key_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type AES_KEY = aes_key_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_set_encrypt_key"]
+    pub fn AES_set_encrypt_key(
+        key: *const u8,
+        bits: ::std::os::raw::c_uint,
+        aeskey: *mut AES_KEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_set_decrypt_key"]
+    pub fn AES_set_decrypt_key(
+        key: *const u8,
+        bits: ::std::os::raw::c_uint,
+        aeskey: *mut AES_KEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_encrypt"]
+    pub fn AES_encrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_decrypt"]
+    pub fn AES_decrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_ctr128_encrypt"]
+    pub fn AES_ctr128_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        len: usize,
+        key: *const AES_KEY,
+        ivec: *mut u8,
+        ecount_buf: *mut u8,
+        num: *mut ::std::os::raw::c_uint,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_ecb_encrypt"]
+    pub fn AES_ecb_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        key: *const AES_KEY,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_cbc_encrypt"]
+    pub fn AES_cbc_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        len: usize,
+        key: *const AES_KEY,
+        ivec: *mut u8,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_ofb128_encrypt"]
+    pub fn AES_ofb128_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        len: usize,
+        key: *const AES_KEY,
+        ivec: *mut u8,
+        num: *mut ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_cfb1_encrypt"]
+    pub fn AES_cfb1_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        bits: usize,
+        key: *const AES_KEY,
+        ivec: *mut u8,
+        num: *mut ::std::os::raw::c_int,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_cfb8_encrypt"]
+    pub fn AES_cfb8_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        len: usize,
+        key: *const AES_KEY,
+        ivec: *mut u8,
+        num: *mut ::std::os::raw::c_int,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_cfb128_encrypt"]
+    pub fn AES_cfb128_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        len: usize,
+        key: *const AES_KEY,
+        ivec: *mut u8,
+        num: *mut ::std::os::raw::c_int,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_wrap_key"]
+    pub fn AES_wrap_key(
+        key: *const AES_KEY,
+        iv: *const u8,
+        out: *mut u8,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_unwrap_key"]
+    pub fn AES_unwrap_key(
+        key: *const AES_KEY,
+        iv: *const u8,
+        out: *mut u8,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_wrap_key_padded"]
+    pub fn AES_wrap_key_padded(
+        key: *const AES_KEY,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out: usize,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_unwrap_key_padded"]
+    pub fn AES_unwrap_key_padded(
+        key: *const AES_KEY,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out: usize,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct tm {
+    pub tm_sec: ::std::os::raw::c_int,
+    pub tm_min: ::std::os::raw::c_int,
+    pub tm_hour: ::std::os::raw::c_int,
+    pub tm_mday: ::std::os::raw::c_int,
+    pub tm_mon: ::std::os::raw::c_int,
+    pub tm_year: ::std::os::raw::c_int,
+    pub tm_wday: ::std::os::raw::c_int,
+    pub tm_yday: ::std::os::raw::c_int,
+    pub tm_isdst: ::std::os::raw::c_int,
+    pub tm_gmtoff: ::std::os::raw::c_long,
+    pub tm_zone: *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_tm() {
+    const UNINIT: ::std::mem::MaybeUninit<tm> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<tm>(),
+        56usize,
+        concat!("Size of: ", stringify!(tm))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<tm>(),
+        8usize,
+        concat!("Alignment of ", stringify!(tm))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_sec)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_min)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_hour)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_mday)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_mon)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_year)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_wday)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_yday)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_isdst)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_gmtoff)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_zone)
+        )
+    );
+}
+impl Default for tm {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _IO_FILE {
+    _unused: [u8; 0],
+}
+pub type FILE = _IO_FILE;
+pub type va_list = __builtin_va_list;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<buf_mem_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).length) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(buf_mem_st),
+            "::",
+            stringify!(length)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(buf_mem_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(buf_mem_st),
+            "::",
+            stringify!(max)
+        )
+    );
+}
+impl Default for buf_mem_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_MEM_new"]
+    pub fn BUF_MEM_new() -> *mut BUF_MEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_MEM_free"]
+    pub fn BUF_MEM_free(buf: *mut BUF_MEM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_MEM_reserve"]
+    pub fn BUF_MEM_reserve(buf: *mut BUF_MEM, cap: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_MEM_grow"]
+    pub fn BUF_MEM_grow(buf: *mut BUF_MEM, len: usize) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_MEM_grow_clean"]
+    pub fn BUF_MEM_grow_clean(buf: *mut BUF_MEM, len: usize) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_MEM_append"]
+    pub fn BUF_MEM_append(
+        buf: *mut BUF_MEM,
+        in_: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_strdup"]
+    pub fn BUF_strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_strnlen"]
+    pub fn BUF_strnlen(str_: *const ::std::os::raw::c_char, max_len: usize) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_strndup"]
+    pub fn BUF_strndup(
+        str_: *const ::std::os::raw::c_char,
+        size: usize,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_memdup"]
+    pub fn BUF_memdup(
+        data: *const ::std::os::raw::c_void,
+        size: usize,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_strlcpy"]
+    pub fn BUF_strlcpy(
+        dst: *mut ::std::os::raw::c_char,
+        src: *const ::std::os::raw::c_char,
+        dst_size: usize,
+    ) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BUF_strlcat"]
+    pub fn BUF_strlcat(
+        dst: *mut ::std::os::raw::c_char,
+        src: *const ::std::os::raw::c_char,
+        dst_size: usize,
+    ) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA1_Init"]
+    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA1_Update"]
+    pub fn SHA1_Update(
+        sha: *mut SHA_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA1_Final"]
+    pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA1"]
+    pub fn SHA1(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA1_Transform"]
+    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct sha_state_st {
+    pub h: [u32; 5usize],
+    pub Nl: u32,
+    pub Nh: u32,
+    pub data: [u8; 64usize],
+    pub num: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_sha_state_st() {
+    const UNINIT: ::std::mem::MaybeUninit<sha_state_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).h) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st),
+            "::",
+            stringify!(h)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st),
+            "::",
+            stringify!(Nl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st),
+            "::",
+            stringify!(Nh)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
+        92usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha_state_st),
+            "::",
+            stringify!(num)
+        )
+    );
+}
+impl Default for sha_state_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA224_Init"]
+    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA224_Update"]
+    pub fn SHA224_Update(
+        sha: *mut SHA256_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA224_Final"]
+    pub fn SHA224_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA224"]
+    pub fn SHA224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA256_Init"]
+    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA256_Update"]
+    pub fn SHA256_Update(
+        sha: *mut SHA256_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA256_Final"]
+    pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA256"]
+    pub fn SHA256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA256_Transform"]
+    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA256_TransformBlocks"]
+    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<sha256_state_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).h) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha256_state_st),
+            "::",
+            stringify!(h)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha256_state_st),
+            "::",
+            stringify!(Nl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha256_state_st),
+            "::",
+            stringify!(Nh)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha256_state_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
+        104usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha256_state_st),
+            "::",
+            stringify!(num)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
+        108usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha256_state_st),
+            "::",
+            stringify!(md_len)
+        )
+    );
+}
+impl Default for sha256_state_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA384_Init"]
+    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA384_Update"]
+    pub fn SHA384_Update(
+        sha: *mut SHA512_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA384_Final"]
+    pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA384"]
+    pub fn SHA384(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_Init"]
+    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_Update"]
+    pub fn SHA512_Update(
+        sha: *mut SHA512_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_Final"]
+    pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512"]
+    pub fn SHA512(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_Transform"]
+    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct sha512_state_st {
+    pub h: [u64; 8usize],
+    pub Nl: u64,
+    pub Nh: u64,
+    pub p: [u8; 128usize],
+    pub num: ::std::os::raw::c_uint,
+    pub md_len: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_sha512_state_st() {
+    const UNINIT: ::std::mem::MaybeUninit<sha512_state_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).h) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha512_state_st),
+            "::",
+            stringify!(h)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha512_state_st),
+            "::",
+            stringify!(Nl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha512_state_st),
+            "::",
+            stringify!(Nh)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha512_state_st),
+            "::",
+            stringify!(p)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
+        208usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha512_state_st),
+            "::",
+            stringify!(num)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
+        212usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sha512_state_st),
+            "::",
+            stringify!(md_len)
+        )
+    );
+}
+impl Default for sha512_state_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_224_Init"]
+    pub fn SHA512_224_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_224_Update"]
+    pub fn SHA512_224_Update(
+        sha: *mut SHA512_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_224_Final"]
+    pub fn SHA512_224_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_224"]
+    pub fn SHA512_224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_256_Init"]
+    pub fn SHA512_256_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_256_Update"]
+    pub fn SHA512_256_Update(
+        sha: *mut SHA512_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_256_Final"]
+    pub fn SHA512_256_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SHA512_256"]
+    pub fn SHA512_256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_malloc"]
+    pub fn OPENSSL_malloc(size: usize) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_zalloc"]
+    pub fn OPENSSL_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_calloc"]
+    pub fn OPENSSL_calloc(num: usize, size: usize) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_realloc"]
+    pub fn OPENSSL_realloc(
+        ptr: *mut ::std::os::raw::c_void,
+        new_size: usize,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_free"]
+    pub fn OPENSSL_free(ptr: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_cleanse"]
+    pub fn OPENSSL_cleanse(ptr: *mut ::std::os::raw::c_void, len: usize);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_memcmp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_hash32"]
+    pub fn OPENSSL_hash32(ptr: *const ::std::os::raw::c_void, len: usize) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_strhash"]
+    pub fn OPENSSL_strhash(s: *const ::std::os::raw::c_char) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_strdup"]
+    pub fn OPENSSL_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_strnlen"]
+    pub fn OPENSSL_strnlen(s: *const ::std::os::raw::c_char, len: usize) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_isalpha"]
+    pub fn OPENSSL_isalpha(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_isdigit"]
+    pub fn OPENSSL_isdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_isxdigit"]
+    pub fn OPENSSL_isxdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_fromxdigit"]
+    pub fn OPENSSL_fromxdigit(out: *mut u8, c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_hexstr2buf"]
+    pub fn OPENSSL_hexstr2buf(str_: *const ::std::os::raw::c_char, len: *mut usize) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_isalnum"]
+    pub fn OPENSSL_isalnum(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_tolower"]
+    pub fn OPENSSL_tolower(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_isspace"]
+    pub fn OPENSSL_isspace(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_strcasecmp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_strncasecmp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_snprintf"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_vsnprintf"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_vasprintf"]
+    pub fn OPENSSL_vasprintf(
+        str_: *mut *mut ::std::os::raw::c_char,
+        format: *const ::std::os::raw::c_char,
+        args: *mut __va_list_tag,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_asprintf"]
+    pub fn OPENSSL_asprintf(
+        str_: *mut *mut ::std::os::raw::c_char,
+        format: *const ::std::os::raw::c_char,
+        ...
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_strndup"]
+    pub fn OPENSSL_strndup(
+        str_: *const ::std::os::raw::c_char,
+        size: usize,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_memdup"]
+    pub fn OPENSSL_memdup(
+        data: *const ::std::os::raw::c_void,
+        size: usize,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_strlcpy"]
+    pub fn OPENSSL_strlcpy(
+        dst: *mut ::std::os::raw::c_char,
+        src: *const ::std::os::raw::c_char,
+        dst_size: usize,
+    ) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_strlcat"]
+    pub fn OPENSSL_strlcat(
+        dst: *mut ::std::os::raw::c_char,
+        src: *const ::std::os::raw::c_char,
+        dst_size: usize,
+    ) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_malloc"]
+    pub fn CRYPTO_malloc(
+        size: usize,
+        file: *const ::std::os::raw::c_char,
+        line: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_realloc"]
+    pub fn CRYPTO_realloc(
+        ptr: *mut ::std::os::raw::c_void,
+        new_size: usize,
+        file: *const ::std::os::raw::c_char,
+        line: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_free"]
+    pub fn CRYPTO_free(
+        ptr: *mut ::std::os::raw::c_void,
+        file: *const ::std::os::raw::c_char,
+        line: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_clear_free"]
+    pub fn OPENSSL_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_set_mem_functions"]
+    pub fn CRYPTO_set_mem_functions(
+        m: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: usize,
+                arg2: *const ::std::os::raw::c_char,
+                arg3: ::std::os::raw::c_int,
+            ) -> *mut ::std::os::raw::c_void,
+        >,
+        r: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: *mut ::std::os::raw::c_void,
+                arg2: usize,
+                arg3: *const ::std::os::raw::c_char,
+                arg4: ::std::os::raw::c_int,
+            ) -> *mut ::std::os::raw::c_void,
+        >,
+        f: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: *mut ::std::os::raw::c_void,
+                arg2: *const ::std::os::raw::c_char,
+                arg3: ::std::os::raw::c_int,
+            ),
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_secure_malloc_init"]
+    pub fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_secure_malloc_initialized"]
+    pub fn CRYPTO_secure_malloc_initialized() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_secure_used"]
+    pub fn CRYPTO_secure_used() -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_secure_malloc"]
+    pub fn OPENSSL_secure_malloc(size: usize) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_secure_zalloc"]
+    pub fn OPENSSL_secure_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_secure_clear_free"]
+    pub fn OPENSSL_secure_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
+}
+pub type CRYPTO_MUTEX = pthread_rwlock_t;
+pub type CRYPTO_refcount_t = u32;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AWSLC_thread_local_clear"]
+    pub fn AWSLC_thread_local_clear() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AWSLC_thread_local_shutdown"]
+    pub fn AWSLC_thread_local_shutdown() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_num_locks"]
+    pub fn CRYPTO_num_locks() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_set_locking_callback"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_set_add_lock_callback"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_get_locking_callback"]
+    pub fn CRYPTO_get_locking_callback() -> ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: ::std::os::raw::c_int,
+            arg2: ::std::os::raw::c_int,
+            arg3: *const ::std::os::raw::c_char,
+            arg4: ::std::os::raw::c_int,
+        ),
+    >;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_get_lock_name"]
+    pub fn CRYPTO_get_lock_name(lock_num: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_THREADID_set_callback"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_THREADID_set_numeric"]
+    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::std::os::raw::c_ulong);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_THREADID_set_pointer"]
+    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_THREADID_current"]
+    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_set_id_callback"]
+    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, PartialEq, Eq)]
+pub struct CRYPTO_dynlock {
+    pub references: ::std::os::raw::c_int,
+    pub data: *mut CRYPTO_dynlock_value,
+}
+#[test]
+fn bindgen_test_layout_CRYPTO_dynlock() {
+    const UNINIT: ::std::mem::MaybeUninit<CRYPTO_dynlock> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).references) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(CRYPTO_dynlock),
+            "::",
+            stringify!(references)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(CRYPTO_dynlock),
+            "::",
+            stringify!(data)
+        )
+    );
+}
+impl Default for CRYPTO_dynlock {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_set_dynlock_create_callback"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_set_dynlock_lock_callback"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_set_dynlock_destroy_callback"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_get_dynlock_create_callback"]
+    pub fn CRYPTO_get_dynlock_create_callback() -> ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *const ::std::os::raw::c_char,
+            arg2: ::std::os::raw::c_int,
+        ) -> *mut CRYPTO_dynlock_value,
+    >;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_get_dynlock_lock_callback"]
+    pub fn CRYPTO_get_dynlock_lock_callback() -> ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: ::std::os::raw::c_int,
+            arg2: *mut CRYPTO_dynlock_value,
+            arg3: *const ::std::os::raw::c_char,
+            arg4: ::std::os::raw::c_int,
+        ),
+    >;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_get_dynlock_destroy_callback"]
+    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut CRYPTO_dynlock_value,
+            arg2: *const ::std::os::raw::c_char,
+            arg3: ::std::os::raw::c_int,
+        ),
+    >;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_library_init"]
+    pub fn CRYPTO_library_init();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_is_confidential_build"]
+    pub fn CRYPTO_is_confidential_build() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_has_asm"]
+    pub fn CRYPTO_has_asm() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BORINGSSL_self_test"]
+    pub fn BORINGSSL_self_test() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn BORINGSSL_integrity_test() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_pre_sandbox_init"]
+    pub fn CRYPTO_pre_sandbox_init();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_FIPS_mode"]
+    pub fn FIPS_mode() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_FIPS_is_entropy_cpu_jitter"]
+    pub fn FIPS_is_entropy_cpu_jitter() -> ::std::os::raw::c_int;
+}
+pub const fips_counter_t_fips_counter_evp_aes_128_gcm: fips_counter_t = 0;
+pub const fips_counter_t_fips_counter_evp_aes_256_gcm: fips_counter_t = 1;
+pub const fips_counter_t_fips_counter_evp_aes_128_ctr: fips_counter_t = 2;
+pub const fips_counter_t_fips_counter_evp_aes_256_ctr: fips_counter_t = 3;
+pub const fips_counter_t_fips_counter_max: fips_counter_t = 3;
+pub type fips_counter_t = ::std::os::raw::c_uint;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_FIPS_read_counter"]
+    pub fn FIPS_read_counter(counter: fips_counter_t) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OpenSSL_version"]
+    pub fn OpenSSL_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SSLeay_version"]
+    pub fn SSLeay_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SSLeay"]
+    pub fn SSLeay() -> ::std::os::raw::c_ulong;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OpenSSL_version_num"]
+    pub fn OpenSSL_version_num() -> ::std::os::raw::c_ulong;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_awslc_api_version_num"]
+    pub fn awslc_api_version_num() -> ::std::os::raw::c_ulong;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_malloc_init"]
+    pub fn CRYPTO_malloc_init() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_malloc_init"]
+    pub fn OPENSSL_malloc_init() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_load_builtin_engines"]
+    pub fn ENGINE_load_builtin_engines();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_register_all_complete"]
+    pub fn ENGINE_register_all_complete() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_load_builtin_modules"]
+    pub fn OPENSSL_load_builtin_modules();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_init_crypto"]
+    pub fn OPENSSL_init_crypto(
+        opts: u64,
+        settings: *const OPENSSL_INIT_SETTINGS,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_init"]
+    pub fn OPENSSL_init();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_cleanup"]
+    pub fn OPENSSL_cleanup();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_FIPS_mode_set"]
+    pub fn FIPS_mode_set(on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_load_BIO_strings"]
+    pub fn ERR_load_BIO_strings();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_load_ERR_strings"]
+    pub fn ERR_load_ERR_strings();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_load_CRYPTO_strings"]
+    pub fn ERR_load_CRYPTO_strings();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_load_crypto_strings"]
+    pub fn ERR_load_crypto_strings();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_load_RAND_strings"]
+    pub fn ERR_load_RAND_strings();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_free_strings"]
+    pub fn ERR_free_strings();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_get_error"]
+    pub fn ERR_get_error() -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_get_error_line"]
+    pub fn ERR_get_error_line(
+        file: *mut *const ::std::os::raw::c_char,
+        line: *mut ::std::os::raw::c_int,
+    ) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_get_error_line_data"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_peek_error"]
+    pub fn ERR_peek_error() -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_peek_error_line"]
+    pub fn ERR_peek_error_line(
+        file: *mut *const ::std::os::raw::c_char,
+        line: *mut ::std::os::raw::c_int,
+    ) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_peek_error_line_data"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_peek_last_error"]
+    pub fn ERR_peek_last_error() -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_peek_last_error_line"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_peek_last_error_line_data"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_error_string_n"]
+    pub fn ERR_error_string_n(
+        packed_error: u32,
+        buf: *mut ::std::os::raw::c_char,
+        len: usize,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_lib_error_string"]
+    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_reason_error_string"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_print_errors_cb"]
+    pub fn ERR_print_errors_cb(
+        callback: ERR_print_errors_callback_t,
+        ctx: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_print_errors_fp"]
+    pub fn ERR_print_errors_fp(file: *mut FILE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_clear_error"]
+    pub fn ERR_clear_error();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_set_mark"]
+    pub fn ERR_set_mark() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_pop_to_mark"]
+    pub fn ERR_pop_to_mark() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_get_next_error_library"]
+    pub fn ERR_get_next_error_library() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_remove_state"]
+    pub fn ERR_remove_state(pid: ::std::os::raw::c_ulong);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_remove_thread_state"]
+    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_func_error_string"]
+    pub fn ERR_func_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_error_string"]
+    pub fn ERR_error_string(
+        packed_error: u32,
+        buf: *mut ::std::os::raw::c_char,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_clear_system_error"]
+    pub fn ERR_clear_system_error();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_put_error"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_add_error_data"]
+    pub fn ERR_add_error_data(count: ::std::os::raw::c_uint, ...);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_add_error_dataf"]
+    pub fn ERR_add_error_dataf(format: *const ::std::os::raw::c_char, ...);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_set_error_data"]
+    pub fn ERR_set_error_data(data: *mut ::std::os::raw::c_char, flags: ::std::os::raw::c_int);
+}
+pub type OPENSSL_sk_free_func =
+    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void)>;
+pub type OPENSSL_sk_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(ptr: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
+>;
+pub type OPENSSL_sk_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        a: *const *const ::std::os::raw::c_void,
+        b: *const *const ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type OPENSSL_sk_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        obj: *mut ::std::os::raw::c_void,
+        data: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type OPENSSL_sk_call_free_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: OPENSSL_sk_free_func, arg2: *mut ::std::os::raw::c_void),
+>;
+pub type OPENSSL_sk_call_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: OPENSSL_sk_copy_func,
+        arg2: *const ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void,
+>;
+pub type OPENSSL_sk_call_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: OPENSSL_sk_cmp_func,
+        arg2: *const ::std::os::raw::c_void,
+        arg3: *const ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type OPENSSL_sk_call_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: OPENSSL_sk_delete_if_func,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st {
+    _unused: [u8; 0],
+}
+pub type OPENSSL_STACK = stack_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_new"]
+    pub fn OPENSSL_sk_new(comp: OPENSSL_sk_cmp_func) -> *mut OPENSSL_STACK;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_new_null"]
+    pub fn OPENSSL_sk_new_null() -> *mut OPENSSL_STACK;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_num"]
+    pub fn OPENSSL_sk_num(sk: *const OPENSSL_STACK) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_zero"]
+    pub fn OPENSSL_sk_zero(sk: *mut OPENSSL_STACK);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_value"]
+    pub fn OPENSSL_sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_set"]
+    pub fn OPENSSL_sk_set(
+        sk: *mut OPENSSL_STACK,
+        i: usize,
+        p: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_free"]
+    pub fn OPENSSL_sk_free(sk: *mut OPENSSL_STACK);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_pop_free_ex"]
+    pub fn OPENSSL_sk_pop_free_ex(
+        sk: *mut OPENSSL_STACK,
+        call_free_func: OPENSSL_sk_call_free_func,
+        free_func: OPENSSL_sk_free_func,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_insert"]
+    pub fn OPENSSL_sk_insert(
+        sk: *mut OPENSSL_STACK,
+        p: *mut ::std::os::raw::c_void,
+        where_: usize,
+    ) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_delete"]
+    pub fn OPENSSL_sk_delete(sk: *mut OPENSSL_STACK, where_: usize) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_delete_ptr"]
+    pub fn OPENSSL_sk_delete_ptr(
+        sk: *mut OPENSSL_STACK,
+        p: *const ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_delete_if"]
+    pub fn OPENSSL_sk_delete_if(
+        sk: *mut OPENSSL_STACK,
+        call_func: OPENSSL_sk_call_delete_if_func,
+        func: OPENSSL_sk_delete_if_func,
+        data: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_find"]
+    pub fn OPENSSL_sk_find(
+        sk: *const OPENSSL_STACK,
+        out_index: *mut usize,
+        p: *const ::std::os::raw::c_void,
+        call_cmp_func: OPENSSL_sk_call_cmp_func,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_unshift"]
+    pub fn OPENSSL_sk_unshift(
+        sk: *mut OPENSSL_STACK,
+        data: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_shift"]
+    pub fn OPENSSL_sk_shift(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_push"]
+    pub fn OPENSSL_sk_push(sk: *mut OPENSSL_STACK, p: *mut ::std::os::raw::c_void) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_pop"]
+    pub fn OPENSSL_sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_dup"]
+    pub fn OPENSSL_sk_dup(sk: *const OPENSSL_STACK) -> *mut OPENSSL_STACK;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_sort"]
+    pub fn OPENSSL_sk_sort(sk: *mut OPENSSL_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_is_sorted"]
+    pub fn OPENSSL_sk_is_sorted(sk: *const OPENSSL_STACK) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_set_cmp_func"]
+    pub fn OPENSSL_sk_set_cmp_func(
+        sk: *mut OPENSSL_STACK,
+        comp: OPENSSL_sk_cmp_func,
+    ) -> OPENSSL_sk_cmp_func;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_sk_deep_copy"]
+    pub fn OPENSSL_sk_deep_copy(
+        sk: *const OPENSSL_STACK,
+        call_copy_func: OPENSSL_sk_call_copy_func,
+        copy_func: OPENSSL_sk_copy_func,
+        call_free_func: OPENSSL_sk_call_free_func,
+        free_func: OPENSSL_sk_free_func,
+    ) -> *mut OPENSSL_STACK;
+}
+pub type _STACK = OPENSSL_STACK;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_sk_pop_free"]
+    pub fn sk_pop_free(sk: *mut OPENSSL_STACK, free_func: OPENSSL_sk_free_func);
+}
+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 sk_void_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
+pub type sk_void_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
+>;
+pub type sk_void_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const ::std::os::raw::c_void,
+        arg2: *const *const ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_void_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_OPENSSL_STRING {
+    _unused: [u8; 0],
+}
+pub type sk_OPENSSL_STRING_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char)>;
+pub type sk_OPENSSL_STRING_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
+>;
+pub type sk_OPENSSL_STRING_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const ::std::os::raw::c_char,
+        arg2: *const *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_OPENSSL_STRING_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut ::std::os::raw::c_char,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_cleanup_all_ex_data"]
+    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, PartialEq, Eq)]
+pub struct crypto_ex_data_st {
+    pub sk: *mut stack_st_void,
+}
+#[test]
+fn bindgen_test_layout_crypto_ex_data_st() {
+    const UNINIT: ::std::mem::MaybeUninit<crypto_ex_data_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).sk) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(crypto_ex_data_st),
+            "::",
+            stringify!(sk)
+        )
+    );
+}
+impl Default for crypto_ex_data_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_BIO {
+    _unused: [u8; 0],
+}
+pub type sk_BIO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO)>;
+pub type sk_BIO_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const BIO) -> *mut BIO>;
+pub type sk_BIO_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const *const BIO, arg2: *const *const BIO) -> ::std::os::raw::c_int,
+>;
+pub type sk_BIO_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut BIO,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_new"]
+    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_free"]
+    pub fn BIO_free(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_vfree"]
+    pub fn BIO_vfree(bio: *mut BIO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_up_ref"]
+    pub fn BIO_up_ref(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_read"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_read_ex"]
+    pub fn BIO_read_ex(
+        bio: *mut BIO,
+        data: *mut ::std::os::raw::c_void,
+        data_len: usize,
+        read_bytes: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_gets"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_write"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_write_ex"]
+    pub fn BIO_write_ex(
+        bio: *mut BIO,
+        data: *const ::std::os::raw::c_void,
+        data_len: usize,
+        written_bytes: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_write_all"]
+    pub fn BIO_write_all(
+        bio: *mut BIO,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_puts"]
+    pub fn BIO_puts(bio: *mut BIO, buf: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_flush"]
+    pub fn BIO_flush(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_ctrl"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_ptr_ctrl"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_int_ctrl"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_reset"]
+    pub fn BIO_reset(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_eof"]
+    pub fn BIO_eof(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_flags"]
+    pub fn BIO_set_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_test_flags"]
+    pub fn BIO_test_flags(bio: *const BIO, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_should_read"]
+    pub fn BIO_should_read(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_should_write"]
+    pub fn BIO_should_write(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_should_retry"]
+    pub fn BIO_should_retry(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_should_io_special"]
+    pub fn BIO_should_io_special(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_retry_reason"]
+    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_retry_reason"]
+    pub fn BIO_set_retry_reason(bio: *mut BIO, reason: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_clear_flags"]
+    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_retry_read"]
+    pub fn BIO_set_retry_read(bio: *mut BIO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_retry_write"]
+    pub fn BIO_set_retry_write(bio: *mut BIO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_retry_flags"]
+    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_clear_retry_flags"]
+    pub fn BIO_clear_retry_flags(bio: *mut BIO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_method_type"]
+    pub fn BIO_method_type(bio: *const BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_method_name"]
+    pub fn BIO_method_name(b: *const BIO) -> *const ::std::os::raw::c_char;
+}
+pub type bio_info_cb = ::std::option::Option<
+    unsafe extern "C" fn(
+        b: *mut BIO,
+        state: ::std::os::raw::c_int,
+        res: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_long,
+>;
+pub type BIO_callback_fn_ex = ::std::option::Option<
+    unsafe extern "C" fn(
+        bio: *mut BIO,
+        oper: ::std::os::raw::c_int,
+        argp: *const ::std::os::raw::c_char,
+        len: usize,
+        argi: ::std::os::raw::c_int,
+        argl: ::std::os::raw::c_long,
+        bio_ret: ::std::os::raw::c_int,
+        processed: *mut usize,
+    ) -> ::std::os::raw::c_long,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_callback_ctrl"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_pending"]
+    pub fn BIO_pending(bio: *const BIO) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_ctrl_pending"]
+    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_wpending"]
+    pub fn BIO_wpending(bio: *const BIO) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_close"]
+    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::std::os::raw::c_int)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_number_read"]
+    pub fn BIO_number_read(bio: *const BIO) -> u64;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_number_written"]
+    pub fn BIO_number_written(bio: *const BIO) -> u64;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_callback_ex"]
+    pub fn BIO_set_callback_ex(bio: *mut BIO, callback_ex: BIO_callback_fn_ex);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_callback_arg"]
+    pub fn BIO_set_callback_arg(bio: *mut BIO, arg: *mut ::std::os::raw::c_char);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_callback_arg"]
+    pub fn BIO_get_callback_arg(bio: *const BIO) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_push"]
+    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_pop"]
+    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_next"]
+    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_free_all"]
+    pub fn BIO_free_all(bio: *mut BIO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_find_type"]
+    pub fn BIO_find_type(bio: *mut BIO, type_: ::std::os::raw::c_int) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_copy_next_retry"]
+    pub fn BIO_copy_next_retry(bio: *mut BIO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_printf"]
+    pub fn BIO_printf(
+        bio: *mut BIO,
+        format: *const ::std::os::raw::c_char,
+        ...
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_indent"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_hexdump"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_print_errors"]
+    pub fn ERR_print_errors(bio: *mut BIO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_read_asn1"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_s_mem"]
+    pub fn BIO_s_mem() -> *const BIO_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_new_mem_buf"]
+    pub fn BIO_new_mem_buf(buf: *const ::std::os::raw::c_void, len: ossl_ssize_t) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_mem_contents"]
+    pub fn BIO_mem_contents(
+        bio: *const BIO,
+        out_contents: *mut *const u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_mem_ptr"]
+    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_mem_buf"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_mem_eof_return"]
+    pub fn BIO_set_mem_eof_return(
+        bio: *mut BIO,
+        eof_value: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_s_fd"]
+    pub fn BIO_s_fd() -> *const BIO_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_new_fd"]
+    pub fn BIO_new_fd(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_fd"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_fd"]
+    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_s_file"]
+    pub fn BIO_s_file() -> *const BIO_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_new_file"]
+    pub fn BIO_new_file(
+        filename: *const ::std::os::raw::c_char,
+        mode: *const ::std::os::raw::c_char,
+    ) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_new_fp"]
+    pub fn BIO_new_fp(stream: *mut FILE, close_flag: ::std::os::raw::c_int) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_fp"]
+    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_fp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_read_filename"]
+    pub fn BIO_read_filename(
+        bio: *mut BIO,
+        filename: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_write_filename"]
+    pub fn BIO_write_filename(
+        bio: *mut BIO,
+        filename: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_append_filename"]
+    pub fn BIO_append_filename(
+        bio: *mut BIO,
+        filename: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_rw_filename"]
+    pub fn BIO_rw_filename(
+        bio: *mut BIO,
+        filename: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_tell"]
+    pub fn BIO_tell(bio: *mut BIO) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_seek"]
+    pub fn BIO_seek(bio: *mut BIO, offset: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_s_socket"]
+    pub fn BIO_s_socket() -> *const BIO_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_new_socket"]
+    pub fn BIO_new_socket(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int)
+        -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_s_connect"]
+    pub fn BIO_s_connect() -> *const BIO_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_new_connect"]
+    pub fn BIO_new_connect(host_and_optional_port: *const ::std::os::raw::c_char) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_conn_hostname"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_conn_port"]
+    pub fn BIO_set_conn_port(
+        bio: *mut BIO,
+        port_str: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_conn_int_port"]
+    pub fn BIO_set_conn_int_port(
+        bio: *mut BIO,
+        port: *const ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_nbio"]
+    pub fn BIO_set_nbio(bio: *mut BIO, on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_do_connect"]
+    pub fn BIO_do_connect(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_new_bio_pair"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_destroy_bio_pair"]
+    pub fn BIO_destroy_bio_pair(b: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_ctrl_get_read_request"]
+    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_ctrl_get_write_guarantee"]
+    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_shutdown_wr"]
+    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_new_index"]
+    pub fn BIO_get_new_index() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_new"]
+    pub fn BIO_meth_new(
+        type_: ::std::os::raw::c_int,
+        name: *const ::std::os::raw::c_char,
+    ) -> *mut BIO_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_free"]
+    pub fn BIO_meth_free(method: *mut BIO_METHOD);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_set_create"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_get_create"]
+    pub fn BIO_meth_get_create(
+        method: *const BIO_METHOD,
+    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_set_destroy"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_get_destroy"]
+    pub fn BIO_meth_get_destroy(
+        method: *const BIO_METHOD,
+    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_set_write"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_set_read"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_set_gets"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_get_gets"]
+    pub fn BIO_meth_get_gets(
+        method: *const BIO_METHOD,
+    ) -> ::std::option::Option<
+        unsafe extern "C" fn(
+            method: *mut BIO,
+            arg1: *mut ::std::os::raw::c_char,
+            arg2: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_set_ctrl"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_get_ctrl"]
+    pub fn BIO_meth_get_ctrl(
+        method: *const BIO_METHOD,
+    ) -> ::std::option::Option<
+        unsafe extern "C" fn(
+            method: *mut BIO,
+            arg1: ::std::os::raw::c_int,
+            arg2: ::std::os::raw::c_long,
+            arg3: *mut ::std::os::raw::c_void,
+        ) -> ::std::os::raw::c_long,
+    >;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_set_callback_ctrl"]
+    pub fn BIO_meth_set_callback_ctrl(
+        method: *mut BIO_METHOD,
+        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,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_get_callback_ctrl"]
+    pub fn BIO_meth_get_callback_ctrl(
+        method: *const BIO_METHOD,
+    ) -> ::std::option::Option<
+        unsafe extern "C" fn(
+            method: *mut BIO,
+            arg1: ::std::os::raw::c_int,
+            arg2: bio_info_cb,
+        ) -> ::std::os::raw::c_long,
+    >;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_data"]
+    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_data"]
+    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_init"]
+    pub fn BIO_set_init(bio: *mut BIO, init: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_init"]
+    pub fn BIO_get_init(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_ex_new_index"]
+    pub fn BIO_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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_ex_data"]
+    pub fn BIO_set_ex_data(
+        bio: *mut BIO,
+        idx: ::std::os::raw::c_int,
+        arg: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_ex_data"]
+    pub fn BIO_get_ex_data(
+        bio: *const BIO,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_f_base64"]
+    pub fn BIO_f_base64() -> *const BIO_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_retry_special"]
+    pub fn BIO_set_retry_special(bio: *mut BIO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_shutdown"]
+    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_get_shutdown"]
+    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_set_puts"]
+    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;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_meth_get_puts"]
+    pub fn BIO_meth_get_puts(
+        method: *const BIO_METHOD,
+    ) -> ::std::option::Option<
+        unsafe extern "C" fn(
+            method: *mut BIO,
+            arg1: *const ::std::os::raw::c_char,
+        ) -> ::std::os::raw::c_int,
+    >;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_s_secmem"]
+    pub fn BIO_s_secmem() -> *const BIO_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BIO_set_write_buffer_size"]
+    pub fn BIO_set_write_buffer_size(
+        bio: *mut BIO,
+        buffer_size: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<bio_method_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).type_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bwrite) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(bwrite)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bread) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(bread)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bputs) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(bputs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bgets) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(bgets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ctrl) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(ctrl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(create)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(destroy)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).callback_ctrl) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_method_st),
+            "::",
+            stringify!(callback_ctrl)
+        )
+    );
+}
+impl Default for bio_method_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct bio_st {
+    pub method: *const BIO_METHOD,
+    pub ex_data: CRYPTO_EX_DATA,
+    pub callback_ex: BIO_callback_fn_ex,
+    pub cb_arg: *mut ::std::os::raw::c_char,
+    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: u64,
+    pub num_write: u64,
+}
+#[test]
+fn bindgen_test_layout_bio_st() {
+    const UNINIT: ::std::mem::MaybeUninit<bio_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<bio_st>(),
+        88usize,
+        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::addr_of!((*ptr).method) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(method)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ex_data) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(ex_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).callback_ex) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(callback_ex)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cb_arg) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(cb_arg)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(init)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(shutdown)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).retry_reason) as usize - ptr as usize },
+        44usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(retry_reason)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(num)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
+        52usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(references)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(ptr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).next_bio) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(next_bio)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num_read) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(num_read)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num_write) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bio_st),
+            "::",
+            stringify!(num_write)
+        )
+    );
+}
+impl Default for bio_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type BN_ULONG = u64;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_new"]
+    pub fn BN_new() -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_init"]
+    pub fn BN_init(bn: *mut BIGNUM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_free"]
+    pub fn BN_free(bn: *mut BIGNUM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_clear_free"]
+    pub fn BN_clear_free(bn: *mut BIGNUM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_dup"]
+    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_copy"]
+    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_clear"]
+    pub fn BN_clear(bn: *mut BIGNUM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_value_one"]
+    pub fn BN_value_one() -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_num_bits"]
+    pub fn BN_num_bits(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_num_bytes"]
+    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_zero"]
+    pub fn BN_zero(bn: *mut BIGNUM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_one"]
+    pub fn BN_one(bn: *mut BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_set_word"]
+    pub fn BN_set_word(bn: *mut BIGNUM, value: BN_ULONG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_set_u64"]
+    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_set_negative"]
+    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_negative"]
+    pub fn BN_is_negative(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bin2bn"]
+    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bn2bin"]
+    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_le2bn"]
+    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bn2le_padded"]
+    pub fn BN_bn2le_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bn2bin_padded"]
+    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bn2cbb_padded"]
+    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bn2hex"]
+    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_hex2bn"]
+    pub fn BN_hex2bn(
+        outp: *mut *mut BIGNUM,
+        in_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bn2dec"]
+    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_dec2bn"]
+    pub fn BN_dec2bn(
+        outp: *mut *mut BIGNUM,
+        in_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_asc2bn"]
+    pub fn BN_asc2bn(
+        outp: *mut *mut BIGNUM,
+        in_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_print"]
+    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_print_fp"]
+    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_word"]
+    pub fn BN_get_word(bn: *const BIGNUM) -> BN_ULONG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_u64"]
+    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_flags"]
+    pub fn BN_get_flags(bn: *const BIGNUM, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_parse_asn1_unsigned"]
+    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_marshal_asn1"]
+    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_CTX_new"]
+    pub fn BN_CTX_new() -> *mut BN_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_CTX_free"]
+    pub fn BN_CTX_free(ctx: *mut BN_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_CTX_start"]
+    pub fn BN_CTX_start(ctx: *mut BN_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_CTX_get"]
+    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_CTX_end"]
+    pub fn BN_CTX_end(ctx: *mut BN_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_add"]
+    pub fn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_uadd"]
+    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_add_word"]
+    pub fn BN_add_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_sub"]
+    pub fn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_usub"]
+    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_sub_word"]
+    pub fn BN_sub_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mul"]
+    pub fn BN_mul(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mul_word"]
+    pub fn BN_mul_word(bn: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_sqr"]
+    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_div"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_div_word"]
+    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: BN_ULONG) -> BN_ULONG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_sqrt"]
+    pub fn BN_sqrt(
+        out_sqrt: *mut BIGNUM,
+        in_: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_cmp"]
+    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_cmp_word"]
+    pub fn BN_cmp_word(a: *const BIGNUM, b: BN_ULONG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_ucmp"]
+    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_equal_consttime"]
+    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_abs_is_word"]
+    pub fn BN_abs_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_zero"]
+    pub fn BN_is_zero(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_one"]
+    pub fn BN_is_one(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_word"]
+    pub fn BN_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_odd"]
+    pub fn BN_is_odd(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_pow2"]
+    pub fn BN_is_pow2(a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_lshift"]
+    pub fn BN_lshift(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        n: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_lshift1"]
+    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_rshift"]
+    pub fn BN_rshift(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        n: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_rshift1"]
+    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_set_bit"]
+    pub fn BN_set_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_clear_bit"]
+    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_bit_set"]
+    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mask_bits"]
+    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_count_low_zero_bits"]
+    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_word"]
+    pub fn BN_mod_word(a: *const BIGNUM, w: BN_ULONG) -> BN_ULONG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_pow2"]
+    pub fn BN_mod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_nnmod_pow2"]
+    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_nnmod"]
+    pub fn BN_nnmod(
+        rem: *mut BIGNUM,
+        numerator: *const BIGNUM,
+        divisor: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_add"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_add_quick"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_sub"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_sub_quick"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_mul"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_sqr"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_lshift"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_lshift_quick"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_lshift1"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_lshift1_quick"]
+    pub fn BN_mod_lshift1_quick(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        m: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_sqrt"]
+    pub fn BN_mod_sqrt(
+        in_: *mut BIGNUM,
+        a: *const BIGNUM,
+        p: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_rand"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_pseudo_rand"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_rand_range"]
+    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_rand_range_ex"]
+    pub fn BN_rand_range_ex(
+        r: *mut BIGNUM,
+        min_inclusive: BN_ULONG,
+        max_exclusive: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_pseudo_rand_range"]
+    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bn_gencb_st {
+    pub type_: u8,
+    pub arg: *mut ::std::os::raw::c_void,
+    pub callback: bn_gencb_st__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bn_gencb_st__bindgen_ty_1 {
+    pub new_style: ::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,
+    >,
+    pub old_style: ::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,
+        ),
+    >,
+}
+#[test]
+fn bindgen_test_layout_bn_gencb_st__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<bn_gencb_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(bn_gencb_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<bn_gencb_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(bn_gencb_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).new_style) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bn_gencb_st__bindgen_ty_1),
+            "::",
+            stringify!(new_style)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).old_style) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bn_gencb_st__bindgen_ty_1),
+            "::",
+            stringify!(old_style)
+        )
+    );
+}
+impl Default for bn_gencb_st__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[test]
+fn bindgen_test_layout_bn_gencb_st() {
+    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<bn_gencb_st>(),
+        24usize,
+        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::addr_of!((*ptr).type_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bn_gencb_st),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bn_gencb_st),
+            "::",
+            stringify!(arg)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bn_gencb_st),
+            "::",
+            stringify!(callback)
+        )
+    );
+}
+impl Default for bn_gencb_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_GENCB_new"]
+    pub fn BN_GENCB_new() -> *mut BN_GENCB;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_GENCB_free"]
+    pub fn BN_GENCB_free(callback: *mut BN_GENCB);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_GENCB_set"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_GENCB_call"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_GENCB_get_arg"]
+    pub fn BN_GENCB_get_arg(callback: *const BN_GENCB) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_generate_prime_ex"]
+    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 = ::std::os::raw::c_uint;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_enhanced_miller_rabin_primality_test"]
+    pub fn BN_enhanced_miller_rabin_primality_test(
+        out_result: *mut bn_primality_result_t,
+        w: *const BIGNUM,
+        checks: ::std::os::raw::c_int,
+        ctx: *mut BN_CTX,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_primality_test"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_prime_fasttest_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_is_prime_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_gcd"]
+    pub fn BN_gcd(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        b: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_inverse"]
+    pub fn BN_mod_inverse(
+        out: *mut BIGNUM,
+        a: *const BIGNUM,
+        n: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_inverse_blinded"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_inverse_odd"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_MONT_CTX_new_for_modulus"]
+    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_MONT_CTX_new_consttime"]
+    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_MONT_CTX_free"]
+    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_MONT_CTX_copy"]
+    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_to_montgomery"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_from_montgomery"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_mul_montgomery"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_exp"]
+    pub fn BN_exp(
+        r: *mut BIGNUM,
+        a: *const BIGNUM,
+        p: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_exp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_exp_mont"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_exp_mont_consttime"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_GENCB_set_old"]
+    pub fn BN_GENCB_set_old(
+        callback: *mut BN_GENCB,
+        f: ::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,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bn2mpi"]
+    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mpi2bn"]
+    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_exp_mont_word"]
+    pub fn BN_mod_exp_mont_word(
+        r: *mut BIGNUM,
+        a: BN_ULONG,
+        p: *const BIGNUM,
+        m: *const BIGNUM,
+        ctx: *mut BN_CTX,
+        mont: *const BN_MONT_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_exp2_mont"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_MONT_CTX_new"]
+    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_MONT_CTX_set"]
+    pub fn BN_MONT_CTX_set(
+        mont: *mut BN_MONT_CTX,
+        mod_: *const BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_bn2binpad"]
+    pub fn BN_bn2binpad(
+        in_: *const BIGNUM,
+        out: *mut u8,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_secure_new"]
+    pub fn BN_secure_new() -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_CTX_secure_new"]
+    pub fn BN_CTX_secure_new() -> *mut BN_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_mod_exp_mont_consttime_x2"]
+    pub fn BN_mod_exp_mont_consttime_x2(
+        rr1: *mut BIGNUM,
+        a1: *const BIGNUM,
+        p1: *const BIGNUM,
+        m1: *const BIGNUM,
+        in_mont1: *const BN_MONT_CTX,
+        rr2: *mut BIGNUM,
+        a2: *const BIGNUM,
+        p2: *const BIGNUM,
+        m2: *const BIGNUM,
+        in_mont2: *const BN_MONT_CTX,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_set_flags"]
+    pub fn BN_set_flags(b: *mut BIGNUM, n: ::std::os::raw::c_int);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct bignum_st {
+    pub d: *mut BN_ULONG,
+    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() {
+    const UNINIT: ::std::mem::MaybeUninit<bignum_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).d) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bignum_st),
+            "::",
+            stringify!(d)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bignum_st),
+            "::",
+            stringify!(width)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dmax) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bignum_st),
+            "::",
+            stringify!(dmax)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).neg) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bignum_st),
+            "::",
+            stringify!(neg)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bignum_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+}
+impl Default for bignum_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct bn_mont_ctx_st {
+    pub RR: BIGNUM,
+    pub N: BIGNUM,
+    pub n0: [BN_ULONG; 2usize],
+}
+#[test]
+fn bindgen_test_layout_bn_mont_ctx_st() {
+    const UNINIT: ::std::mem::MaybeUninit<bn_mont_ctx_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).RR) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bn_mont_ctx_st),
+            "::",
+            stringify!(RR)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).N) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bn_mont_ctx_st),
+            "::",
+            stringify!(N)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).n0) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bn_mont_ctx_st),
+            "::",
+            stringify!(n0)
+        )
+    );
+}
+impl Default for bn_mont_ctx_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_num_bits_word"]
+    pub fn BN_num_bits_word(l: BN_ULONG) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_tag2bit"]
+    pub fn ASN1_tag2bit(tag: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_tag2str"]
+    pub fn ASN1_tag2str(tag: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+pub type d2i_of_void = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut *mut ::std::os::raw::c_void,
+        arg2: *mut *const ::std::os::raw::c_uchar,
+        arg3: ::std::os::raw::c_long,
+    ) -> *mut ::std::os::raw::c_void,
+>;
+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(Debug, Copy, Clone)]
+pub struct ASN1_VALUE_st {
+    _unused: [u8; 0],
+}
+pub type ASN1_VALUE = ASN1_VALUE_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_new"]
+    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_free"]
+    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_d2i"]
+    pub fn ASN1_item_d2i(
+        out: *mut *mut ASN1_VALUE,
+        inp: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+        it: *const ASN1_ITEM,
+    ) -> *mut ASN1_VALUE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_i2d"]
+    pub fn ASN1_item_i2d(
+        val: *mut ASN1_VALUE,
+        outp: *mut *mut ::std::os::raw::c_uchar,
+        it: *const ASN1_ITEM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_dup"]
+    pub fn ASN1_dup(
+        i2d: i2d_of_void,
+        d2i: d2i_of_void,
+        x: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_dup"]
+    pub fn ASN1_item_dup(
+        it: *const ASN1_ITEM,
+        x: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_d2i_fp"]
+    pub fn ASN1_item_d2i_fp(
+        it: *const ASN1_ITEM,
+        in_: *mut FILE,
+        out: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_d2i_bio"]
+    pub fn ASN1_item_d2i_bio(
+        it: *const ASN1_ITEM,
+        in_: *mut BIO,
+        out: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_i2d_fp"]
+    pub fn ASN1_item_i2d_fp(
+        it: *const ASN1_ITEM,
+        out: *mut FILE,
+        in_: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_i2d_bio"]
+    pub fn ASN1_item_i2d_bio(
+        it: *const ASN1_ITEM,
+        out: *mut BIO,
+        in_: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_i2d_bio"]
+    pub fn ASN1_i2d_bio(
+        i2d: i2d_of_void,
+        out: *mut BIO,
+        in_: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_unpack"]
+    pub fn ASN1_item_unpack(
+        oct: *const ASN1_STRING,
+        it: *const ASN1_ITEM,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_pack"]
+    pub fn ASN1_item_pack(
+        obj: *mut ::std::os::raw::c_void,
+        it: *const ASN1_ITEM,
+        out: *mut *mut ASN1_STRING,
+    ) -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_BOOLEAN"]
+    pub fn d2i_ASN1_BOOLEAN(
+        out: *mut ASN1_BOOLEAN,
+        inp: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> ASN1_BOOLEAN;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_BOOLEAN"]
+    pub fn i2d_ASN1_BOOLEAN(
+        a: ASN1_BOOLEAN,
+        outp: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BOOLEAN_it"]
+    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TBOOLEAN_it"]
+    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_FBOOLEAN_it"]
+    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<asn1_string_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).length) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_string_st),
+            "::",
+            stringify!(length)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_string_st),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_string_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_string_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+}
+impl Default for asn1_string_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_type_new"]
+    pub fn ASN1_STRING_type_new(type_: ::std::os::raw::c_int) -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_new"]
+    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_free"]
+    pub fn ASN1_STRING_free(str_: *mut ASN1_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_clear_free"]
+    pub fn ASN1_STRING_clear_free(str_: *mut ASN1_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_copy"]
+    pub fn ASN1_STRING_copy(
+        dst: *mut ASN1_STRING,
+        str_: *const ASN1_STRING,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_dup"]
+    pub fn ASN1_STRING_dup(str_: *const ASN1_STRING) -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_type"]
+    pub fn ASN1_STRING_type(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_get0_data"]
+    pub fn ASN1_STRING_get0_data(str_: *const ASN1_STRING) -> *const ::std::os::raw::c_uchar;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_data"]
+    pub fn ASN1_STRING_data(str_: *mut ASN1_STRING) -> *mut ::std::os::raw::c_uchar;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_length"]
+    pub fn ASN1_STRING_length(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_cmp"]
+    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_set"]
+    pub fn ASN1_STRING_set(
+        str_: *mut ASN1_STRING,
+        data: *const ::std::os::raw::c_void,
+        len: ossl_ssize_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_set0"]
+    pub fn ASN1_STRING_set0(
+        str_: *mut ASN1_STRING,
+        data: *mut ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BMPSTRING_new"]
+    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALSTRING_new"]
+    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_IA5STRING_new"]
+    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OCTET_STRING_new"]
+    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_PRINTABLESTRING_new"]
+    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_T61STRING_new"]
+    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UNIVERSALSTRING_new"]
+    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTF8STRING_new"]
+    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_VISIBLESTRING_new"]
+    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BMPSTRING_free"]
+    pub fn ASN1_BMPSTRING_free(str_: *mut ASN1_BMPSTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALSTRING_free"]
+    pub fn ASN1_GENERALSTRING_free(str_: *mut ASN1_GENERALSTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_IA5STRING_free"]
+    pub fn ASN1_IA5STRING_free(str_: *mut ASN1_IA5STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OCTET_STRING_free"]
+    pub fn ASN1_OCTET_STRING_free(str_: *mut ASN1_OCTET_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_PRINTABLESTRING_free"]
+    pub fn ASN1_PRINTABLESTRING_free(str_: *mut ASN1_PRINTABLESTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_T61STRING_free"]
+    pub fn ASN1_T61STRING_free(str_: *mut ASN1_T61STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UNIVERSALSTRING_free"]
+    pub fn ASN1_UNIVERSALSTRING_free(str_: *mut ASN1_UNIVERSALSTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTF8STRING_free"]
+    pub fn ASN1_UTF8STRING_free(str_: *mut ASN1_UTF8STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_VISIBLESTRING_free"]
+    pub fn ASN1_VISIBLESTRING_free(str_: *mut ASN1_VISIBLESTRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_BMPSTRING"]
+    pub fn d2i_ASN1_BMPSTRING(
+        out: *mut *mut ASN1_BMPSTRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_BMPSTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_GENERALSTRING"]
+    pub fn d2i_ASN1_GENERALSTRING(
+        out: *mut *mut ASN1_GENERALSTRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_GENERALSTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_IA5STRING"]
+    pub fn d2i_ASN1_IA5STRING(
+        out: *mut *mut ASN1_IA5STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_IA5STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_OCTET_STRING"]
+    pub fn d2i_ASN1_OCTET_STRING(
+        out: *mut *mut ASN1_OCTET_STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_PRINTABLESTRING"]
+    pub fn d2i_ASN1_PRINTABLESTRING(
+        out: *mut *mut ASN1_PRINTABLESTRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_PRINTABLESTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_T61STRING"]
+    pub fn d2i_ASN1_T61STRING(
+        out: *mut *mut ASN1_T61STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_T61STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_UNIVERSALSTRING"]
+    pub fn d2i_ASN1_UNIVERSALSTRING(
+        out: *mut *mut ASN1_UNIVERSALSTRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_UNIVERSALSTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_UTF8STRING"]
+    pub fn d2i_ASN1_UTF8STRING(
+        out: *mut *mut ASN1_UTF8STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_UTF8STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_VISIBLESTRING"]
+    pub fn d2i_ASN1_VISIBLESTRING(
+        out: *mut *mut ASN1_VISIBLESTRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_VISIBLESTRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_BMPSTRING"]
+    pub fn i2d_ASN1_BMPSTRING(
+        in_: *const ASN1_BMPSTRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_GENERALSTRING"]
+    pub fn i2d_ASN1_GENERALSTRING(
+        in_: *const ASN1_GENERALSTRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_IA5STRING"]
+    pub fn i2d_ASN1_IA5STRING(
+        in_: *const ASN1_IA5STRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_OCTET_STRING"]
+    pub fn i2d_ASN1_OCTET_STRING(
+        in_: *const ASN1_OCTET_STRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_PRINTABLESTRING"]
+    pub fn i2d_ASN1_PRINTABLESTRING(
+        in_: *const ASN1_PRINTABLESTRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_T61STRING"]
+    pub fn i2d_ASN1_T61STRING(
+        in_: *const ASN1_T61STRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_UNIVERSALSTRING"]
+    pub fn i2d_ASN1_UNIVERSALSTRING(
+        in_: *const ASN1_UNIVERSALSTRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_UTF8STRING"]
+    pub fn i2d_ASN1_UTF8STRING(
+        in_: *const ASN1_UTF8STRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_VISIBLESTRING"]
+    pub fn i2d_ASN1_VISIBLESTRING(
+        in_: *const ASN1_VISIBLESTRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BMPSTRING_it"]
+    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALSTRING_it"]
+    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_IA5STRING_it"]
+    pub static ASN1_IA5STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OCTET_STRING_it"]
+    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_PRINTABLESTRING_it"]
+    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_T61STRING_it"]
+    pub static ASN1_T61STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UNIVERSALSTRING_it"]
+    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTF8STRING_it"]
+    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_VISIBLESTRING_it"]
+    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OCTET_STRING_dup"]
+    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OCTET_STRING_cmp"]
+    pub fn ASN1_OCTET_STRING_cmp(
+        a: *const ASN1_OCTET_STRING,
+        b: *const ASN1_OCTET_STRING,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OCTET_STRING_set"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_to_UTF8"]
+    pub fn ASN1_STRING_to_UTF8(
+        out: *mut *mut ::std::os::raw::c_uchar,
+        in_: *const ASN1_STRING,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_mbstring_copy"]
+    pub fn ASN1_mbstring_copy(
+        out: *mut *mut ASN1_STRING,
+        in_: *const u8,
+        len: ossl_ssize_t,
+        inform: ::std::os::raw::c_int,
+        mask: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_mbstring_ncopy"]
+    pub fn ASN1_mbstring_ncopy(
+        out: *mut *mut ASN1_STRING,
+        in_: *const u8,
+        len: ossl_ssize_t,
+        inform: ::std::os::raw::c_int,
+        mask: ::std::os::raw::c_ulong,
+        minsize: ossl_ssize_t,
+        maxsize: ossl_ssize_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_set_by_NID"]
+    pub fn ASN1_STRING_set_by_NID(
+        out: *mut *mut ASN1_STRING,
+        in_: *const ::std::os::raw::c_uchar,
+        len: ossl_ssize_t,
+        inform: ::std::os::raw::c_int,
+        nid: ::std::os::raw::c_int,
+    ) -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_TABLE_add"]
+    pub fn ASN1_STRING_TABLE_add(
+        nid: ::std::os::raw::c_int,
+        minsize: ::std::os::raw::c_long,
+        maxsize: ::std::os::raw::c_long,
+        mask: ::std::os::raw::c_ulong,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DIRECTORYSTRING_new"]
+    pub fn DIRECTORYSTRING_new() -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DIRECTORYSTRING_free"]
+    pub fn DIRECTORYSTRING_free(str_: *mut ASN1_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DIRECTORYSTRING"]
+    pub fn d2i_DIRECTORYSTRING(
+        out: *mut *mut ASN1_STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DIRECTORYSTRING"]
+    pub fn i2d_DIRECTORYSTRING(
+        in_: *const ASN1_STRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DIRECTORYSTRING_it"]
+    pub static DIRECTORYSTRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DISPLAYTEXT_new"]
+    pub fn DISPLAYTEXT_new() -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DISPLAYTEXT_free"]
+    pub fn DISPLAYTEXT_free(str_: *mut ASN1_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DISPLAYTEXT"]
+    pub fn d2i_DISPLAYTEXT(
+        out: *mut *mut ASN1_STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DISPLAYTEXT"]
+    pub fn i2d_DISPLAYTEXT(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DISPLAYTEXT_it"]
+    pub static DISPLAYTEXT_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BIT_STRING_new"]
+    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BIT_STRING_free"]
+    pub fn ASN1_BIT_STRING_free(str_: *mut ASN1_BIT_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_BIT_STRING"]
+    pub fn d2i_ASN1_BIT_STRING(
+        out: *mut *mut ASN1_BIT_STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_BIT_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_BIT_STRING"]
+    pub fn i2d_ASN1_BIT_STRING(
+        in_: *const ASN1_BIT_STRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_c2i_ASN1_BIT_STRING"]
+    pub fn c2i_ASN1_BIT_STRING(
+        out: *mut *mut ASN1_BIT_STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_BIT_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2c_ASN1_BIT_STRING"]
+    pub fn i2c_ASN1_BIT_STRING(
+        in_: *const ASN1_BIT_STRING,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BIT_STRING_it"]
+    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BIT_STRING_num_bytes"]
+    pub fn ASN1_BIT_STRING_num_bytes(
+        str_: *const ASN1_BIT_STRING,
+        out: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BIT_STRING_set"]
+    pub fn ASN1_BIT_STRING_set(
+        str_: *mut ASN1_BIT_STRING,
+        d: *const ::std::os::raw::c_uchar,
+        length: ossl_ssize_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BIT_STRING_set_bit"]
+    pub fn ASN1_BIT_STRING_set_bit(
+        str_: *mut ASN1_BIT_STRING,
+        n: ::std::os::raw::c_int,
+        value: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BIT_STRING_get_bit"]
+    pub fn ASN1_BIT_STRING_get_bit(
+        str_: *const ASN1_BIT_STRING,
+        n: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_BIT_STRING_check"]
+    pub fn ASN1_BIT_STRING_check(
+        str_: *const ASN1_BIT_STRING,
+        flags: *const ::std::os::raw::c_uchar,
+        flags_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_ASN1_INTEGER {
+    _unused: [u8; 0],
+}
+pub type sk_ASN1_INTEGER_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_INTEGER)>;
+pub type sk_ASN1_INTEGER_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_INTEGER) -> *mut ASN1_INTEGER>;
+pub type sk_ASN1_INTEGER_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const ASN1_INTEGER,
+        arg2: *const *const ASN1_INTEGER,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_ASN1_INTEGER_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut ASN1_INTEGER,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_new"]
+    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_free"]
+    pub fn ASN1_INTEGER_free(str_: *mut ASN1_INTEGER);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_dup"]
+    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_INTEGER"]
+    pub fn d2i_ASN1_INTEGER(
+        out: *mut *mut ASN1_INTEGER,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_INTEGER"]
+    pub fn i2d_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_c2i_ASN1_INTEGER"]
+    pub fn c2i_ASN1_INTEGER(
+        in_: *mut *mut ASN1_INTEGER,
+        outp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2c_ASN1_INTEGER"]
+    pub fn i2c_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_it"]
+    pub static ASN1_INTEGER_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_set_uint64"]
+    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_set_int64"]
+    pub fn ASN1_INTEGER_set_int64(out: *mut ASN1_INTEGER, v: i64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_get_uint64"]
+    pub fn ASN1_INTEGER_get_uint64(out: *mut u64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_get_int64"]
+    pub fn ASN1_INTEGER_get_int64(out: *mut i64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_to_ASN1_INTEGER"]
+    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_to_BN"]
+    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_cmp"]
+    pub fn ASN1_INTEGER_cmp(
+        x: *const ASN1_INTEGER,
+        y: *const ASN1_INTEGER,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_new"]
+    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_free"]
+    pub fn ASN1_ENUMERATED_free(str_: *mut ASN1_ENUMERATED);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_ENUMERATED"]
+    pub fn d2i_ASN1_ENUMERATED(
+        out: *mut *mut ASN1_ENUMERATED,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_ENUMERATED;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_ENUMERATED"]
+    pub fn i2d_ASN1_ENUMERATED(
+        in_: *const ASN1_ENUMERATED,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_it"]
+    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_set_uint64"]
+    pub fn ASN1_ENUMERATED_set_uint64(out: *mut ASN1_ENUMERATED, v: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_set_int64"]
+    pub fn ASN1_ENUMERATED_set_int64(out: *mut ASN1_ENUMERATED, v: i64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_get_uint64"]
+    pub fn ASN1_ENUMERATED_get_uint64(
+        out: *mut u64,
+        a: *const ASN1_ENUMERATED,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_get_int64"]
+    pub fn ASN1_ENUMERATED_get_int64(
+        out: *mut i64,
+        a: *const ASN1_ENUMERATED,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_to_ASN1_ENUMERATED"]
+    pub fn BN_to_ASN1_ENUMERATED(
+        bn: *const BIGNUM,
+        ai: *mut ASN1_ENUMERATED,
+    ) -> *mut ASN1_ENUMERATED;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_to_BN"]
+    pub fn ASN1_ENUMERATED_to_BN(ai: *const ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_new"]
+    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_free"]
+    pub fn ASN1_UTCTIME_free(str_: *mut ASN1_UTCTIME);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_UTCTIME"]
+    pub fn d2i_ASN1_UTCTIME(
+        out: *mut *mut ASN1_UTCTIME,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_UTCTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_UTCTIME"]
+    pub fn i2d_ASN1_UTCTIME(in_: *const ASN1_UTCTIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_it"]
+    pub static ASN1_UTCTIME_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_check"]
+    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_set"]
+    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, posix_time: i64) -> *mut ASN1_UTCTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_adj"]
+    pub fn ASN1_UTCTIME_adj(
+        s: *mut ASN1_UTCTIME,
+        posix_time: i64,
+        offset_day: ::std::os::raw::c_int,
+        offset_sec: ::std::os::raw::c_long,
+    ) -> *mut ASN1_UTCTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_set_string"]
+    pub fn ASN1_UTCTIME_set_string(
+        s: *mut ASN1_UTCTIME,
+        str_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_cmp_time_t"]
+    pub fn ASN1_UTCTIME_cmp_time_t(s: *const ASN1_UTCTIME, t: time_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALIZEDTIME_new"]
+    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALIZEDTIME_free"]
+    pub fn ASN1_GENERALIZEDTIME_free(str_: *mut ASN1_GENERALIZEDTIME);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_GENERALIZEDTIME"]
+    pub fn d2i_ASN1_GENERALIZEDTIME(
+        out: *mut *mut ASN1_GENERALIZEDTIME,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_GENERALIZEDTIME"]
+    pub fn i2d_ASN1_GENERALIZEDTIME(
+        in_: *const ASN1_GENERALIZEDTIME,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALIZEDTIME_it"]
+    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALIZEDTIME_check"]
+    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALIZEDTIME_set"]
+    pub fn ASN1_GENERALIZEDTIME_set(
+        s: *mut ASN1_GENERALIZEDTIME,
+        posix_time: i64,
+    ) -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALIZEDTIME_adj"]
+    pub fn ASN1_GENERALIZEDTIME_adj(
+        s: *mut ASN1_GENERALIZEDTIME,
+        posix_time: i64,
+        offset_day: ::std::os::raw::c_int,
+        offset_sec: ::std::os::raw::c_long,
+    ) -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALIZEDTIME_set_string"]
+    pub fn ASN1_GENERALIZEDTIME_set_string(
+        s: *mut ASN1_GENERALIZEDTIME,
+        str_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_new"]
+    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_free"]
+    pub fn ASN1_TIME_free(str_: *mut ASN1_TIME);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_TIME"]
+    pub fn d2i_ASN1_TIME(
+        out: *mut *mut ASN1_TIME,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_TIME"]
+    pub fn i2d_ASN1_TIME(in_: *const ASN1_TIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_it"]
+    pub static ASN1_TIME_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_diff"]
+    pub fn ASN1_TIME_diff(
+        out_days: *mut ::std::os::raw::c_int,
+        out_seconds: *mut ::std::os::raw::c_int,
+        from: *const ASN1_TIME,
+        to: *const ASN1_TIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_set_posix"]
+    pub fn ASN1_TIME_set_posix(s: *mut ASN1_TIME, posix_time: i64) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_set"]
+    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, time: time_t) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_adj"]
+    pub fn ASN1_TIME_adj(
+        s: *mut ASN1_TIME,
+        posix_time: i64,
+        offset_day: ::std::os::raw::c_int,
+        offset_sec: ::std::os::raw::c_long,
+    ) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_check"]
+    pub fn ASN1_TIME_check(t: *const ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_to_generalizedtime"]
+    pub fn ASN1_TIME_to_generalizedtime(
+        t: *const ASN1_TIME,
+        out: *mut *mut ASN1_GENERALIZEDTIME,
+    ) -> *mut ASN1_GENERALIZEDTIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_set_string"]
+    pub fn ASN1_TIME_set_string(
+        s: *mut ASN1_TIME,
+        str_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_to_tm"]
+    pub fn ASN1_TIME_to_tm(t: *const ASN1_TIME, out: *mut tm) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_set_string_X509"]
+    pub fn ASN1_TIME_set_string_X509(
+        s: *mut ASN1_TIME,
+        str_: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_to_time_t"]
+    pub fn ASN1_TIME_to_time_t(t: *const ASN1_TIME, out: *mut time_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_to_posix"]
+    pub fn ASN1_TIME_to_posix(t: *const ASN1_TIME, out: *mut i64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_NULL_new"]
+    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_NULL_free"]
+    pub fn ASN1_NULL_free(null: *mut ASN1_NULL);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_NULL"]
+    pub fn d2i_ASN1_NULL(
+        out: *mut *mut ASN1_NULL,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_NULL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_NULL"]
+    pub fn i2d_ASN1_NULL(in_: *const ASN1_NULL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_NULL_it"]
+    pub static ASN1_NULL_it: ASN1_ITEM;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_ASN1_OBJECT {
+    _unused: [u8; 0],
+}
+pub type sk_ASN1_OBJECT_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_OBJECT)>;
+pub type sk_ASN1_OBJECT_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_OBJECT) -> *mut ASN1_OBJECT>;
+pub type sk_ASN1_OBJECT_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const ASN1_OBJECT,
+        arg2: *const *const ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_ASN1_OBJECT_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut ASN1_OBJECT,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OBJECT_create"]
+    pub fn ASN1_OBJECT_create(
+        nid: ::std::os::raw::c_int,
+        data: *const u8,
+        len: usize,
+        sn: *const ::std::os::raw::c_char,
+        ln: *const ::std::os::raw::c_char,
+    ) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OBJECT_free"]
+    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_OBJECT"]
+    pub fn d2i_ASN1_OBJECT(
+        out: *mut *mut ASN1_OBJECT,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_OBJECT"]
+    pub fn i2d_ASN1_OBJECT(in_: *const ASN1_OBJECT, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_c2i_ASN1_OBJECT"]
+    pub fn c2i_ASN1_OBJECT(
+        out: *mut *mut ASN1_OBJECT,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_OBJECT_it"]
+    pub static ASN1_OBJECT_it: 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,
+}
+#[test]
+fn bindgen_test_layout_asn1_type_st__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).ptr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(ptr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(boolean)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).asn1_string) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(asn1_string)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(object)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(integer)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enumerated) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(enumerated)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bit_string) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(bit_string)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).octet_string) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(octet_string)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).printablestring) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(printablestring)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).t61string) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(t61string)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ia5string) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(ia5string)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).generalstring) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(generalstring)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bmpstring) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(bmpstring)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).universalstring) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(universalstring)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).utctime) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(utctime)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).generalizedtime) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(generalizedtime)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).visiblestring) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(visiblestring)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).utf8string) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(utf8string)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(set)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sequence) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(sequence)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).asn1_value) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st__bindgen_ty_1),
+            "::",
+            stringify!(asn1_value)
+        )
+    );
+}
+impl Default for asn1_type_st__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[test]
+fn bindgen_test_layout_asn1_type_st() {
+    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).type_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(asn1_type_st),
+            "::",
+            stringify!(value)
+        )
+    );
+}
+impl Default for asn1_type_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_ASN1_TYPE {
+    _unused: [u8; 0],
+}
+pub type sk_ASN1_TYPE_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_TYPE)>;
+pub type sk_ASN1_TYPE_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_TYPE) -> *mut ASN1_TYPE>;
+pub type sk_ASN1_TYPE_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const ASN1_TYPE,
+        arg2: *const *const ASN1_TYPE,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_ASN1_TYPE_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut ASN1_TYPE,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TYPE_new"]
+    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TYPE_free"]
+    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_TYPE"]
+    pub fn d2i_ASN1_TYPE(
+        out: *mut *mut ASN1_TYPE,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_TYPE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_TYPE"]
+    pub fn i2d_ASN1_TYPE(in_: *const ASN1_TYPE, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ANY_it"]
+    pub static ASN1_ANY_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TYPE_get"]
+    pub fn ASN1_TYPE_get(a: *const ASN1_TYPE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TYPE_set"]
+    pub fn ASN1_TYPE_set(
+        a: *mut ASN1_TYPE,
+        type_: ::std::os::raw::c_int,
+        value: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TYPE_set1"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TYPE_cmp"]
+    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::std::os::raw::c_int;
+}
+pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_SEQUENCE_ANY"]
+    pub fn d2i_ASN1_SEQUENCE_ANY(
+        out: *mut *mut ASN1_SEQUENCE_ANY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_SEQUENCE_ANY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_SEQUENCE_ANY"]
+    pub fn i2d_ASN1_SEQUENCE_ANY(
+        in_: *const ASN1_SEQUENCE_ANY,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_SET_ANY"]
+    pub fn d2i_ASN1_SET_ANY(
+        out: *mut *mut ASN1_SEQUENCE_ANY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_SEQUENCE_ANY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_SET_ANY"]
+    pub fn i2d_ASN1_SET_ANY(
+        in_: *const ASN1_SEQUENCE_ANY,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_UTCTIME_print"]
+    pub fn ASN1_UTCTIME_print(out: *mut BIO, a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_GENERALIZEDTIME_print"]
+    pub fn ASN1_GENERALIZEDTIME_print(
+        out: *mut BIO,
+        a: *const ASN1_GENERALIZEDTIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_TIME_print"]
+    pub fn ASN1_TIME_print(out: *mut BIO, a: *const ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_print"]
+    pub fn ASN1_STRING_print(out: *mut BIO, str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_print_ex"]
+    pub fn ASN1_STRING_print_ex(
+        out: *mut BIO,
+        str_: *const ASN1_STRING,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_print_ex_fp"]
+    pub fn ASN1_STRING_print_ex_fp(
+        fp: *mut FILE,
+        str_: *const ASN1_STRING,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2a_ASN1_INTEGER"]
+    pub fn i2a_ASN1_INTEGER(bp: *mut BIO, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2a_ASN1_ENUMERATED"]
+    pub fn i2a_ASN1_ENUMERATED(bp: *mut BIO, a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2a_ASN1_OBJECT"]
+    pub fn i2a_ASN1_OBJECT(bp: *mut BIO, a: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2a_ASN1_STRING"]
+    pub fn i2a_ASN1_STRING(
+        bp: *mut BIO,
+        a: *const ASN1_STRING,
+        type_: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2t_ASN1_OBJECT"]
+    pub fn i2t_ASN1_OBJECT(
+        buf: *mut ::std::os::raw::c_char,
+        buf_len: ::std::os::raw::c_int,
+        a: *const ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_get_object"]
+    pub fn ASN1_get_object(
+        inp: *mut *const ::std::os::raw::c_uchar,
+        out_length: *mut ::std::os::raw::c_long,
+        out_tag: *mut ::std::os::raw::c_int,
+        out_class: *mut ::std::os::raw::c_int,
+        max_len: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_put_object"]
+    pub fn ASN1_put_object(
+        outp: *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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_put_eoc"]
+    pub fn ASN1_put_eoc(outp: *mut *mut ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_object_size"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_PRINTABLE_new"]
+    pub fn ASN1_PRINTABLE_new() -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_PRINTABLE_free"]
+    pub fn ASN1_PRINTABLE_free(str_: *mut ASN1_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ASN1_PRINTABLE"]
+    pub fn d2i_ASN1_PRINTABLE(
+        out: *mut *mut ASN1_STRING,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ASN1_PRINTABLE"]
+    pub fn i2d_ASN1_PRINTABLE(in_: *const ASN1_STRING, outp: *mut *mut u8)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_PRINTABLE_it"]
+    pub static ASN1_PRINTABLE_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_set"]
+    pub fn ASN1_INTEGER_set(
+        a: *mut ASN1_INTEGER,
+        v: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_set"]
+    pub fn ASN1_ENUMERATED_set(
+        a: *mut ASN1_ENUMERATED,
+        v: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_INTEGER_get"]
+    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_ENUMERATED_get"]
+    pub fn ASN1_ENUMERATED_get(a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_set_default_mask"]
+    pub fn ASN1_STRING_set_default_mask(mask: ::std::os::raw::c_ulong);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_set_default_mask_asc"]
+    pub fn ASN1_STRING_set_default_mask_asc(
+        p: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_get_default_mask"]
+    pub fn ASN1_STRING_get_default_mask() -> ::std::os::raw::c_ulong;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_STRING_TABLE_cleanup"]
+    pub fn ASN1_STRING_TABLE_cleanup();
+}
+pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ASN1_TLC_st {
+    _unused: [u8; 0],
+}
+pub type ASN1_TLC = ASN1_TLC_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct ASN1_TEMPLATE_st {
+    pub flags: u32,
+    pub tag: ::std::os::raw::c_int,
+    pub offset: ::std::os::raw::c_ulong,
+    pub field_name: *const ::std::os::raw::c_char,
+    pub item: *const ASN1_ITEM_st,
+}
+#[test]
+fn bindgen_test_layout_ASN1_TEMPLATE_st() {
+    const UNINIT: ::std::mem::MaybeUninit<ASN1_TEMPLATE_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_TEMPLATE_st>(),
+        32usize,
+        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::addr_of!((*ptr).flags) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_TEMPLATE_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_TEMPLATE_st),
+            "::",
+            stringify!(tag)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_TEMPLATE_st),
+            "::",
+            stringify!(offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).field_name) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_TEMPLATE_st),
+            "::",
+            stringify!(field_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).item) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_TEMPLATE_st),
+            "::",
+            stringify!(item)
+        )
+    );
+}
+impl Default for ASN1_TEMPLATE_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+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, PartialEq, Eq)]
+pub struct ASN1_ADB_st {
+    pub flags: u32,
+    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() {
+    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).flags) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_st),
+            "::",
+            stringify!(offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_st),
+            "::",
+            stringify!(unused)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tbl) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_st),
+            "::",
+            stringify!(tbl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tblcount) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_st),
+            "::",
+            stringify!(tblcount)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).default_tt) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_st),
+            "::",
+            stringify!(default_tt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).null_tt) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_st),
+            "::",
+            stringify!(null_tt)
+        )
+    );
+}
+impl Default for ASN1_ADB_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct ASN1_ADB_TABLE_st {
+    pub value: ::std::os::raw::c_int,
+    pub tt: ASN1_TEMPLATE,
+}
+#[test]
+fn bindgen_test_layout_ASN1_ADB_TABLE_st() {
+    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_TABLE_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_ADB_TABLE_st>(),
+        40usize,
+        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::addr_of!((*ptr).value) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_TABLE_st),
+            "::",
+            stringify!(value)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tt) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ADB_TABLE_st),
+            "::",
+            stringify!(tt)
+        )
+    );
+}
+impl Default for ASN1_ADB_TABLE_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct ASN1_ITEM_st {
+    pub itype: ::std::os::raw::c_char,
+    pub utype: ::std::os::raw::c_int,
+    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() {
+    const UNINIT: ::std::mem::MaybeUninit<ASN1_ITEM_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_ITEM_st>(),
+        48usize,
+        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::addr_of!((*ptr).itype) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ITEM_st),
+            "::",
+            stringify!(itype)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).utype) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ITEM_st),
+            "::",
+            stringify!(utype)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).templates) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ITEM_st),
+            "::",
+            stringify!(templates)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tcount) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ITEM_st),
+            "::",
+            stringify!(tcount)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).funcs) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ITEM_st),
+            "::",
+            stringify!(funcs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ITEM_st),
+            "::",
+            stringify!(size)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_ITEM_st),
+            "::",
+            stringify!(sname)
+        )
+    );
+}
+impl Default for ASN1_ITEM_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+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,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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_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() {
+    const UNINIT: ::std::mem::MaybeUninit<ASN1_EXTERN_FUNCS_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ASN1_EXTERN_FUNCS_st>(),
+        48usize,
+        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::addr_of!((*ptr).app_data) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(app_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_new) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_new)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_free) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_free)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_d2i) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_d2i)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_i2d) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_i2d)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_print) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_EXTERN_FUNCS_st),
+            "::",
+            stringify!(asn1_ex_print)
+        )
+    );
+}
+impl Default for ASN1_EXTERN_FUNCS_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type ASN1_EXTERN_FUNCS = ASN1_EXTERN_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, PartialEq, Eq)]
+pub struct ASN1_AUX_st {
+    pub app_data: *mut ::std::os::raw::c_void,
+    pub flags: u32,
+    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() {
+    const UNINIT: ::std::mem::MaybeUninit<ASN1_AUX_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).app_data) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_AUX_st),
+            "::",
+            stringify!(app_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_AUX_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ref_offset) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_AUX_st),
+            "::",
+            stringify!(ref_offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).asn1_cb) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_AUX_st),
+            "::",
+            stringify!(asn1_cb)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enc_offset) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ASN1_AUX_st),
+            "::",
+            stringify!(enc_offset)
+        )
+    );
+}
+impl Default for ASN1_AUX_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type ASN1_AUX = ASN1_AUX_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_SEQUENCE_it"]
+    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_ASN1_VALUE {
+    _unused: [u8; 0],
+}
+pub type sk_ASN1_VALUE_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_VALUE)>;
+pub type sk_ASN1_VALUE_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_VALUE) -> *mut ASN1_VALUE>;
+pub type sk_ASN1_VALUE_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const ASN1_VALUE,
+        arg2: *const *const ASN1_VALUE,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_ASN1_VALUE_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut ASN1_VALUE,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncodeBlock"]
+    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncodedLength"]
+    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecodedLength"]
+    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecodeBase64"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_ENCODE_CTX_new"]
+    pub fn EVP_ENCODE_CTX_new() -> *mut EVP_ENCODE_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_ENCODE_CTX_free"]
+    pub fn EVP_ENCODE_CTX_free(ctx: *mut EVP_ENCODE_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncodeInit"]
+    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncodeUpdate"]
+    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,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncodeFinal"]
+    pub fn EVP_EncodeFinal(
+        ctx: *mut EVP_ENCODE_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecodeInit"]
+    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecodeUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecodeFinal"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecodeBlock"]
+    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<evp_encode_ctx_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).data_used) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_encode_ctx_st),
+            "::",
+            stringify!(data_used)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_encode_ctx_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).eof_seen) as usize - ptr as usize },
+        52usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_encode_ctx_st),
+            "::",
+            stringify!(eof_seen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).error_encountered) as usize - ptr as usize },
+        53usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_encode_ctx_st),
+            "::",
+            stringify!(error_encountered)
+        )
+    );
+}
+impl Default for evp_encode_ctx_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct blake2b_state_st {
+    pub h: [u64; 8usize],
+    pub t_low: u64,
+    pub t_high: u64,
+    pub block: [u8; 128usize],
+    pub block_used: usize,
+}
+#[test]
+fn bindgen_test_layout_blake2b_state_st() {
+    const UNINIT: ::std::mem::MaybeUninit<blake2b_state_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<blake2b_state_st>(),
+        216usize,
+        concat!("Size of: ", stringify!(blake2b_state_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<blake2b_state_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(blake2b_state_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(blake2b_state_st),
+            "::",
+            stringify!(h)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).t_low) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(blake2b_state_st),
+            "::",
+            stringify!(t_low)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).t_high) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(blake2b_state_st),
+            "::",
+            stringify!(t_high)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(blake2b_state_st),
+            "::",
+            stringify!(block)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).block_used) as usize - ptr as usize },
+        208usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(blake2b_state_st),
+            "::",
+            stringify!(block_used)
+        )
+    );
+}
+impl Default for blake2b_state_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BLAKE2B256_Init"]
+    pub fn BLAKE2B256_Init(b2b: *mut BLAKE2B_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BLAKE2B256_Update"]
+    pub fn BLAKE2B256_Update(
+        b2b: *mut BLAKE2B_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BLAKE2B256_Final"]
+    pub fn BLAKE2B256_Final(out: *mut u8, b2b: *mut BLAKE2B_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BLAKE2B256"]
+    pub fn BLAKE2B256(data: *const u8, len: usize, out: *mut u8);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct bf_key_st {
+    pub P: [u32; 18usize],
+    pub S: [u32; 1024usize],
+}
+#[test]
+fn bindgen_test_layout_bf_key_st() {
+    const UNINIT: ::std::mem::MaybeUninit<bf_key_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<bf_key_st>(),
+        4168usize,
+        concat!("Size of: ", stringify!(bf_key_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<bf_key_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(bf_key_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).P) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bf_key_st),
+            "::",
+            stringify!(P)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).S) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(bf_key_st),
+            "::",
+            stringify!(S)
+        )
+    );
+}
+impl Default for bf_key_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type BF_KEY = bf_key_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BF_set_key"]
+    pub fn BF_set_key(key: *mut BF_KEY, len: usize, data: *const u8);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BF_encrypt"]
+    pub fn BF_encrypt(data: *mut u32, key: *const BF_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BF_decrypt"]
+    pub fn BF_decrypt(data: *mut u32, key: *const BF_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BF_ecb_encrypt"]
+    pub fn BF_ecb_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        key: *const BF_KEY,
+        enc: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BF_cbc_encrypt"]
+    pub fn BF_cbc_encrypt(
+        in_: *const u8,
+        out: *mut u8,
+        length: usize,
+        schedule: *const BF_KEY,
+        ivec: *mut u8,
+        enc: ::std::os::raw::c_int,
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct cbs_st {
+    pub data: *const u8,
+    pub len: usize,
+}
+#[test]
+fn bindgen_test_layout_cbs_st() {
+    const UNINIT: ::std::mem::MaybeUninit<cbs_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).data) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbs_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbs_st),
+            "::",
+            stringify!(len)
+        )
+    );
+}
+impl Default for cbs_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_init"]
+    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_skip"]
+    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_data"]
+    pub fn CBS_data(cbs: *const CBS) -> *const u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_len"]
+    pub fn CBS_len(cbs: *const CBS) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_stow"]
+    pub fn CBS_stow(
+        cbs: *const CBS,
+        out_ptr: *mut *mut u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_strdup"]
+    pub fn CBS_strdup(
+        cbs: *const CBS,
+        out_ptr: *mut *mut ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_contains_zero_byte"]
+    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_mem_equal"]
+    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u8"]
+    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u16"]
+    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u16le"]
+    pub fn CBS_get_u16le(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u24"]
+    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u32"]
+    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u32le"]
+    pub fn CBS_get_u32le(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u64"]
+    pub fn CBS_get_u64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u64le"]
+    pub fn CBS_get_u64le(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_last_u8"]
+    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_bytes"]
+    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_copy_bytes"]
+    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u8_length_prefixed"]
+    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u16_length_prefixed"]
+    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u24_length_prefixed"]
+    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_until_first"]
+    pub fn CBS_get_until_first(cbs: *mut CBS, out: *mut CBS, c: u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_u64_decimal"]
+    pub fn CBS_get_u64_decimal(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_asn1"]
+    pub fn CBS_get_asn1(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        tag_value: CBS_ASN1_TAG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_asn1_element"]
+    pub fn CBS_get_asn1_element(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        tag_value: CBS_ASN1_TAG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_peek_asn1_tag"]
+    pub fn CBS_peek_asn1_tag(cbs: *const CBS, tag_value: CBS_ASN1_TAG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_any_asn1"]
+    pub fn CBS_get_any_asn1(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_tag: *mut CBS_ASN1_TAG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_any_asn1_element"]
+    pub fn CBS_get_any_asn1_element(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_tag: *mut CBS_ASN1_TAG,
+        out_header_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_any_ber_asn1_element"]
+    pub fn CBS_get_any_ber_asn1_element(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_tag: *mut CBS_ASN1_TAG,
+        out_header_len: *mut usize,
+        out_ber_found: *mut ::std::os::raw::c_int,
+        out_indefinite: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_asn1_uint64"]
+    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_asn1_int64"]
+    pub fn CBS_get_asn1_int64(cbs: *mut CBS, out: *mut i64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_asn1_bool"]
+    pub fn CBS_get_asn1_bool(
+        cbs: *mut CBS,
+        out: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_optional_asn1"]
+    pub fn CBS_get_optional_asn1(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_present: *mut ::std::os::raw::c_int,
+        tag: CBS_ASN1_TAG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_optional_asn1_octet_string"]
+    pub fn CBS_get_optional_asn1_octet_string(
+        cbs: *mut CBS,
+        out: *mut CBS,
+        out_present: *mut ::std::os::raw::c_int,
+        tag: CBS_ASN1_TAG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_optional_asn1_uint64"]
+    pub fn CBS_get_optional_asn1_uint64(
+        cbs: *mut CBS,
+        out: *mut u64,
+        tag: CBS_ASN1_TAG,
+        default_value: u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_optional_asn1_bool"]
+    pub fn CBS_get_optional_asn1_bool(
+        cbs: *mut CBS,
+        out: *mut ::std::os::raw::c_int,
+        tag: CBS_ASN1_TAG,
+        default_value: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_is_valid_asn1_bitstring"]
+    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_asn1_bitstring_has_bit"]
+    pub fn CBS_asn1_bitstring_has_bit(
+        cbs: *const CBS,
+        bit: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_is_valid_asn1_integer"]
+    pub fn CBS_is_valid_asn1_integer(
+        cbs: *const CBS,
+        out_is_negative: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_is_unsigned_asn1_integer"]
+    pub fn CBS_is_unsigned_asn1_integer(cbs: *const CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_is_valid_asn1_oid"]
+    pub fn CBS_is_valid_asn1_oid(cbs: *const CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_asn1_oid_to_text"]
+    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_parse_generalized_time"]
+    pub fn CBS_parse_generalized_time(
+        cbs: *const CBS,
+        out_tm: *mut tm,
+        allow_timezone_offset: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_parse_utc_time"]
+    pub fn CBS_parse_utc_time(
+        cbs: *const CBS,
+        out_tm: *mut tm,
+        allow_timezone_offset: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBS_get_optional_asn1_int64"]
+    pub fn CBS_get_optional_asn1_int64(
+        cbs: *mut CBS,
+        out: *mut i64,
+        tag: CBS_ASN1_TAG,
+        default_value: i64,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct cbb_buffer_st {
+    pub buf: *mut u8,
+    pub len: usize,
+    pub cap: usize,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+    pub __bindgen_padding_0: [u8; 7usize],
+}
+#[test]
+fn bindgen_test_layout_cbb_buffer_st() {
+    const UNINIT: ::std::mem::MaybeUninit<cbb_buffer_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).buf) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_buffer_st),
+            "::",
+            stringify!(buf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_buffer_st),
+            "::",
+            stringify!(len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cap) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_buffer_st),
+            "::",
+            stringify!(cap)
+        )
+    );
+}
+impl Default for cbb_buffer_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl cbb_buffer_st {
+    #[inline]
+    pub fn can_resize(&self) -> ::std::os::raw::c_uint {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+    }
+    #[inline]
+    pub fn set_can_resize(&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 error(&self) -> ::std::os::raw::c_uint {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+    }
+    #[inline]
+    pub fn set_error(&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(
+        can_resize: ::std::os::raw::c_uint,
+        error: ::std::os::raw::c_uint,
+    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+        __bindgen_bitfield_unit.set(0usize, 1u8, {
+            let can_resize: u32 = unsafe { ::std::mem::transmute(can_resize) };
+            can_resize as u64
+        });
+        __bindgen_bitfield_unit.set(1usize, 1u8, {
+            let error: u32 = unsafe { ::std::mem::transmute(error) };
+            error as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct cbb_child_st {
+    pub base: *mut cbb_buffer_st,
+    pub offset: usize,
+    pub pending_len_len: u8,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+    pub __bindgen_padding_0: [u16; 3usize],
+}
+#[test]
+fn bindgen_test_layout_cbb_child_st() {
+    const UNINIT: ::std::mem::MaybeUninit<cbb_child_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<cbb_child_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(cbb_child_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<cbb_child_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(cbb_child_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_child_st),
+            "::",
+            stringify!(base)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_child_st),
+            "::",
+            stringify!(offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pending_len_len) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_child_st),
+            "::",
+            stringify!(pending_len_len)
+        )
+    );
+}
+impl Default for cbb_child_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl cbb_child_st {
+    #[inline]
+    pub fn pending_is_asn1(&self) -> ::std::os::raw::c_uint {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+    }
+    #[inline]
+    pub fn set_pending_is_asn1(&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(
+        pending_is_asn1: ::std::os::raw::c_uint,
+    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+        __bindgen_bitfield_unit.set(0usize, 1u8, {
+            let pending_is_asn1: u32 = unsafe { ::std::mem::transmute(pending_is_asn1) };
+            pending_is_asn1 as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct cbb_st {
+    pub child: *mut CBB,
+    pub is_child: ::std::os::raw::c_char,
+    pub u: cbb_st__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union cbb_st__bindgen_ty_1 {
+    pub base: cbb_buffer_st,
+    pub child: cbb_child_st,
+}
+#[test]
+fn bindgen_test_layout_cbb_st__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<cbb_st__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<cbb_st__bindgen_ty_1>(),
+        32usize,
+        concat!("Size of: ", stringify!(cbb_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<cbb_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(cbb_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_st__bindgen_ty_1),
+            "::",
+            stringify!(base)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_st__bindgen_ty_1),
+            "::",
+            stringify!(child)
+        )
+    );
+}
+impl Default for cbb_st__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[test]
+fn bindgen_test_layout_cbb_st() {
+    const UNINIT: ::std::mem::MaybeUninit<cbb_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<cbb_st>(),
+        48usize,
+        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::addr_of!((*ptr).child) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_st),
+            "::",
+            stringify!(child)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).is_child) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cbb_st),
+            "::",
+            stringify!(is_child)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
+        16usize,
+        concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(u))
+    );
+}
+impl Default for cbb_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_zero"]
+    pub fn CBB_zero(cbb: *mut CBB);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_init"]
+    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_init_fixed"]
+    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_cleanup"]
+    pub fn CBB_cleanup(cbb: *mut CBB);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_finish"]
+    pub fn CBB_finish(
+        cbb: *mut CBB,
+        out_data: *mut *mut u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_flush"]
+    pub fn CBB_flush(cbb: *mut CBB) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_data"]
+    pub fn CBB_data(cbb: *const CBB) -> *const u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_len"]
+    pub fn CBB_len(cbb: *const CBB) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u8_length_prefixed"]
+    pub fn CBB_add_u8_length_prefixed(
+        cbb: *mut CBB,
+        out_contents: *mut CBB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u16_length_prefixed"]
+    pub fn CBB_add_u16_length_prefixed(
+        cbb: *mut CBB,
+        out_contents: *mut CBB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u24_length_prefixed"]
+    pub fn CBB_add_u24_length_prefixed(
+        cbb: *mut CBB,
+        out_contents: *mut CBB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_asn1"]
+    pub fn CBB_add_asn1(
+        cbb: *mut CBB,
+        out_contents: *mut CBB,
+        tag: CBS_ASN1_TAG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_bytes"]
+    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_zeros"]
+    pub fn CBB_add_zeros(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_space"]
+    pub fn CBB_add_space(
+        cbb: *mut CBB,
+        out_data: *mut *mut u8,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_reserve"]
+    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_did_write"]
+    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u8"]
+    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u16"]
+    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u16le"]
+    pub fn CBB_add_u16le(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u24"]
+    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u32"]
+    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u32le"]
+    pub fn CBB_add_u32le(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u64"]
+    pub fn CBB_add_u64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_u64le"]
+    pub fn CBB_add_u64le(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_discard_child"]
+    pub fn CBB_discard_child(cbb: *mut CBB);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_asn1_uint64"]
+    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_asn1_uint64_with_tag"]
+    pub fn CBB_add_asn1_uint64_with_tag(
+        cbb: *mut CBB,
+        value: u64,
+        tag: CBS_ASN1_TAG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_asn1_int64"]
+    pub fn CBB_add_asn1_int64(cbb: *mut CBB, value: i64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_asn1_int64_with_tag"]
+    pub fn CBB_add_asn1_int64_with_tag(
+        cbb: *mut CBB,
+        value: i64,
+        tag: CBS_ASN1_TAG,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_asn1_octet_string"]
+    pub fn CBB_add_asn1_octet_string(
+        cbb: *mut CBB,
+        data: *const u8,
+        data_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_asn1_bool"]
+    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_add_asn1_oid_from_text"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CBB_flush_asn1_set_of"]
+    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_chacha_20"]
+    pub fn CRYPTO_chacha_20(
+        out: *mut u8,
+        in_: *const u8,
+        in_len: usize,
+        key: *const u8,
+        nonce: *const u8,
+        counter: u32,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_rc4"]
+    pub fn EVP_rc4() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_des_cbc"]
+    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_des_ecb"]
+    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_des_ede"]
+    pub fn EVP_des_ede() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_des_ede3"]
+    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_des_ede_cbc"]
+    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_des_ede3_cbc"]
+    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_ecb"]
+    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_cbc"]
+    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_ctr"]
+    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_ofb"]
+    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_ecb"]
+    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_cbc"]
+    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_ctr"]
+    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_ofb"]
+    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_xts"]
+    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_wrap"]
+    pub fn EVP_aes_256_wrap() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_enc_null"]
+    pub fn EVP_enc_null() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_rc2_cbc"]
+    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_rc2_40_cbc"]
+    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_chacha20_poly1305"]
+    pub fn EVP_chacha20_poly1305() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_get_cipherbynid"]
+    pub fn EVP_get_cipherbynid(nid: ::std::os::raw::c_int) -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_init"]
+    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_new"]
+    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_cleanup"]
+    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_free"]
+    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_copy"]
+    pub fn EVP_CIPHER_CTX_copy(
+        out: *mut EVP_CIPHER_CTX,
+        in_: *const EVP_CIPHER_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_reset"]
+    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CipherInit_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncryptInit_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecryptInit_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncryptUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncryptFinal_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecryptUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecryptFinal_ex"]
+    pub fn EVP_DecryptFinal_ex(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CipherUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CipherFinal_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_cipher"]
+    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_nid"]
+    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_encrypting"]
+    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_block_size"]
+    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_key_length"]
+    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_iv_length"]
+    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_get_app_data"]
+    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_set_app_data"]
+    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_flags"]
+    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_mode"]
+    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_ctrl"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_set_padding"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_set_key_length"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_nid"]
+    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_name"]
+    pub fn EVP_CIPHER_name(cipher: *const EVP_CIPHER) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_block_size"]
+    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_key_length"]
+    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_iv_length"]
+    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_flags"]
+    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_mode"]
+    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_BytesToKey"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_cbc_hmac_sha1"]
+    pub fn EVP_aes_128_cbc_hmac_sha1() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_cbc_hmac_sha1"]
+    pub fn EVP_aes_256_cbc_hmac_sha1() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_cbc_hmac_sha256"]
+    pub fn EVP_aes_128_cbc_hmac_sha256() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_cbc_hmac_sha256"]
+    pub fn EVP_aes_256_cbc_hmac_sha256() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CipherInit"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncryptInit"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecryptInit"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CipherFinal"]
+    pub fn EVP_CipherFinal(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_EncryptFinal"]
+    pub fn EVP_EncryptFinal(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DecryptFinal"]
+    pub fn EVP_DecryptFinal(
+        ctx: *mut EVP_CIPHER_CTX,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_Cipher"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_get_cipherbyname"]
+    pub fn EVP_get_cipherbyname(name: *const ::std::os::raw::c_char) -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_gcm"]
+    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_gcm"]
+    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_ccm"]
+    pub fn EVP_aes_128_ccm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_ccm"]
+    pub fn EVP_aes_192_ccm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_ccm"]
+    pub fn EVP_aes_256_ccm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_ecb"]
+    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_cbc"]
+    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_ctr"]
+    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_gcm"]
+    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_ofb"]
+    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_des_ede3_ecb"]
+    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_cfb128"]
+    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_cfb"]
+    pub fn EVP_aes_128_cfb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_cfb1"]
+    pub fn EVP_aes_128_cfb1() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_128_cfb8"]
+    pub fn EVP_aes_128_cfb8() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_cfb128"]
+    pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_cfb"]
+    pub fn EVP_aes_192_cfb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_cfb1"]
+    pub fn EVP_aes_192_cfb1() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_192_cfb8"]
+    pub fn EVP_aes_192_cfb8() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_cfb128"]
+    pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_cfb"]
+    pub fn EVP_aes_256_cfb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_cfb1"]
+    pub fn EVP_aes_256_cfb1() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aes_256_cfb8"]
+    pub fn EVP_aes_256_cfb8() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_bf_ecb"]
+    pub fn EVP_bf_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_bf_cbc"]
+    pub fn EVP_bf_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_bf_cfb"]
+    pub fn EVP_bf_cfb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_cast5_ecb"]
+    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_cast5_cbc"]
+    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_CTX_set_flags"]
+    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_add_cipher_alias"]
+    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;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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 final_: [u8; 32usize],
+    pub poisoned: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_evp_cipher_ctx_st() {
+    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_ctx_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).cipher) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(cipher)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(app_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cipher_data) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(cipher_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).key_len) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(key_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).encrypt) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(encrypt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).oiv) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(oiv)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
+        52usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(iv)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
+        68usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(buf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).buf_len) as usize - ptr as usize },
+        100usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(buf_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
+        104usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(num)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).final_used) as usize - ptr as usize },
+        108usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(final_used)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).final_) as usize - ptr as usize },
+        112usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(final_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).poisoned) as usize - ptr as usize },
+        144usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_ctx_st),
+            "::",
+            stringify!(poisoned)
+        )
+    );
+}
+impl Default for evp_cipher_ctx_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_info_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).cipher) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_info_st),
+            "::",
+            stringify!(cipher)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_cipher_info_st),
+            "::",
+            stringify!(iv)
+        )
+    );
+}
+impl Default for evp_cipher_info_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type EVP_CIPHER_INFO = evp_cipher_info_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AES_CMAC"]
+    pub fn AES_CMAC(
+        out: *mut u8,
+        key: *const u8,
+        key_len: usize,
+        in_: *const u8,
+        in_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CMAC_CTX_new"]
+    pub fn CMAC_CTX_new() -> *mut CMAC_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CMAC_CTX_free"]
+    pub fn CMAC_CTX_free(ctx: *mut CMAC_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CMAC_CTX_copy"]
+    pub fn CMAC_CTX_copy(out: *mut CMAC_CTX, in_: *const CMAC_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CMAC_Init"]
+    pub fn CMAC_Init(
+        ctx: *mut CMAC_CTX,
+        key: *const ::std::os::raw::c_void,
+        key_len: usize,
+        cipher: *const EVP_CIPHER,
+        engine: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CMAC_Reset"]
+    pub fn CMAC_Reset(ctx: *mut CMAC_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CMAC_Update"]
+    pub fn CMAC_Update(ctx: *mut CMAC_CTX, in_: *const u8, in_len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CMAC_Final"]
+    pub fn CMAC_Final(
+        ctx: *mut CMAC_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CMAC_CTX_get0_cipher_ctx"]
+    pub fn CMAC_CTX_get0_cipher_ctx(ctx: *mut CMAC_CTX) -> *mut EVP_CIPHER_CTX;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct lhash_st {
+    _unused: [u8; 0],
+}
+pub type _LHASH = lhash_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_lh_doall_arg"]
+    pub fn lh_doall_arg(
+        lh: *mut _LHASH,
+        func: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: *mut ::std::os::raw::c_void,
+                arg2: *mut ::std::os::raw::c_void,
+            ),
+        >,
+        arg: *mut ::std::os::raw::c_void,
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct conf_value_st {
+    pub section: *mut ::std::os::raw::c_char,
+    pub name: *mut ::std::os::raw::c_char,
+    pub value: *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_conf_value_st() {
+    const UNINIT: ::std::mem::MaybeUninit<conf_value_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<conf_value_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(conf_value_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<conf_value_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(conf_value_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).section) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(conf_value_st),
+            "::",
+            stringify!(section)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(conf_value_st),
+            "::",
+            stringify!(name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(conf_value_st),
+            "::",
+            stringify!(value)
+        )
+    );
+}
+impl Default for conf_value_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_CONF_VALUE {
+    _unused: [u8; 0],
+}
+pub type sk_CONF_VALUE_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CONF_VALUE)>;
+pub type sk_CONF_VALUE_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const CONF_VALUE) -> *mut CONF_VALUE>;
+pub type sk_CONF_VALUE_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const CONF_VALUE,
+        arg2: *const *const CONF_VALUE,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_CONF_VALUE_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut CONF_VALUE,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct lhash_st_CONF_VALUE {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct conf_st {
+    pub data: *mut lhash_st_CONF_VALUE,
+}
+#[test]
+fn bindgen_test_layout_conf_st() {
+    const UNINIT: ::std::mem::MaybeUninit<conf_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<conf_st>(),
+        8usize,
+        concat!("Size of: ", stringify!(conf_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<conf_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(conf_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(conf_st),
+            "::",
+            stringify!(data)
+        )
+    );
+}
+impl Default for conf_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NCONF_new"]
+    pub fn NCONF_new(method: *mut ::std::os::raw::c_void) -> *mut CONF;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NCONF_free"]
+    pub fn NCONF_free(conf: *mut CONF);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NCONF_load"]
+    pub fn NCONF_load(
+        conf: *mut CONF,
+        filename: *const ::std::os::raw::c_char,
+        out_error_line: *mut ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NCONF_load_bio"]
+    pub fn NCONF_load_bio(
+        conf: *mut CONF,
+        bio: *mut BIO,
+        out_error_line: *mut ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NCONF_get_section"]
+    pub fn NCONF_get_section(
+        conf: *const CONF,
+        section: *const ::std::os::raw::c_char,
+    ) -> *const stack_st_CONF_VALUE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NCONF_get_string"]
+    pub fn NCONF_get_string(
+        conf: *const CONF,
+        section: *const ::std::os::raw::c_char,
+        name: *const ::std::os::raw::c_char,
+    ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CONF_modules_load_file"]
+    pub fn CONF_modules_load_file(
+        filename: *const ::std::os::raw::c_char,
+        appname: *const ::std::os::raw::c_char,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CONF_get1_default_config_file"]
+    pub fn CONF_get1_default_config_file() -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CONF_modules_free"]
+    pub fn CONF_modules_free();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CONF_modules_unload"]
+    pub fn CONF_modules_unload(all: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CONF_modules_finish"]
+    pub fn CONF_modules_finish();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_config"]
+    pub fn OPENSSL_config(config_name: *const ::std::os::raw::c_char);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_no_config"]
+    pub fn OPENSSL_no_config();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CTR_DRBG_new"]
+    pub fn CTR_DRBG_new(
+        entropy: *const u8,
+        personalization: *const u8,
+        personalization_len: usize,
+    ) -> *mut CTR_DRBG_STATE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CTR_DRBG_free"]
+    pub fn CTR_DRBG_free(state: *mut CTR_DRBG_STATE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CTR_DRBG_reseed"]
+    pub fn CTR_DRBG_reseed(
+        drbg: *mut CTR_DRBG_STATE,
+        entropy: *const u8,
+        additional_data: *const u8,
+        additional_data_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CTR_DRBG_generate"]
+    pub fn CTR_DRBG_generate(
+        drbg: *mut CTR_DRBG_STATE,
+        out: *mut u8,
+        out_len: usize,
+        additional_data: *const u8,
+        additional_data_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CTR_DRBG_clear"]
+    pub fn CTR_DRBG_clear(drbg: *mut CTR_DRBG_STATE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X25519_keypair"]
+    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X25519"]
+    pub fn X25519(
+        out_shared_key: *mut u8,
+        private_key: *const u8,
+        peer_public_value: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X25519_public_from_private"]
+    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ED25519_keypair"]
+    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ED25519_sign"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ED25519_verify"]
+    pub fn ED25519_verify(
+        message: *const u8,
+        message_len: usize,
+        signature: *const u8,
+        public_key: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ED25519_keypair_from_seed"]
+    pub fn ED25519_keypair_from_seed(
+        out_public_key: *mut u8,
+        out_private_key: *mut u8,
+        seed: *const u8,
+    );
+}
+pub const spake2_role_t_spake2_role_alice: spake2_role_t = 0;
+pub const spake2_role_t_spake2_role_bob: spake2_role_t = 1;
+pub type spake2_role_t = ::std::os::raw::c_uint;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SPAKE2_CTX_new"]
+    pub fn SPAKE2_CTX_new(
+        my_role: spake2_role_t,
+        my_name: *const u8,
+        my_name_len: usize,
+        their_name: *const u8,
+        their_name_len: usize,
+    ) -> *mut SPAKE2_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SPAKE2_CTX_free"]
+    pub fn SPAKE2_CTX_free(ctx: *mut SPAKE2_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SPAKE2_generate_msg"]
+    pub fn SPAKE2_generate_msg(
+        ctx: *mut SPAKE2_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out_len: usize,
+        password: *const u8,
+        password_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SPAKE2_process_msg"]
+    pub fn SPAKE2_process_msg(
+        ctx: *mut SPAKE2_CTX,
+        out_key: *mut u8,
+        out_key_len: *mut usize,
+        max_out_key_len: usize,
+        their_msg: *const u8,
+        their_msg_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
+pub struct DES_cblock_st {
+    pub bytes: [u8; 8usize],
+}
+#[test]
+fn bindgen_test_layout_DES_cblock_st() {
+    const UNINIT: ::std::mem::MaybeUninit<DES_cblock_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).bytes) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DES_cblock_st),
+            "::",
+            stringify!(bytes)
+        )
+    );
+}
+pub type DES_cblock = DES_cblock_st;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
+pub struct DES_ks {
+    pub subkeys: [[u32; 2usize]; 16usize],
+}
+#[test]
+fn bindgen_test_layout_DES_ks() {
+    const UNINIT: ::std::mem::MaybeUninit<DES_ks> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).subkeys) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DES_ks),
+            "::",
+            stringify!(subkeys)
+        )
+    );
+}
+pub type DES_key_schedule = DES_ks;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_is_weak_key"]
+    pub fn DES_is_weak_key(key: *const DES_cblock) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_set_key"]
+    pub fn DES_set_key(
+        key: *const DES_cblock,
+        schedule: *mut DES_key_schedule,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_set_key_unchecked"]
+    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_key_sched"]
+    pub fn DES_key_sched(
+        key: *const DES_cblock,
+        schedule: *mut DES_key_schedule,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_set_odd_parity"]
+    pub fn DES_set_odd_parity(key: *mut DES_cblock);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_ecb_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_ncbc_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_ecb3_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_ede3_cbc_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DES_ede2_cbc_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_new"]
+    pub fn DH_new() -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_new_by_nid"]
+    pub fn DH_new_by_nid(nid: ::std::os::raw::c_int) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_free"]
+    pub fn DH_free(dh: *mut DH);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_up_ref"]
+    pub fn DH_up_ref(dh: *mut DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_bits"]
+    pub fn DH_bits(dh: *const DH) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get0_pub_key"]
+    pub fn DH_get0_pub_key(dh: *const DH) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get0_priv_key"]
+    pub fn DH_get0_priv_key(dh: *const DH) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get0_p"]
+    pub fn DH_get0_p(dh: *const DH) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get0_q"]
+    pub fn DH_get0_q(dh: *const DH) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get0_g"]
+    pub fn DH_get0_g(dh: *const DH) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get0_key"]
+    pub fn DH_get0_key(
+        dh: *const DH,
+        out_pub_key: *mut *const BIGNUM,
+        out_priv_key: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_set0_key"]
+    pub fn DH_set0_key(
+        dh: *mut DH,
+        pub_key: *mut BIGNUM,
+        priv_key: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get0_pqg"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_set0_pqg"]
+    pub fn DH_set0_pqg(
+        dh: *mut DH,
+        p: *mut BIGNUM,
+        q: *mut BIGNUM,
+        g: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_set_length"]
+    pub fn DH_set_length(dh: *mut DH, priv_length: ::std::os::raw::c_uint)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get_rfc7919_2048"]
+    pub fn DH_get_rfc7919_2048() -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get_rfc7919_4096"]
+    pub fn DH_get_rfc7919_4096() -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_rfc3526_prime_1536"]
+    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_rfc3526_prime_2048"]
+    pub fn BN_get_rfc3526_prime_2048(ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_rfc3526_prime_3072"]
+    pub fn BN_get_rfc3526_prime_3072(ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_rfc3526_prime_4096"]
+    pub fn BN_get_rfc3526_prime_4096(ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_rfc3526_prime_6144"]
+    pub fn BN_get_rfc3526_prime_6144(ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BN_get_rfc3526_prime_8192"]
+    pub fn BN_get_rfc3526_prime_8192(ret: *mut BIGNUM) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_generate_parameters_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_generate_key"]
+    pub fn DH_generate_key(dh: *mut DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_compute_key_padded"]
+    pub fn DH_compute_key_padded(
+        out: *mut u8,
+        peers_key: *const BIGNUM,
+        dh: *mut DH,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_compute_key_hashed"]
+    pub fn DH_compute_key_hashed(
+        dh: *mut DH,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out_len: usize,
+        peers_key: *const BIGNUM,
+        digest: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_size"]
+    pub fn DH_size(dh: *const DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_num_bits"]
+    pub fn DH_num_bits(dh: *const DH) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_check"]
+    pub fn DH_check(dh: *const DH, out_flags: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_check_pub_key"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DHparams_dup"]
+    pub fn DHparams_dup(dh: *const DH) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_parse_parameters"]
+    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_marshal_parameters"]
+    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_generate_parameters"]
+    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;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DHparams"]
+    pub fn d2i_DHparams(
+        ret: *mut *mut DH,
+        inp: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DHparams"]
+    pub fn i2d_DHparams(
+        in_: *const DH,
+        outp: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_compute_key"]
+    pub fn DH_compute_key(
+        out: *mut u8,
+        peers_key: *const BIGNUM,
+        dh: *mut DH,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_get_2048_256"]
+    pub fn DH_get_2048_256() -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DH_clear_flags"]
+    pub fn DH_clear_flags(dh: *mut DH, flags: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_md4"]
+    pub fn EVP_md4() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_md5"]
+    pub fn EVP_md5() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_ripemd160"]
+    pub fn EVP_ripemd160() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha1"]
+    pub fn EVP_sha1() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha224"]
+    pub fn EVP_sha224() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha256"]
+    pub fn EVP_sha256() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha384"]
+    pub fn EVP_sha384() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha512"]
+    pub fn EVP_sha512() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha512_224"]
+    pub fn EVP_sha512_224() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha512_256"]
+    pub fn EVP_sha512_256() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha3_224"]
+    pub fn EVP_sha3_224() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha3_256"]
+    pub fn EVP_sha3_256() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha3_384"]
+    pub fn EVP_sha3_384() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_sha3_512"]
+    pub fn EVP_sha3_512() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_shake128"]
+    pub fn EVP_shake128() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_shake256"]
+    pub fn EVP_shake256() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_blake2b256"]
+    pub fn EVP_blake2b256() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_md5_sha1"]
+    pub fn EVP_md5_sha1() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_get_digestbynid"]
+    pub fn EVP_get_digestbynid(nid: ::std::os::raw::c_int) -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_get_digestbyobj"]
+    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_init"]
+    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_new"]
+    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_cleanup"]
+    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_cleanse"]
+    pub fn EVP_MD_CTX_cleanse(ctx: *mut EVP_MD_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_free"]
+    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_copy_ex"]
+    pub fn EVP_MD_CTX_copy_ex(
+        out: *mut EVP_MD_CTX,
+        in_: *const EVP_MD_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_move"]
+    pub fn EVP_MD_CTX_move(out: *mut EVP_MD_CTX, in_: *mut EVP_MD_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_reset"]
+    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestInit_ex"]
+    pub fn EVP_DigestInit_ex(
+        ctx: *mut EVP_MD_CTX,
+        type_: *const EVP_MD,
+        engine: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestInit"]
+    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestFinal_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestFinal"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_Digest"]
+    pub fn EVP_Digest(
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+        md_out: *mut u8,
+        out_size: *mut ::std::os::raw::c_uint,
+        type_: *const EVP_MD,
+        impl_: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_type"]
+    pub fn EVP_MD_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_flags"]
+    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_size"]
+    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_block_size"]
+    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_md"]
+    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_size"]
+    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_block_size"]
+    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_type"]
+    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_parse_digest_algorithm"]
+    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_marshal_digest_algorithm"]
+    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_copy"]
+    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_get_digestbyname"]
+    pub fn EVP_get_digestbyname(arg1: *const ::std::os::raw::c_char) -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_create"]
+    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_destroy"]
+    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestFinalXOF"]
+    pub fn EVP_DigestFinalXOF(
+        ctx: *mut EVP_MD_CTX,
+        out: *mut u8,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_meth_get_flags"]
+    pub fn EVP_MD_meth_get_flags(md: *const EVP_MD) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_nid"]
+    pub fn EVP_MD_nid(md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_set_pkey_ctx"]
+    pub fn EVP_MD_CTX_set_pkey_ctx(ctx: *mut EVP_MD_CTX, pctx: *mut EVP_PKEY_CTX);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct evp_md_pctx_ops {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct env_md_ctx_st {
+    pub digest: *const EVP_MD,
+    pub md_data: *mut ::std::os::raw::c_void,
+    pub update: ::std::option::Option<
+        unsafe extern "C" fn(
+            ctx: *mut EVP_MD_CTX,
+            data: *const ::std::os::raw::c_void,
+            count: usize,
+        ),
+    >,
+    pub pctx: *mut EVP_PKEY_CTX,
+    pub pctx_ops: *const evp_md_pctx_ops,
+    pub flags: ::std::os::raw::c_ulong,
+}
+#[test]
+fn bindgen_test_layout_env_md_ctx_st() {
+    const UNINIT: ::std::mem::MaybeUninit<env_md_ctx_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<env_md_ctx_st>(),
+        48usize,
+        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::addr_of!((*ptr).digest) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(env_md_ctx_st),
+            "::",
+            stringify!(digest)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).md_data) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(env_md_ctx_st),
+            "::",
+            stringify!(md_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(env_md_ctx_st),
+            "::",
+            stringify!(update)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pctx) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(env_md_ctx_st),
+            "::",
+            stringify!(pctx)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pctx_ops) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(env_md_ctx_st),
+            "::",
+            stringify!(pctx_ops)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(env_md_ctx_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+}
+impl Default for env_md_ctx_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_unstable_sha3_enable"]
+    pub fn EVP_MD_unstable_sha3_enable(enable: bool);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_unstable_sha3_is_enabled"]
+    pub fn EVP_MD_unstable_sha3_is_enabled() -> bool;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_CTX_set_flags"]
+    pub fn EVP_MD_CTX_set_flags(ctx: *mut EVP_MD_CTX, flags: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_add_digest"]
+    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_md_null"]
+    pub fn EVP_md_null() -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_new"]
+    pub fn DSA_new() -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_free"]
+    pub fn DSA_free(dsa: *mut DSA);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_up_ref"]
+    pub fn DSA_up_ref(dsa: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_print"]
+    pub fn DSA_print(
+        bio: *mut BIO,
+        dsa: *const DSA,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_print_fp"]
+    pub fn DSA_print_fp(
+        fp: *mut FILE,
+        dsa: *const DSA,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_bits"]
+    pub fn DSA_bits(dsa: *const DSA) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get0_pub_key"]
+    pub fn DSA_get0_pub_key(dsa: *const DSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get0_priv_key"]
+    pub fn DSA_get0_priv_key(dsa: *const DSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get0_p"]
+    pub fn DSA_get0_p(dsa: *const DSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get0_q"]
+    pub fn DSA_get0_q(dsa: *const DSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get0_g"]
+    pub fn DSA_get0_g(dsa: *const DSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get0_key"]
+    pub fn DSA_get0_key(
+        dsa: *const DSA,
+        out_pub_key: *mut *const BIGNUM,
+        out_priv_key: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get0_pqg"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_set0_key"]
+    pub fn DSA_set0_key(
+        dsa: *mut DSA,
+        pub_key: *mut BIGNUM,
+        priv_key: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_set0_pqg"]
+    pub fn DSA_set0_pqg(
+        dsa: *mut DSA,
+        p: *mut BIGNUM,
+        q: *mut BIGNUM,
+        g: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_generate_parameters_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSAparams_dup"]
+    pub fn DSAparams_dup(dsa: *const DSA) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_generate_key"]
+    pub fn DSA_generate_key(dsa: *mut DSA) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct DSA_SIG_st {
+    pub r: *mut BIGNUM,
+    pub s: *mut BIGNUM,
+}
+#[test]
+fn bindgen_test_layout_DSA_SIG_st() {
+    const UNINIT: ::std::mem::MaybeUninit<DSA_SIG_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).r) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DSA_SIG_st),
+            "::",
+            stringify!(r)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DSA_SIG_st),
+            "::",
+            stringify!(s)
+        )
+    );
+}
+impl Default for DSA_SIG_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_SIG_new"]
+    pub fn DSA_SIG_new() -> *mut DSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_SIG_free"]
+    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_SIG_get0"]
+    pub fn DSA_SIG_get0(sig: *const DSA_SIG, out_r: *mut *const BIGNUM, out_s: *mut *const BIGNUM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_SIG_set0"]
+    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, r: *mut BIGNUM, s: *mut BIGNUM)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_do_sign"]
+    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_do_verify"]
+    pub fn DSA_do_verify(
+        digest: *const u8,
+        digest_len: usize,
+        sig: *const DSA_SIG,
+        dsa: *const DSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_do_check_signature"]
+    pub fn DSA_do_check_signature(
+        out_valid: *mut ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        sig: *const DSA_SIG,
+        dsa: *const DSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_sign"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_verify"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_check_signature"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_size"]
+    pub fn DSA_size(dsa: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_SIG_parse"]
+    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_SIG_marshal"]
+    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_parse_public_key"]
+    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_marshal_public_key"]
+    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_parse_private_key"]
+    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_marshal_private_key"]
+    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_parse_parameters"]
+    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_marshal_parameters"]
+    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_dup_DH"]
+    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get_ex_new_index"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_set_ex_data"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DSA_get_ex_data"]
+    pub fn DSA_get_ex_data(
+        dsa: *const DSA,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSA_SIG"]
+    pub fn d2i_DSA_SIG(
+        out_sig: *mut *mut DSA_SIG,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut DSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSA_SIG"]
+    pub fn i2d_DSA_SIG(in_: *const DSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSAPublicKey"]
+    pub fn d2i_DSAPublicKey(
+        out: *mut *mut DSA,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSAPublicKey"]
+    pub fn i2d_DSAPublicKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSAPrivateKey"]
+    pub fn d2i_DSAPrivateKey(
+        out: *mut *mut DSA,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSAPrivateKey"]
+    pub fn i2d_DSAPrivateKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSAparams"]
+    pub fn d2i_DSAparams(
+        out: *mut *mut DSA,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSAparams"]
+    pub fn i2d_DSAparams(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+#[repr(u32)]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum point_conversion_form_t {
+    POINT_CONVERSION_COMPRESSED = 2,
+    POINT_CONVERSION_UNCOMPRESSED = 4,
+    POINT_CONVERSION_HYBRID = 6,
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_group_p224"]
+    pub fn EC_group_p224() -> *const EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_group_p256"]
+    pub fn EC_group_p256() -> *const EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_group_p384"]
+    pub fn EC_group_p384() -> *const EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_group_p521"]
+    pub fn EC_group_p521() -> *const EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_group_secp256k1"]
+    pub fn EC_group_secp256k1() -> *const EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_new_by_curve_name"]
+    pub fn EC_GROUP_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_new_by_curve_name_mutable"]
+    pub fn EC_GROUP_new_by_curve_name_mutable(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_cmp"]
+    pub fn EC_GROUP_cmp(
+        a: *const EC_GROUP,
+        b: *const EC_GROUP,
+        ignored: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get0_generator"]
+    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get0_order"]
+    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_order_bits"]
+    pub fn EC_GROUP_order_bits(group: *const EC_GROUP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get_cofactor"]
+    pub fn EC_GROUP_get_cofactor(
+        group: *const EC_GROUP,
+        cofactor: *mut BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get_curve_GFp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get_curve_name"]
+    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get_degree"]
+    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_curve_nid2nist"]
+    pub fn EC_curve_nid2nist(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_curve_nist2nid"]
+    pub fn EC_curve_nist2nid(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_new"]
+    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_free"]
+    pub fn EC_POINT_free(point: *mut EC_POINT);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_copy"]
+    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_dup"]
+    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_set_to_infinity"]
+    pub fn EC_POINT_set_to_infinity(
+        group: *const EC_GROUP,
+        point: *mut EC_POINT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_is_at_infinity"]
+    pub fn EC_POINT_is_at_infinity(
+        group: *const EC_GROUP,
+        point: *const EC_POINT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_is_on_curve"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_cmp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_get_affine_coordinates_GFp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_get_affine_coordinates"]
+    pub fn EC_POINT_get_affine_coordinates(
+        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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_set_affine_coordinates_GFp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_set_affine_coordinates"]
+    pub fn EC_POINT_set_affine_coordinates(
+        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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_point2oct"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_point2cbb"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_oct2point"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_set_compressed_coordinates_GFp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_add"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_dbl"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_invert"]
+    pub fn EC_POINT_invert(
+        group: *const EC_GROUP,
+        a: *mut EC_POINT,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_mul"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_hash_to_curve_p256_xmd_sha256_sswu"]
+    pub fn EC_hash_to_curve_p256_xmd_sha256_sswu(
+        group: *const EC_GROUP,
+        out: *mut EC_POINT,
+        dst: *const u8,
+        dst_len: usize,
+        msg: *const u8,
+        msg_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_hash_to_curve_p384_xmd_sha384_sswu"]
+    pub fn EC_hash_to_curve_p384_xmd_sha384_sswu(
+        group: *const EC_GROUP,
+        out: *mut EC_POINT,
+        dst: *const u8,
+        dst_len: usize,
+        msg: *const u8,
+        msg_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_free"]
+    pub fn EC_GROUP_free(group: *mut EC_GROUP);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_dup"]
+    pub fn EC_GROUP_dup(group: *const EC_GROUP) -> *mut EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_new_curve_GFp"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_set_generator"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_point2bn"]
+    pub fn EC_POINT_point2bn(
+        group: *const EC_GROUP,
+        point: *const EC_POINT,
+        form: point_conversion_form_t,
+        ret: *mut BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> *mut BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_bn2point"]
+    pub fn EC_POINT_bn2point(
+        group: *const EC_GROUP,
+        bn: *const BIGNUM,
+        point: *mut EC_POINT,
+        ctx: *mut BN_CTX,
+    ) -> *mut EC_POINT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get_order"]
+    pub fn EC_GROUP_get_order(
+        group: *const EC_GROUP,
+        order: *mut BIGNUM,
+        ctx: *mut BN_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<EC_builtin_curve> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).nid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(EC_builtin_curve),
+            "::",
+            stringify!(nid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).comment) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(EC_builtin_curve),
+            "::",
+            stringify!(comment)
+        )
+    );
+}
+impl Default for EC_builtin_curve {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_get_builtin_curves"]
+    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
+        -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_POINT_clear_free"]
+    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_set_seed"]
+    pub fn EC_GROUP_set_seed(
+        group: *mut EC_GROUP,
+        p: *const ::std::os::raw::c_uchar,
+        len: usize,
+    ) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get0_seed"]
+    pub fn EC_GROUP_get0_seed(group: *const EC_GROUP) -> *mut ::std::os::raw::c_uchar;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get_seed_len"]
+    pub fn EC_GROUP_get_seed_len(group: *const EC_GROUP) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECPKParameters_print"]
+    pub fn ECPKParameters_print(
+        bio: *mut BIO,
+        group: *const EC_GROUP,
+        offset: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_set_asn1_flag"]
+    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get_asn1_flag"]
+    pub fn EC_GROUP_get_asn1_flag(group: *const EC_GROUP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_set_point_conversion_form"]
+    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_get_point_conversion_form"]
+    pub fn EC_GROUP_get_point_conversion_form(group: *const EC_GROUP) -> point_conversion_form_t;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ec_method_st {
+    _unused: [u8; 0],
+}
+pub type EC_METHOD = ec_method_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_GROUP_method_of"]
+    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_METHOD_get_field_type"]
+    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_new"]
+    pub fn ENGINE_new() -> *mut ENGINE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_free"]
+    pub fn ENGINE_free(engine: *mut ENGINE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_set_RSA"]
+    pub fn ENGINE_set_RSA(engine: *mut ENGINE, method: *const RSA_METHOD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_get_RSA"]
+    pub fn ENGINE_get_RSA(engine: *const ENGINE) -> *const RSA_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_set_EC"]
+    pub fn ENGINE_set_EC(
+        engine: *mut ENGINE,
+        method: *const EC_KEY_METHOD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_get_EC"]
+    pub fn ENGINE_get_EC(engine: *const ENGINE) -> *const EC_KEY_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ENGINE_cleanup"]
+    pub fn ENGINE_cleanup();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_new"]
+    pub fn EC_KEY_new() -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_new_method"]
+    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_new_by_curve_name"]
+    pub fn EC_KEY_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_free"]
+    pub fn EC_KEY_free(key: *mut EC_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_dup"]
+    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_up_ref"]
+    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_is_opaque"]
+    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get0_group"]
+    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_group"]
+    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get0_private_key"]
+    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_private_key"]
+    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, priv_: *const BIGNUM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get0_public_key"]
+    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_public_key"]
+    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get_enc_flags"]
+    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_enc_flags"]
+    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::std::os::raw::c_uint);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get_conv_form"]
+    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_conv_form"]
+    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_check_key"]
+    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_check_fips"]
+    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_public_key_affine_coordinates"]
+    pub fn EC_KEY_set_public_key_affine_coordinates(
+        key: *mut EC_KEY,
+        x: *const BIGNUM,
+        y: *const BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_key2buf"]
+    pub fn EC_KEY_key2buf(
+        key: *const EC_KEY,
+        form: point_conversion_form_t,
+        out_buf: *mut *mut ::std::os::raw::c_uchar,
+        ctx: *mut BN_CTX,
+    ) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_generate_key"]
+    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_generate_key_fips"]
+    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_derive_from_secret"]
+    pub fn EC_KEY_derive_from_secret(
+        group: *const EC_GROUP,
+        secret: *const u8,
+        secret_len: usize,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_parse_private_key"]
+    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_marshal_private_key"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_parse_curve_name"]
+    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_marshal_curve_name"]
+    pub fn EC_KEY_marshal_curve_name(
+        cbb: *mut CBB,
+        group: *const EC_GROUP,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_parse_parameters"]
+    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get_ex_new_index"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_ex_data"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get_ex_data"]
+    pub fn EC_KEY_get_ex_data(
+        r: *const EC_KEY,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ECPrivateKey"]
+    pub fn d2i_ECPrivateKey(
+        out_key: *mut *mut EC_KEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ECPrivateKey"]
+    pub fn i2d_ECPrivateKey(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ECParameters"]
+    pub fn d2i_ECParameters(
+        out_key: *mut *mut EC_KEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ECParameters"]
+    pub fn i2d_ECParameters(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ECPKParameters_bio"]
+    pub fn d2i_ECPKParameters_bio(bio: *mut BIO, out_group: *mut *mut EC_GROUP) -> *mut EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ECPKParameters_bio"]
+    pub fn i2d_ECPKParameters_bio(bio: *mut BIO, group: *const EC_GROUP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_o2i_ECPublicKey"]
+    pub fn o2i_ECPublicKey(
+        out_key: *mut *mut EC_KEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2o_ECPublicKey"]
+    pub fn i2o_ECPublicKey(
+        key: *const EC_KEY,
+        outp: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get_default_method"]
+    pub fn EC_KEY_get_default_method() -> *const EC_KEY_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_OpenSSL"]
+    pub fn EC_KEY_OpenSSL() -> *const EC_KEY_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_METHOD_new"]
+    pub fn EC_KEY_METHOD_new(eckey_meth: *const EC_KEY_METHOD) -> *mut EC_KEY_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_METHOD_free"]
+    pub fn EC_KEY_METHOD_free(eckey_meth: *mut EC_KEY_METHOD);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_method"]
+    pub fn EC_KEY_set_method(ec: *mut EC_KEY, meth: *const EC_KEY_METHOD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_get_method"]
+    pub fn EC_KEY_get_method(ec: *const EC_KEY) -> *const EC_KEY_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_METHOD_set_sign_awslc"]
+    pub fn EC_KEY_METHOD_set_sign_awslc(
+        meth: *mut EC_KEY_METHOD,
+        sign: ::std::option::Option<
+            unsafe extern "C" fn(
+                type_: ::std::os::raw::c_int,
+                digest: *const u8,
+                digest_len: ::std::os::raw::c_int,
+                sig: *mut u8,
+                siglen: *mut ::std::os::raw::c_uint,
+                k_inv: *const BIGNUM,
+                r: *const BIGNUM,
+                eckey: *mut EC_KEY,
+            ) -> ::std::os::raw::c_int,
+        >,
+        sign_sig: ::std::option::Option<
+            unsafe extern "C" fn(
+                digest: *const u8,
+                digest_len: ::std::os::raw::c_int,
+                in_kinv: *const BIGNUM,
+                in_r: *const BIGNUM,
+                eckey: *mut EC_KEY,
+            ) -> *mut ECDSA_SIG,
+        >,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_METHOD_set_init_awslc"]
+    pub fn EC_KEY_METHOD_set_init_awslc(
+        meth: *mut EC_KEY_METHOD,
+        init: ::std::option::Option<
+            unsafe extern "C" fn(key: *mut EC_KEY) -> ::std::os::raw::c_int,
+        >,
+        finish: ::std::option::Option<unsafe extern "C" fn(key: *mut EC_KEY)>,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_METHOD_set_flags"]
+    pub fn EC_KEY_METHOD_set_flags(
+        meth: *mut EC_KEY_METHOD,
+        flags: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EC_KEY_set_asn1_flag"]
+    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDH_compute_key"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDH_compute_key_fips"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_sign"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_verify"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_size"]
+    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct ecdsa_sig_st {
+    pub r: *mut BIGNUM,
+    pub s: *mut BIGNUM,
+}
+#[test]
+fn bindgen_test_layout_ecdsa_sig_st() {
+    const UNINIT: ::std::mem::MaybeUninit<ecdsa_sig_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).r) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ecdsa_sig_st),
+            "::",
+            stringify!(r)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ecdsa_sig_st),
+            "::",
+            stringify!(s)
+        )
+    );
+}
+impl Default for ecdsa_sig_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_new"]
+    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_free"]
+    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_get0_r"]
+    pub fn ECDSA_SIG_get0_r(sig: *const ECDSA_SIG) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_get0_s"]
+    pub fn ECDSA_SIG_get0_s(sig: *const ECDSA_SIG) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_get0"]
+    pub fn ECDSA_SIG_get0(
+        sig: *const ECDSA_SIG,
+        out_r: *mut *const BIGNUM,
+        out_s: *mut *const BIGNUM,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_set0"]
+    pub fn ECDSA_SIG_set0(
+        sig: *mut ECDSA_SIG,
+        r: *mut BIGNUM,
+        s: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_do_sign"]
+    pub fn ECDSA_do_sign(
+        digest: *const u8,
+        digest_len: usize,
+        key: *const EC_KEY,
+    ) -> *mut ECDSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_do_verify"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_parse"]
+    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_from_bytes"]
+    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_marshal"]
+    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_to_bytes"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_SIG_max_len"]
+    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ECDSA_sign_with_nonce_and_leak_private_key_for_testing"]
+    pub fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(
+        digest: *const u8,
+        digest_len: usize,
+        eckey: *const EC_KEY,
+        nonce: *const u8,
+        nonce_len: usize,
+    ) -> *mut ECDSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ECDSA_SIG"]
+    pub fn d2i_ECDSA_SIG(
+        out: *mut *mut ECDSA_SIG,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ECDSA_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ECDSA_SIG"]
+    pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_gcm"]
+    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_192_gcm"]
+    pub fn EVP_aead_aes_192_gcm() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_gcm"]
+    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_chacha20_poly1305"]
+    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_xchacha20_poly1305"]
+    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_ctr_hmac_sha256"]
+    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_ctr_hmac_sha256"]
+    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_gcm_siv"]
+    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_gcm_siv"]
+    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_gcm_randnonce"]
+    pub fn EVP_aead_aes_128_gcm_randnonce() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_gcm_randnonce"]
+    pub fn EVP_aead_aes_256_gcm_randnonce() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_ccm_bluetooth"]
+    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_ccm_bluetooth_8"]
+    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_ccm_matter"]
+    pub fn EVP_aead_aes_128_ccm_matter() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_has_aes_hardware"]
+    pub fn EVP_has_aes_hardware() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_key_length"]
+    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_nonce_length"]
+    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_max_overhead"]
+    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_max_tag_len"]
+    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union evp_aead_ctx_st_state {
+    pub opaque: [u8; 564usize],
+    pub alignment: u64,
+    pub ptr: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout_evp_aead_ctx_st_state() {
+    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st_state> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<evp_aead_ctx_st_state>(),
+        568usize,
+        concat!("Size of: ", stringify!(evp_aead_ctx_st_state))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_aead_ctx_st_state>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_aead_ctx_st_state))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_aead_ctx_st_state),
+            "::",
+            stringify!(opaque)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_aead_ctx_st_state),
+            "::",
+            stringify!(alignment)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_aead_ctx_st_state),
+            "::",
+            stringify!(ptr)
+        )
+    );
+}
+impl Default for evp_aead_ctx_st_state {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct evp_aead_ctx_st {
+    pub aead: *const EVP_AEAD,
+    pub state: evp_aead_ctx_st_state,
+    pub state_offset: u8,
+    pub tag_len: u8,
+}
+#[test]
+fn bindgen_test_layout_evp_aead_ctx_st() {
+    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<evp_aead_ctx_st>(),
+        584usize,
+        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::addr_of!((*ptr).aead) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_aead_ctx_st),
+            "::",
+            stringify!(aead)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_aead_ctx_st),
+            "::",
+            stringify!(state)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).state_offset) as usize - ptr as usize },
+        576usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_aead_ctx_st),
+            "::",
+            stringify!(state_offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tag_len) as usize - ptr as usize },
+        577usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_aead_ctx_st),
+            "::",
+            stringify!(tag_len)
+        )
+    );
+}
+impl Default for evp_aead_ctx_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_zero"]
+    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_new"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_free"]
+    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_init"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_cleanup"]
+    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_seal"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_open"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_seal_scatter"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_open_gather"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_aead"]
+    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_cbc_sha1_tls"]
+    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_cbc_sha1_tls_implicit_iv"]
+    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_cbc_sha1_tls"]
+    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_cbc_sha1_tls_implicit_iv"]
+    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_cbc_sha256_tls"]
+    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_cbc_sha256_tls_implicit_iv"]
+    pub fn EVP_aead_aes_128_cbc_sha256_tls_implicit_iv() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_cbc_sha384_tls"]
+    pub fn EVP_aead_aes_256_cbc_sha384_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_des_ede3_cbc_sha1_tls"]
+    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv"]
+    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_null_sha1_tls"]
+    pub fn EVP_aead_null_sha1_tls() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_gcm_tls12"]
+    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_gcm_tls12"]
+    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_128_gcm_tls13"]
+    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_aead_aes_256_gcm_tls13"]
+    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 = ::std::os::raw::c_uint;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_init_with_direction"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_get_iv"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_CTX_tag_len"]
+    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;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_AEAD_get_iv_from_ipv4_nanosecs"]
+    pub fn EVP_AEAD_get_iv_from_ipv4_nanosecs(
+        ipv4_address: u32,
+        nanosecs: u64,
+        out_iv: *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_dup"]
+    pub fn OBJ_dup(obj: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_cmp"]
+    pub fn OBJ_cmp(a: *const ASN1_OBJECT, b: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_get0_data"]
+    pub fn OBJ_get0_data(obj: *const ASN1_OBJECT) -> *const u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_length"]
+    pub fn OBJ_length(obj: *const ASN1_OBJECT) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_obj2nid"]
+    pub fn OBJ_obj2nid(obj: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_cbs2nid"]
+    pub fn OBJ_cbs2nid(cbs: *const CBS) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_sn2nid"]
+    pub fn OBJ_sn2nid(short_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_ln2nid"]
+    pub fn OBJ_ln2nid(long_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_txt2nid"]
+    pub fn OBJ_txt2nid(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_nid2obj"]
+    pub fn OBJ_nid2obj(nid: ::std::os::raw::c_int) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_get_undef"]
+    pub fn OBJ_get_undef() -> *const ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_nid2sn"]
+    pub fn OBJ_nid2sn(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_nid2ln"]
+    pub fn OBJ_nid2ln(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_nid2cbb"]
+    pub fn OBJ_nid2cbb(out: *mut CBB, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_txt2obj"]
+    pub fn OBJ_txt2obj(
+        s: *const ::std::os::raw::c_char,
+        dont_search_names: ::std::os::raw::c_int,
+    ) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_obj2txt"]
+    pub fn OBJ_obj2txt(
+        out: *mut ::std::os::raw::c_char,
+        out_len: ::std::os::raw::c_int,
+        obj: *const ASN1_OBJECT,
+        always_return_oid: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_create"]
+    pub fn OBJ_create(
+        oid: *const ::std::os::raw::c_char,
+        short_name: *const ::std::os::raw::c_char,
+        long_name: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_find_sigid_algs"]
+    pub fn OBJ_find_sigid_algs(
+        sign_nid: ::std::os::raw::c_int,
+        out_digest_nid: *mut ::std::os::raw::c_int,
+        out_pkey_nid: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_find_sigid_by_algs"]
+    pub fn OBJ_find_sigid_by_algs(
+        out_sign_nid: *mut ::std::os::raw::c_int,
+        digest_nid: ::std::os::raw::c_int,
+        pkey_nid: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct obj_name_st {
+    pub type_: ::std::os::raw::c_int,
+    pub alias: ::std::os::raw::c_int,
+    pub name: *const ::std::os::raw::c_char,
+    pub data: *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_obj_name_st() {
+    const UNINIT: ::std::mem::MaybeUninit<obj_name_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<obj_name_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(obj_name_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<obj_name_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(obj_name_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(obj_name_st),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).alias) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(obj_name_st),
+            "::",
+            stringify!(alias)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(obj_name_st),
+            "::",
+            stringify!(name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(obj_name_st),
+            "::",
+            stringify!(data)
+        )
+    );
+}
+impl Default for obj_name_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type OBJ_NAME = obj_name_st;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_NAME_do_all_sorted"]
+    pub fn OBJ_NAME_do_all_sorted(
+        type_: ::std::os::raw::c_int,
+        callback: ::std::option::Option<
+            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::std::os::raw::c_void),
+        >,
+        arg: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OBJ_cleanup"]
+    pub fn OBJ_cleanup();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_new"]
+    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_free"]
+    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_up_ref"]
+    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_is_opaque"]
+    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_cmp"]
+    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_copy_parameters"]
+    pub fn EVP_PKEY_copy_parameters(
+        to: *mut EVP_PKEY,
+        from: *const EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_missing_parameters"]
+    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_size"]
+    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_bits"]
+    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_id"]
+    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_get0_name"]
+    pub fn EVP_MD_get0_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_name"]
+    pub fn EVP_MD_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_set1_RSA"]
+    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_assign_RSA"]
+    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get0_RSA"]
+    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get1_RSA"]
+    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_set1_DSA"]
+    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_assign_DSA"]
+    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get0_DSA"]
+    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get1_DSA"]
+    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_set1_EC_KEY"]
+    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_assign_EC_KEY"]
+    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get0_EC_KEY"]
+    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get1_EC_KEY"]
+    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_set1_DH"]
+    pub fn EVP_PKEY_set1_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_assign_DH"]
+    pub fn EVP_PKEY_assign_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get0_DH"]
+    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get1_DH"]
+    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_dh_paramgen_prime_len"]
+    pub fn EVP_PKEY_CTX_set_dh_paramgen_prime_len(
+        ctx: *mut EVP_PKEY_CTX,
+        pbits: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_dh_paramgen_generator"]
+    pub fn EVP_PKEY_CTX_set_dh_paramgen_generator(
+        ctx: *mut EVP_PKEY_CTX,
+        gen: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_set_type"]
+    pub fn EVP_PKEY_set_type(
+        pkey: *mut EVP_PKEY,
+        type_: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_cmp_parameters"]
+    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_parse_public_key"]
+    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_marshal_public_key"]
+    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_parse_private_key"]
+    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_marshal_private_key"]
+    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_marshal_private_key_v2"]
+    pub fn EVP_marshal_private_key_v2(cbb: *mut CBB, key: *const EVP_PKEY)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_new_raw_private_key"]
+    pub fn EVP_PKEY_new_raw_private_key(
+        type_: ::std::os::raw::c_int,
+        unused: *mut ENGINE,
+        in_: *const u8,
+        len: usize,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_new_raw_public_key"]
+    pub fn EVP_PKEY_new_raw_public_key(
+        type_: ::std::os::raw::c_int,
+        unused: *mut ENGINE,
+        in_: *const u8,
+        len: usize,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get_raw_private_key"]
+    pub fn EVP_PKEY_get_raw_private_key(
+        pkey: *const EVP_PKEY,
+        out: *mut u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get_raw_public_key"]
+    pub fn EVP_PKEY_get_raw_public_key(
+        pkey: *const EVP_PKEY,
+        out: *mut u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestSignInit"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestSignUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestSignFinal"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestSign"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestVerifyInit"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestVerifyUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestVerifyFinal"]
+    pub fn EVP_DigestVerifyFinal(
+        ctx: *mut EVP_MD_CTX,
+        sig: *const u8,
+        sig_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_DigestVerify"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_SignInit_ex"]
+    pub fn EVP_SignInit_ex(
+        ctx: *mut EVP_MD_CTX,
+        type_: *const EVP_MD,
+        impl_: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_SignInit"]
+    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_SignUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_SignFinal"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_VerifyInit_ex"]
+    pub fn EVP_VerifyInit_ex(
+        ctx: *mut EVP_MD_CTX,
+        type_: *const EVP_MD,
+        impl_: *mut ENGINE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_VerifyInit"]
+    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_VerifyUpdate"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_VerifyFinal"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_print_public"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_print_private"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_print_params"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS5_PBKDF2_HMAC"]
+    pub fn PKCS5_PBKDF2_HMAC(
+        password: *const ::std::os::raw::c_char,
+        password_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+        iterations: u32,
+        digest: *const EVP_MD,
+        key_len: usize,
+        out_key: *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS5_PBKDF2_HMAC_SHA1"]
+    pub fn PKCS5_PBKDF2_HMAC_SHA1(
+        password: *const ::std::os::raw::c_char,
+        password_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+        iterations: u32,
+        key_len: usize,
+        out_key: *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PBE_scrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_new"]
+    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_new_id"]
+    pub fn EVP_PKEY_CTX_new_id(id: ::std::os::raw::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_free"]
+    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_dup"]
+    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get0_pkey"]
+    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_sign_init"]
+    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_sign"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_verify_init"]
+    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_verify"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_encrypt_init"]
+    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_decrypt_init"]
+    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_decrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_verify_recover_init"]
+    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_verify_recover"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_derive_init"]
+    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_derive_set_peer"]
+    pub fn EVP_PKEY_derive_set_peer(
+        ctx: *mut EVP_PKEY_CTX,
+        peer: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_derive"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_keygen_init"]
+    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_keygen"]
+    pub fn EVP_PKEY_keygen(
+        ctx: *mut EVP_PKEY_CTX,
+        out_pkey: *mut *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_encapsulate"]
+    pub fn EVP_PKEY_encapsulate(
+        ctx: *mut EVP_PKEY_CTX,
+        ciphertext: *mut u8,
+        ciphertext_len: *mut usize,
+        shared_secret: *mut u8,
+        shared_secret_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_decapsulate"]
+    pub fn EVP_PKEY_decapsulate(
+        ctx: *mut EVP_PKEY_CTX,
+        shared_secret: *mut u8,
+        shared_secret_len: *mut usize,
+        ciphertext: *const u8,
+        ciphertext_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_paramgen_init"]
+    pub fn EVP_PKEY_paramgen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_paramgen"]
+    pub fn EVP_PKEY_paramgen(
+        ctx: *mut EVP_PKEY_CTX,
+        out_pkey: *mut *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_signature_md"]
+    pub fn EVP_PKEY_CTX_set_signature_md(
+        ctx: *mut EVP_PKEY_CTX,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get_signature_md"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_padding"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get_rsa_padding"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_pss_saltlen"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get_rsa_pss_saltlen"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_keygen_bits"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_keygen_pubexp"]
+    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
+        ctx: *mut EVP_PKEY_CTX,
+        e: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_oaep_md"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get_rsa_oaep_md"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_mgf1_md"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get_rsa_mgf1_md"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set0_rsa_oaep_label"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get0_rsa_oaep_label"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_ec_paramgen_curve_nid"]
+    pub fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(
+        ctx: *mut EVP_PKEY_CTX,
+        nid: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_kem_set_params"]
+    pub fn EVP_PKEY_CTX_kem_set_params(
+        ctx: *mut EVP_PKEY_CTX,
+        nid: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_kem_new_raw_public_key"]
+    pub fn EVP_PKEY_kem_new_raw_public_key(
+        nid: ::std::os::raw::c_int,
+        in_: *const u8,
+        len: usize,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_kem_new_raw_secret_key"]
+    pub fn EVP_PKEY_kem_new_raw_secret_key(
+        nid: ::std::os::raw::c_int,
+        in_: *const u8,
+        len: usize,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_kem_new_raw_key"]
+    pub fn EVP_PKEY_kem_new_raw_key(
+        nid: ::std::os::raw::c_int,
+        in_public: *const u8,
+        len_public: usize,
+        in_secret: *const u8,
+        len_secret: usize,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_kem_check_key"]
+    pub fn EVP_PKEY_kem_check_key(key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_dh_pad"]
+    pub fn EVP_PKEY_CTX_set_dh_pad(
+        ctx: *mut EVP_PKEY_CTX,
+        pad: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_asn1_get_count"]
+    pub fn EVP_PKEY_asn1_get_count() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_asn1_get0"]
+    pub fn EVP_PKEY_asn1_get0(idx: ::std::os::raw::c_int) -> *const EVP_PKEY_ASN1_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_asn1_find"]
+    pub fn EVP_PKEY_asn1_find(
+        _pe: *mut *mut ENGINE,
+        type_: ::std::os::raw::c_int,
+    ) -> *const EVP_PKEY_ASN1_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_asn1_find_str"]
+    pub fn EVP_PKEY_asn1_find_str(
+        _pe: *mut *mut ENGINE,
+        name: *const ::std::os::raw::c_char,
+        len: ::std::os::raw::c_int,
+    ) -> *const EVP_PKEY_ASN1_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_asn1_get0_info"]
+    pub fn EVP_PKEY_asn1_get0_info(
+        ppkey_id: *mut ::std::os::raw::c_int,
+        pkey_base_id: *mut ::std::os::raw::c_int,
+        ppkey_flags: *mut ::std::os::raw::c_int,
+        pinfo: *mut *const ::std::os::raw::c_char,
+        ppem_str: *mut *const ::std::os::raw::c_char,
+        ameth: *const EVP_PKEY_ASN1_METHOD,
+    ) -> ::std::os::raw::c_int;
+}
+pub type EVP_PKEY_gen_cb =
+    ::std::option::Option<unsafe extern "C" fn(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_cb"]
+    pub fn EVP_PKEY_CTX_set_cb(ctx: *mut EVP_PKEY_CTX, cb: EVP_PKEY_gen_cb);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get_keygen_info"]
+    pub fn EVP_PKEY_CTX_get_keygen_info(
+        ctx: *mut EVP_PKEY_CTX,
+        idx: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_app_data"]
+    pub fn EVP_PKEY_CTX_set_app_data(ctx: *mut EVP_PKEY_CTX, data: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_get_app_data"]
+    pub fn EVP_PKEY_CTX_get_app_data(ctx: *mut EVP_PKEY_CTX) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_get_pkey_type"]
+    pub fn EVP_MD_get_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_pkey_type"]
+    pub fn EVP_MD_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_CIPHER_do_all_sorted"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_do_all_sorted"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_MD_do_all"]
+    pub fn EVP_MD_do_all(
+        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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PrivateKey"]
+    pub fn i2d_PrivateKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PublicKey"]
+    pub fn i2d_PublicKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PrivateKey"]
+    pub fn d2i_PrivateKey(
+        type_: ::std::os::raw::c_int,
+        out: *mut *mut EVP_PKEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_AutoPrivateKey"]
+    pub fn d2i_AutoPrivateKey(
+        out: *mut *mut EVP_PKEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PublicKey"]
+    pub fn d2i_PublicKey(
+        type_: ::std::os::raw::c_int,
+        out: *mut *mut EVP_PKEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_ec_param_enc"]
+    pub fn EVP_PKEY_CTX_set_ec_param_enc(
+        ctx: *mut EVP_PKEY_CTX,
+        encoding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_set1_tls_encodedpoint"]
+    pub fn EVP_PKEY_set1_tls_encodedpoint(
+        pkey: *mut EVP_PKEY,
+        in_: *const u8,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get1_tls_encodedpoint"]
+    pub fn EVP_PKEY_get1_tls_encodedpoint(pkey: *const EVP_PKEY, out_ptr: *mut *mut u8) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_base_id"]
+    pub fn EVP_PKEY_base_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_pss_keygen_md"]
+    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_md(
+        ctx: *mut EVP_PKEY_CTX,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen"]
+    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(
+        ctx: *mut EVP_PKEY_CTX,
+        salt_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md"]
+    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(
+        ctx: *mut EVP_PKEY_CTX,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PUBKEY"]
+    pub fn i2d_PUBKEY(pkey: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PUBKEY"]
+    pub fn d2i_PUBKEY(
+        out: *mut *mut EVP_PKEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSA_PUBKEY"]
+    pub fn i2d_RSA_PUBKEY(rsa: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSA_PUBKEY"]
+    pub fn d2i_RSA_PUBKEY(
+        out: *mut *mut RSA,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSA_PUBKEY"]
+    pub fn i2d_DSA_PUBKEY(dsa: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSA_PUBKEY"]
+    pub fn d2i_DSA_PUBKEY(
+        out: *mut *mut DSA,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_EC_PUBKEY"]
+    pub fn i2d_EC_PUBKEY(ec_key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_EC_PUBKEY"]
+    pub fn d2i_EC_PUBKEY(
+        out: *mut *mut EC_KEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_assign"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_type"]
+    pub fn EVP_PKEY_type(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_new_mac_key"]
+    pub fn EVP_PKEY_new_mac_key(
+        type_: ::std::os::raw::c_int,
+        engine: *mut ENGINE,
+        mac_key: *const u8,
+        mac_key_len: usize,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_get0"]
+    pub fn EVP_PKEY_get0(pkey: *const EVP_PKEY) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OpenSSL_add_all_algorithms"]
+    pub fn OpenSSL_add_all_algorithms();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OPENSSL_add_all_algorithms_conf"]
+    pub fn OPENSSL_add_all_algorithms_conf();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OpenSSL_add_all_ciphers"]
+    pub fn OpenSSL_add_all_ciphers();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OpenSSL_add_all_digests"]
+    pub fn OpenSSL_add_all_digests();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_cleanup"]
+    pub fn EVP_cleanup();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_dsa_paramgen_bits"]
+    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(
+        ctx: *mut EVP_PKEY_CTX,
+        nbits: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_dsa_paramgen_md"]
+    pub fn EVP_PKEY_CTX_set_dsa_paramgen_md(
+        ctx: *mut EVP_PKEY_CTX,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_dsa_paramgen_q_bits"]
+    pub fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(
+        ctx: *mut EVP_PKEY_CTX,
+        qbits: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_ctrl_str"]
+    pub fn EVP_PKEY_CTX_ctrl_str(
+        ctx: *mut EVP_PKEY_CTX,
+        type_: *const ::std::os::raw::c_char,
+        value: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HKDF"]
+    pub fn HKDF(
+        out_key: *mut u8,
+        out_len: usize,
+        digest: *const EVP_MD,
+        secret: *const u8,
+        secret_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+        info: *const u8,
+        info_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HKDF_extract"]
+    pub fn HKDF_extract(
+        out_key: *mut u8,
+        out_len: *mut usize,
+        digest: *const EVP_MD,
+        secret: *const u8,
+        secret_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HKDF_expand"]
+    pub fn HKDF_expand(
+        out_key: *mut u8,
+        out_len: usize,
+        digest: *const EVP_MD,
+        prk: *const u8,
+        prk_len: usize,
+        info: *const u8,
+        info_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD5_Init"]
+    pub fn MD5_Init(md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD5_Update"]
+    pub fn MD5_Update(
+        md5: *mut MD5_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD5_Final"]
+    pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD5"]
+    pub fn MD5(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD5_Transform"]
+    pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct md5_state_st {
+    pub h: [u32; 4usize],
+    pub Nl: u32,
+    pub Nh: u32,
+    pub data: [u8; 64usize],
+    pub num: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_md5_state_st() {
+    const UNINIT: ::std::mem::MaybeUninit<md5_state_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<md5_state_st>(),
+        92usize,
+        concat!("Size of: ", stringify!(md5_state_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<md5_state_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(md5_state_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md5_state_st),
+            "::",
+            stringify!(h)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md5_state_st),
+            "::",
+            stringify!(Nl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md5_state_st),
+            "::",
+            stringify!(Nh)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md5_state_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
+        88usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md5_state_st),
+            "::",
+            stringify!(num)
+        )
+    );
+}
+impl Default for md5_state_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC"]
+    pub fn HMAC(
+        evp_md: *const EVP_MD,
+        key: *const ::std::os::raw::c_void,
+        key_len: usize,
+        data: *const u8,
+        data_len: usize,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+    ) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_init"]
+    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_new"]
+    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_cleanup"]
+    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_cleanse"]
+    pub fn HMAC_CTX_cleanse(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_free"]
+    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_Init_ex"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_Update"]
+    pub fn HMAC_Update(
+        ctx: *mut HMAC_CTX,
+        data: *const u8,
+        data_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_Final"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_size"]
+    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_get_md"]
+    pub fn HMAC_CTX_get_md(ctx: *const HMAC_CTX) -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_copy_ex"]
+    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_reset"]
+    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_set_precomputed_key_export"]
+    pub fn HMAC_set_precomputed_key_export(ctx: *mut HMAC_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_get_precomputed_key"]
+    pub fn HMAC_get_precomputed_key(
+        ctx: *mut HMAC_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_Init_from_precomputed_key"]
+    pub fn HMAC_Init_from_precomputed_key(
+        ctx: *mut HMAC_CTX,
+        precomputed_key: *const u8,
+        precompute_key_len: usize,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_Init"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HMAC_CTX_copy"]
+    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_methods_st {
+    _unused: [u8; 0],
+}
+pub type HmacMethods = hmac_methods_st;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union md_ctx_union {
+    pub md5: MD5_CTX,
+    pub sha1: SHA_CTX,
+    pub sha256: SHA256_CTX,
+    pub sha512: SHA512_CTX,
+}
+#[test]
+fn bindgen_test_layout_md_ctx_union() {
+    const UNINIT: ::std::mem::MaybeUninit<md_ctx_union> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<md_ctx_union>(),
+        216usize,
+        concat!("Size of: ", stringify!(md_ctx_union))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<md_ctx_union>(),
+        8usize,
+        concat!("Alignment of ", stringify!(md_ctx_union))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).md5) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md_ctx_union),
+            "::",
+            stringify!(md5)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sha1) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md_ctx_union),
+            "::",
+            stringify!(sha1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sha256) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md_ctx_union),
+            "::",
+            stringify!(sha256)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sha512) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md_ctx_union),
+            "::",
+            stringify!(sha512)
+        )
+    );
+}
+impl Default for md_ctx_union {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct hmac_ctx_st {
+    pub md: *const EVP_MD,
+    pub methods: *const HmacMethods,
+    pub md_ctx: md_ctx_union,
+    pub i_ctx: md_ctx_union,
+    pub o_ctx: md_ctx_union,
+    pub state: i8,
+}
+#[test]
+fn bindgen_test_layout_hmac_ctx_st() {
+    const UNINIT: ::std::mem::MaybeUninit<hmac_ctx_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<hmac_ctx_st>(),
+        672usize,
+        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::addr_of!((*ptr).md) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hmac_ctx_st),
+            "::",
+            stringify!(md)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).methods) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hmac_ctx_st),
+            "::",
+            stringify!(methods)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).md_ctx) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hmac_ctx_st),
+            "::",
+            stringify!(md_ctx)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).i_ctx) as usize - ptr as usize },
+        232usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hmac_ctx_st),
+            "::",
+            stringify!(i_ctx)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).o_ctx) as usize - ptr as usize },
+        448usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hmac_ctx_st),
+            "::",
+            stringify!(o_ctx)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
+        664usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hmac_ctx_st),
+            "::",
+            stringify!(state)
+        )
+    );
+}
+impl Default for hmac_ctx_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_hpke_x25519_hkdf_sha256"]
+    pub fn EVP_hpke_x25519_hkdf_sha256() -> *const EVP_HPKE_KEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEM_id"]
+    pub fn EVP_HPKE_KEM_id(kem: *const EVP_HPKE_KEM) -> u16;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEM_public_key_len"]
+    pub fn EVP_HPKE_KEM_public_key_len(kem: *const EVP_HPKE_KEM) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEM_private_key_len"]
+    pub fn EVP_HPKE_KEM_private_key_len(kem: *const EVP_HPKE_KEM) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEM_enc_len"]
+    pub fn EVP_HPKE_KEM_enc_len(kem: *const EVP_HPKE_KEM) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_hpke_hkdf_sha256"]
+    pub fn EVP_hpke_hkdf_sha256() -> *const EVP_HPKE_KDF;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KDF_id"]
+    pub fn EVP_HPKE_KDF_id(kdf: *const EVP_HPKE_KDF) -> u16;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KDF_hkdf_md"]
+    pub fn EVP_HPKE_KDF_hkdf_md(kdf: *const EVP_HPKE_KDF) -> *const EVP_MD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_hpke_aes_128_gcm"]
+    pub fn EVP_hpke_aes_128_gcm() -> *const EVP_HPKE_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_hpke_aes_256_gcm"]
+    pub fn EVP_hpke_aes_256_gcm() -> *const EVP_HPKE_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_hpke_chacha20_poly1305"]
+    pub fn EVP_hpke_chacha20_poly1305() -> *const EVP_HPKE_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_AEAD_id"]
+    pub fn EVP_HPKE_AEAD_id(aead: *const EVP_HPKE_AEAD) -> u16;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_AEAD_aead"]
+    pub fn EVP_HPKE_AEAD_aead(aead: *const EVP_HPKE_AEAD) -> *const EVP_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_zero"]
+    pub fn EVP_HPKE_KEY_zero(key: *mut EVP_HPKE_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_cleanup"]
+    pub fn EVP_HPKE_KEY_cleanup(key: *mut EVP_HPKE_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_new"]
+    pub fn EVP_HPKE_KEY_new() -> *mut EVP_HPKE_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_free"]
+    pub fn EVP_HPKE_KEY_free(key: *mut EVP_HPKE_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_copy"]
+    pub fn EVP_HPKE_KEY_copy(
+        dst: *mut EVP_HPKE_KEY,
+        src: *const EVP_HPKE_KEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_move"]
+    pub fn EVP_HPKE_KEY_move(out: *mut EVP_HPKE_KEY, in_: *mut EVP_HPKE_KEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_init"]
+    pub fn EVP_HPKE_KEY_init(
+        key: *mut EVP_HPKE_KEY,
+        kem: *const EVP_HPKE_KEM,
+        priv_key: *const u8,
+        priv_key_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_generate"]
+    pub fn EVP_HPKE_KEY_generate(
+        key: *mut EVP_HPKE_KEY,
+        kem: *const EVP_HPKE_KEM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_kem"]
+    pub fn EVP_HPKE_KEY_kem(key: *const EVP_HPKE_KEY) -> *const EVP_HPKE_KEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_public_key"]
+    pub fn EVP_HPKE_KEY_public_key(
+        key: *const EVP_HPKE_KEY,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_KEY_private_key"]
+    pub fn EVP_HPKE_KEY_private_key(
+        key: *const EVP_HPKE_KEY,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_zero"]
+    pub fn EVP_HPKE_CTX_zero(ctx: *mut EVP_HPKE_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_cleanup"]
+    pub fn EVP_HPKE_CTX_cleanup(ctx: *mut EVP_HPKE_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_new"]
+    pub fn EVP_HPKE_CTX_new() -> *mut EVP_HPKE_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_free"]
+    pub fn EVP_HPKE_CTX_free(ctx: *mut EVP_HPKE_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_setup_sender"]
+    pub fn EVP_HPKE_CTX_setup_sender(
+        ctx: *mut EVP_HPKE_CTX,
+        out_enc: *mut u8,
+        out_enc_len: *mut usize,
+        max_enc: usize,
+        kem: *const EVP_HPKE_KEM,
+        kdf: *const EVP_HPKE_KDF,
+        aead: *const EVP_HPKE_AEAD,
+        peer_public_key: *const u8,
+        peer_public_key_len: usize,
+        info: *const u8,
+        info_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_setup_sender_with_seed_for_testing"]
+    pub fn EVP_HPKE_CTX_setup_sender_with_seed_for_testing(
+        ctx: *mut EVP_HPKE_CTX,
+        out_enc: *mut u8,
+        out_enc_len: *mut usize,
+        max_enc: usize,
+        kem: *const EVP_HPKE_KEM,
+        kdf: *const EVP_HPKE_KDF,
+        aead: *const EVP_HPKE_AEAD,
+        peer_public_key: *const u8,
+        peer_public_key_len: usize,
+        info: *const u8,
+        info_len: usize,
+        seed: *const u8,
+        seed_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_setup_recipient"]
+    pub fn EVP_HPKE_CTX_setup_recipient(
+        ctx: *mut EVP_HPKE_CTX,
+        key: *const EVP_HPKE_KEY,
+        kdf: *const EVP_HPKE_KDF,
+        aead: *const EVP_HPKE_AEAD,
+        enc: *const u8,
+        enc_len: usize,
+        info: *const u8,
+        info_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_setup_auth_sender"]
+    pub fn EVP_HPKE_CTX_setup_auth_sender(
+        ctx: *mut EVP_HPKE_CTX,
+        out_enc: *mut u8,
+        out_enc_len: *mut usize,
+        max_enc: usize,
+        key: *const EVP_HPKE_KEY,
+        kdf: *const EVP_HPKE_KDF,
+        aead: *const EVP_HPKE_AEAD,
+        peer_public_key: *const u8,
+        peer_public_key_len: usize,
+        info: *const u8,
+        info_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing"]
+    pub fn EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing(
+        ctx: *mut EVP_HPKE_CTX,
+        out_enc: *mut u8,
+        out_enc_len: *mut usize,
+        max_enc: usize,
+        key: *const EVP_HPKE_KEY,
+        kdf: *const EVP_HPKE_KDF,
+        aead: *const EVP_HPKE_AEAD,
+        peer_public_key: *const u8,
+        peer_public_key_len: usize,
+        info: *const u8,
+        info_len: usize,
+        seed: *const u8,
+        seed_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_setup_auth_recipient"]
+    pub fn EVP_HPKE_CTX_setup_auth_recipient(
+        ctx: *mut EVP_HPKE_CTX,
+        key: *const EVP_HPKE_KEY,
+        kdf: *const EVP_HPKE_KDF,
+        aead: *const EVP_HPKE_AEAD,
+        enc: *const u8,
+        enc_len: usize,
+        info: *const u8,
+        info_len: usize,
+        peer_public_key: *const u8,
+        peer_public_key_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_open"]
+    pub fn EVP_HPKE_CTX_open(
+        ctx: *mut EVP_HPKE_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out_len: usize,
+        in_: *const u8,
+        in_len: usize,
+        ad: *const u8,
+        ad_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_seal"]
+    pub fn EVP_HPKE_CTX_seal(
+        ctx: *mut EVP_HPKE_CTX,
+        out: *mut u8,
+        out_len: *mut usize,
+        max_out_len: usize,
+        in_: *const u8,
+        in_len: usize,
+        ad: *const u8,
+        ad_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_export"]
+    pub fn EVP_HPKE_CTX_export(
+        ctx: *const EVP_HPKE_CTX,
+        out: *mut u8,
+        secret_len: usize,
+        context: *const u8,
+        context_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_max_overhead"]
+    pub fn EVP_HPKE_CTX_max_overhead(ctx: *const EVP_HPKE_CTX) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_kem"]
+    pub fn EVP_HPKE_CTX_kem(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_aead"]
+    pub fn EVP_HPKE_CTX_aead(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_AEAD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_HPKE_CTX_kdf"]
+    pub fn EVP_HPKE_CTX_kdf(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KDF;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct evp_hpke_ctx_st {
+    pub kem: *const EVP_HPKE_KEM,
+    pub aead: *const EVP_HPKE_AEAD,
+    pub kdf: *const EVP_HPKE_KDF,
+    pub aead_ctx: EVP_AEAD_CTX,
+    pub base_nonce: [u8; 24usize],
+    pub exporter_secret: [u8; 64usize],
+    pub seq: u64,
+    pub is_sender: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_evp_hpke_ctx_st() {
+    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_ctx_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<evp_hpke_ctx_st>(),
+        712usize,
+        concat!("Size of: ", stringify!(evp_hpke_ctx_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_hpke_ctx_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_hpke_ctx_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_ctx_st),
+            "::",
+            stringify!(kem)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_ctx_st),
+            "::",
+            stringify!(aead)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_ctx_st),
+            "::",
+            stringify!(kdf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).aead_ctx) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_ctx_st),
+            "::",
+            stringify!(aead_ctx)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).base_nonce) as usize - ptr as usize },
+        608usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_ctx_st),
+            "::",
+            stringify!(base_nonce)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).exporter_secret) as usize - ptr as usize },
+        632usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_ctx_st),
+            "::",
+            stringify!(exporter_secret)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize },
+        696usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_ctx_st),
+            "::",
+            stringify!(seq)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).is_sender) as usize - ptr as usize },
+        704usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_ctx_st),
+            "::",
+            stringify!(is_sender)
+        )
+    );
+}
+impl Default for evp_hpke_ctx_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct evp_hpke_key_st {
+    pub kem: *const EVP_HPKE_KEM,
+    pub private_key: [u8; 32usize],
+    pub public_key: [u8; 32usize],
+}
+#[test]
+fn bindgen_test_layout_evp_hpke_key_st() {
+    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_key_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<evp_hpke_key_st>(),
+        72usize,
+        concat!("Size of: ", stringify!(evp_hpke_key_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<evp_hpke_key_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(evp_hpke_key_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_key_st),
+            "::",
+            stringify!(kem)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).private_key) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_key_st),
+            "::",
+            stringify!(private_key)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).public_key) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(evp_hpke_key_st),
+            "::",
+            stringify!(public_key)
+        )
+    );
+}
+impl Default for evp_hpke_key_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct HRSS_private_key {
+    pub opaque: [u8; 1808usize],
+}
+#[test]
+fn bindgen_test_layout_HRSS_private_key() {
+    const UNINIT: ::std::mem::MaybeUninit<HRSS_private_key> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<HRSS_private_key>(),
+        1808usize,
+        concat!("Size of: ", stringify!(HRSS_private_key))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<HRSS_private_key>(),
+        1usize,
+        concat!("Alignment of ", stringify!(HRSS_private_key))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(HRSS_private_key),
+            "::",
+            stringify!(opaque)
+        )
+    );
+}
+impl Default for HRSS_private_key {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct HRSS_public_key {
+    pub opaque: [u8; 1424usize],
+}
+#[test]
+fn bindgen_test_layout_HRSS_public_key() {
+    const UNINIT: ::std::mem::MaybeUninit<HRSS_public_key> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<HRSS_public_key>(),
+        1424usize,
+        concat!("Size of: ", stringify!(HRSS_public_key))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<HRSS_public_key>(),
+        1usize,
+        concat!("Alignment of ", stringify!(HRSS_public_key))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(HRSS_public_key),
+            "::",
+            stringify!(opaque)
+        )
+    );
+}
+impl Default for HRSS_public_key {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HRSS_generate_key"]
+    pub fn HRSS_generate_key(
+        out_pub: *mut HRSS_public_key,
+        out_priv: *mut HRSS_private_key,
+        input: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HRSS_encap"]
+    pub fn HRSS_encap(
+        out_ciphertext: *mut u8,
+        out_shared_key: *mut u8,
+        in_pub: *const HRSS_public_key,
+        in_: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HRSS_decap"]
+    pub fn HRSS_decap(
+        out_shared_key: *mut u8,
+        in_priv: *const HRSS_private_key,
+        ciphertext: *const u8,
+        ciphertext_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HRSS_marshal_public_key"]
+    pub fn HRSS_marshal_public_key(out: *mut u8, in_pub: *const HRSS_public_key);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_HRSS_parse_public_key"]
+    pub fn HRSS_parse_public_key(
+        out: *mut HRSS_public_key,
+        in_: *const u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_tls1_prf"]
+    pub fn CRYPTO_tls1_prf(
+        digest: *const EVP_MD,
+        out: *mut u8,
+        out_len: usize,
+        secret: *const u8,
+        secret_len: usize,
+        label: *const ::std::os::raw::c_char,
+        label_len: usize,
+        seed1: *const u8,
+        seed1_len: usize,
+        seed2: *const u8,
+        seed2_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SSKDF_digest"]
+    pub fn SSKDF_digest(
+        out_key: *mut u8,
+        out_len: usize,
+        digest: *const EVP_MD,
+        secret: *const u8,
+        secret_len: usize,
+        info: *const u8,
+        info_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SSKDF_hmac"]
+    pub fn SSKDF_hmac(
+        out_key: *mut u8,
+        out_len: usize,
+        digest: *const EVP_MD,
+        secret: *const u8,
+        secret_len: usize,
+        info: *const u8,
+        info_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_KBKDF_ctr_hmac"]
+    pub fn KBKDF_ctr_hmac(
+        out_key: *mut u8,
+        out_len: usize,
+        digest: *const EVP_MD,
+        secret: *const u8,
+        secret_len: usize,
+        info: *const u8,
+        info_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_hkdf_mode"]
+    pub fn EVP_PKEY_CTX_hkdf_mode(
+        ctx: *mut EVP_PKEY_CTX,
+        mode: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set_hkdf_md"]
+    pub fn EVP_PKEY_CTX_set_hkdf_md(
+        ctx: *mut EVP_PKEY_CTX,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set1_hkdf_key"]
+    pub fn EVP_PKEY_CTX_set1_hkdf_key(
+        ctx: *mut EVP_PKEY_CTX,
+        key: *const u8,
+        key_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_set1_hkdf_salt"]
+    pub fn EVP_PKEY_CTX_set1_hkdf_salt(
+        ctx: *mut EVP_PKEY_CTX,
+        salt: *const u8,
+        salt_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_CTX_add1_hkdf_info"]
+    pub fn EVP_PKEY_CTX_add1_hkdf_info(
+        ctx: *mut EVP_PKEY_CTX,
+        info: *const u8,
+        info_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD4_Init"]
+    pub fn MD4_Init(md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD4_Update"]
+    pub fn MD4_Update(
+        md4: *mut MD4_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD4_Final"]
+    pub fn MD4_Final(out: *mut u8, md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD4"]
+    pub fn MD4(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_MD4_Transform"]
+    pub fn MD4_Transform(md4: *mut MD4_CTX, block: *const u8);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct md4_state_st {
+    pub h: [u32; 4usize],
+    pub Nl: u32,
+    pub Nh: u32,
+    pub data: [u8; 64usize],
+    pub num: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_md4_state_st() {
+    const UNINIT: ::std::mem::MaybeUninit<md4_state_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<md4_state_st>(),
+        92usize,
+        concat!("Size of: ", stringify!(md4_state_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<md4_state_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(md4_state_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md4_state_st),
+            "::",
+            stringify!(h)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md4_state_st),
+            "::",
+            stringify!(Nl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md4_state_st),
+            "::",
+            stringify!(Nh)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md4_state_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
+        88usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(md4_state_st),
+            "::",
+            stringify!(num)
+        )
+    );
+}
+impl Default for md4_state_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_CRYPTO_BUFFER {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509 {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_CRL {
+    _unused: [u8; 0],
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_get_raw_certificates"]
+    pub fn PKCS7_get_raw_certificates(
+        out_certs: *mut stack_st_CRYPTO_BUFFER,
+        cbs: *mut CBS,
+        pool: *mut CRYPTO_BUFFER_POOL,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_get_certificates"]
+    pub fn PKCS7_get_certificates(
+        out_certs: *mut stack_st_X509,
+        cbs: *mut CBS,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_bundle_raw_certificates"]
+    pub fn PKCS7_bundle_raw_certificates(
+        out: *mut CBB,
+        certs: *const stack_st_CRYPTO_BUFFER,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_bundle_certificates"]
+    pub fn PKCS7_bundle_certificates(
+        out: *mut CBB,
+        certs: *const stack_st_X509,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_get_CRLs"]
+    pub fn PKCS7_get_CRLs(out_crls: *mut stack_st_X509_CRL, cbs: *mut CBS)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_bundle_CRLs"]
+    pub fn PKCS7_bundle_CRLs(
+        out: *mut CBB,
+        crls: *const stack_st_X509_CRL,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_get_PEM_certificates"]
+    pub fn PKCS7_get_PEM_certificates(
+        out_certs: *mut stack_st_X509,
+        pem_bio: *mut BIO,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_get_PEM_CRLs"]
+    pub fn PKCS7_get_PEM_CRLs(
+        out_crls: *mut stack_st_X509_CRL,
+        pem_bio: *mut BIO,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS7_bio"]
+    pub fn d2i_PKCS7_bio(bio: *mut BIO, out: *mut *mut PKCS7) -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS7_bio"]
+    pub fn i2d_PKCS7_bio(bio: *mut BIO, p7: *const PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_type_is_data"]
+    pub fn PKCS7_type_is_data(p7: *const PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_type_is_digest"]
+    pub fn PKCS7_type_is_digest(p7: *const PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_type_is_encrypted"]
+    pub fn PKCS7_type_is_encrypted(p7: *const PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_type_is_enveloped"]
+    pub fn PKCS7_type_is_enveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_type_is_signed"]
+    pub fn PKCS7_type_is_signed(p7: *const PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_type_is_signedAndEnveloped"]
+    pub fn PKCS7_type_is_signedAndEnveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pkcs7_st {
+    pub type_: *mut ASN1_OBJECT,
+    pub d: pkcs7_st__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pkcs7_st__bindgen_ty_1 {
+    pub ptr: *mut ::std::os::raw::c_char,
+    pub data: *mut ASN1_OCTET_STRING,
+    pub sign: *mut PKCS7_SIGNED,
+    pub enveloped: *mut PKCS7_ENVELOPE,
+    pub signed_and_enveloped: *mut PKCS7_SIGN_ENVELOPE,
+    pub digest: *mut PKCS7_DIGEST,
+    pub encrypted: *mut PKCS7_ENCRYPT,
+}
+#[test]
+fn bindgen_test_layout_pkcs7_st__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pkcs7_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(pkcs7_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs7_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs7_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st__bindgen_ty_1),
+            "::",
+            stringify!(ptr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st__bindgen_ty_1),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sign) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st__bindgen_ty_1),
+            "::",
+            stringify!(sign)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enveloped) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st__bindgen_ty_1),
+            "::",
+            stringify!(enveloped)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).signed_and_enveloped) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st__bindgen_ty_1),
+            "::",
+            stringify!(signed_and_enveloped)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st__bindgen_ty_1),
+            "::",
+            stringify!(digest)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).encrypted) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st__bindgen_ty_1),
+            "::",
+            stringify!(encrypted)
+        )
+    );
+}
+impl Default for pkcs7_st__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[test]
+fn bindgen_test_layout_pkcs7_st() {
+    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pkcs7_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(pkcs7_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs7_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs7_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_st),
+            "::",
+            stringify!(d)
+        )
+    );
+}
+impl Default for pkcs7_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct pkcs7_signed_st {
+    pub version: *mut ASN1_INTEGER,
+    pub md_algs: *mut stack_st_X509_ALGOR,
+    pub contents: *mut PKCS7,
+    pub cert: *mut stack_st_X509,
+    pub crl: *mut stack_st_X509_CRL,
+    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
+}
+#[test]
+fn bindgen_test_layout_pkcs7_signed_st() {
+    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signed_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pkcs7_signed_st>(),
+        48usize,
+        concat!("Size of: ", stringify!(pkcs7_signed_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs7_signed_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs7_signed_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signed_st),
+            "::",
+            stringify!(version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signed_st),
+            "::",
+            stringify!(md_algs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).contents) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signed_st),
+            "::",
+            stringify!(contents)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signed_st),
+            "::",
+            stringify!(cert)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signed_st),
+            "::",
+            stringify!(crl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signed_st),
+            "::",
+            stringify!(signer_info)
+        )
+    );
+}
+impl Default for pkcs7_signed_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct pkcs7_signer_info_st {
+    pub version: *mut ASN1_INTEGER,
+    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
+    pub digest_alg: *mut X509_ALGOR,
+    pub auth_attr: *mut stack_st_X509_ATTRIBUTE,
+    pub digest_enc_alg: *mut X509_ALGOR,
+    pub enc_digest: *mut ASN1_OCTET_STRING,
+    pub unauth_attr: *mut stack_st_X509_ATTRIBUTE,
+    pub pkey: *mut EVP_PKEY,
+}
+#[test]
+fn bindgen_test_layout_pkcs7_signer_info_st() {
+    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signer_info_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pkcs7_signer_info_st>(),
+        64usize,
+        concat!("Size of: ", stringify!(pkcs7_signer_info_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs7_signer_info_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs7_signer_info_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signer_info_st),
+            "::",
+            stringify!(version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signer_info_st),
+            "::",
+            stringify!(issuer_and_serial)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).digest_alg) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signer_info_st),
+            "::",
+            stringify!(digest_alg)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).auth_attr) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signer_info_st),
+            "::",
+            stringify!(auth_attr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).digest_enc_alg) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signer_info_st),
+            "::",
+            stringify!(digest_enc_alg)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enc_digest) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signer_info_st),
+            "::",
+            stringify!(enc_digest)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).unauth_attr) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signer_info_st),
+            "::",
+            stringify!(unauth_attr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pkey) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_signer_info_st),
+            "::",
+            stringify!(pkey)
+        )
+    );
+}
+impl Default for pkcs7_signer_info_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct pkcs7_sign_envelope_st {
+    pub version: *mut ASN1_INTEGER,
+    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
+    pub md_algs: *mut stack_st_X509_ALGOR,
+    pub enc_data: *mut PKCS7_ENC_CONTENT,
+    pub cert: *mut stack_st_X509,
+    pub crl: *mut stack_st_X509_CRL,
+    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
+}
+#[test]
+fn bindgen_test_layout_pkcs7_sign_envelope_st() {
+    const UNINIT: ::std::mem::MaybeUninit<pkcs7_sign_envelope_st> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pkcs7_sign_envelope_st>(),
+        56usize,
+        concat!("Size of: ", stringify!(pkcs7_sign_envelope_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs7_sign_envelope_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs7_sign_envelope_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_sign_envelope_st),
+            "::",
+            stringify!(version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_sign_envelope_st),
+            "::",
+            stringify!(recipientinfo)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_sign_envelope_st),
+            "::",
+            stringify!(md_algs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_sign_envelope_st),
+            "::",
+            stringify!(enc_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_sign_envelope_st),
+            "::",
+            stringify!(cert)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_sign_envelope_st),
+            "::",
+            stringify!(crl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_sign_envelope_st),
+            "::",
+            stringify!(signer_info)
+        )
+    );
+}
+impl Default for pkcs7_sign_envelope_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct pkcs7_envelope_st {
+    pub version: *mut ASN1_INTEGER,
+    pub enc_data: *mut PKCS7_ENC_CONTENT,
+    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
+}
+#[test]
+fn bindgen_test_layout_pkcs7_envelope_st() {
+    const UNINIT: ::std::mem::MaybeUninit<pkcs7_envelope_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pkcs7_envelope_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(pkcs7_envelope_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs7_envelope_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs7_envelope_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_envelope_st),
+            "::",
+            stringify!(version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_envelope_st),
+            "::",
+            stringify!(enc_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_envelope_st),
+            "::",
+            stringify!(recipientinfo)
+        )
+    );
+}
+impl Default for pkcs7_envelope_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct pkcs7_recip_info_st {
+    pub version: *mut ASN1_INTEGER,
+    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
+    pub key_enc_algor: *mut X509_ALGOR,
+    pub enc_key: *mut ASN1_OCTET_STRING,
+    pub cert: *mut X509,
+}
+#[test]
+fn bindgen_test_layout_pkcs7_recip_info_st() {
+    const UNINIT: ::std::mem::MaybeUninit<pkcs7_recip_info_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pkcs7_recip_info_st>(),
+        40usize,
+        concat!("Size of: ", stringify!(pkcs7_recip_info_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs7_recip_info_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs7_recip_info_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_recip_info_st),
+            "::",
+            stringify!(version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_recip_info_st),
+            "::",
+            stringify!(issuer_and_serial)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).key_enc_algor) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_recip_info_st),
+            "::",
+            stringify!(key_enc_algor)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enc_key) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_recip_info_st),
+            "::",
+            stringify!(enc_key)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_recip_info_st),
+            "::",
+            stringify!(cert)
+        )
+    );
+}
+impl Default for pkcs7_recip_info_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct pkcs7_issuer_and_serial_st {
+    pub issuer: *mut X509_NAME,
+    pub serial: *mut ASN1_INTEGER,
+}
+#[test]
+fn bindgen_test_layout_pkcs7_issuer_and_serial_st() {
+    const UNINIT: ::std::mem::MaybeUninit<pkcs7_issuer_and_serial_st> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pkcs7_issuer_and_serial_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(pkcs7_issuer_and_serial_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pkcs7_issuer_and_serial_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pkcs7_issuer_and_serial_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_issuer_and_serial_st),
+            "::",
+            stringify!(issuer)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pkcs7_issuer_and_serial_st),
+            "::",
+            stringify!(serial)
+        )
+    );
+}
+impl Default for pkcs7_issuer_and_serial_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_new"]
+    pub fn PKCS7_new() -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_free"]
+    pub fn PKCS7_free(a: *mut PKCS7);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS7"]
+    pub fn d2i_PKCS7(
+        a: *mut *mut PKCS7,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS7"]
+    pub fn i2d_PKCS7(
+        a: *mut PKCS7,
+        out: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_it"]
+    pub static PKCS7_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_RECIP_INFO_new"]
+    pub fn PKCS7_RECIP_INFO_new() -> *mut PKCS7_RECIP_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_RECIP_INFO_free"]
+    pub fn PKCS7_RECIP_INFO_free(a: *mut PKCS7_RECIP_INFO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS7_RECIP_INFO"]
+    pub fn d2i_PKCS7_RECIP_INFO(
+        a: *mut *mut PKCS7_RECIP_INFO,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut PKCS7_RECIP_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS7_RECIP_INFO"]
+    pub fn i2d_PKCS7_RECIP_INFO(
+        a: *mut PKCS7_RECIP_INFO,
+        out: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_RECIP_INFO_it"]
+    pub static PKCS7_RECIP_INFO_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_SIGNER_INFO_new"]
+    pub fn PKCS7_SIGNER_INFO_new() -> *mut PKCS7_SIGNER_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_SIGNER_INFO_free"]
+    pub fn PKCS7_SIGNER_INFO_free(a: *mut PKCS7_SIGNER_INFO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS7_SIGNER_INFO"]
+    pub fn d2i_PKCS7_SIGNER_INFO(
+        a: *mut *mut PKCS7_SIGNER_INFO,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut PKCS7_SIGNER_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS7_SIGNER_INFO"]
+    pub fn i2d_PKCS7_SIGNER_INFO(
+        a: *mut PKCS7_SIGNER_INFO,
+        out: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_SIGNER_INFO_it"]
+    pub static PKCS7_SIGNER_INFO_it: ASN1_ITEM;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_PKCS7_RECIP_INFO {
+    _unused: [u8; 0],
+}
+pub type sk_PKCS7_RECIP_INFO_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_RECIP_INFO)>;
+pub type sk_PKCS7_RECIP_INFO_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const PKCS7_RECIP_INFO) -> *mut PKCS7_RECIP_INFO,
+>;
+pub type sk_PKCS7_RECIP_INFO_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const PKCS7_RECIP_INFO,
+        arg2: *const *const PKCS7_RECIP_INFO,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_PKCS7_RECIP_INFO_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut PKCS7_RECIP_INFO,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_PKCS7_SIGNER_INFO {
+    _unused: [u8; 0],
+}
+pub type sk_PKCS7_SIGNER_INFO_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_SIGNER_INFO)>;
+pub type sk_PKCS7_SIGNER_INFO_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const PKCS7_SIGNER_INFO) -> *mut PKCS7_SIGNER_INFO,
+>;
+pub type sk_PKCS7_SIGNER_INFO_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const PKCS7_SIGNER_INFO,
+        arg2: *const *const PKCS7_SIGNER_INFO,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_PKCS7_SIGNER_INFO_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut PKCS7_SIGNER_INFO,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_dup"]
+    pub fn PKCS7_dup(p7: *mut PKCS7) -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_get_signed_attribute"]
+    pub fn PKCS7_get_signed_attribute(
+        si: *const PKCS7_SIGNER_INFO,
+        nid: ::std::os::raw::c_int,
+    ) -> *mut ASN1_TYPE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_get_signer_info"]
+    pub fn PKCS7_get_signer_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_SIGNER_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_RECIP_INFO_set"]
+    pub fn PKCS7_RECIP_INFO_set(
+        p7i: *mut PKCS7_RECIP_INFO,
+        x509: *mut X509,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_SIGNER_INFO_set"]
+    pub fn PKCS7_SIGNER_INFO_set(
+        p7i: *mut PKCS7_SIGNER_INFO,
+        x509: *mut X509,
+        pkey: *mut EVP_PKEY,
+        dgst: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_add_certificate"]
+    pub fn PKCS7_add_certificate(p7: *mut PKCS7, x509: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_add_crl"]
+    pub fn PKCS7_add_crl(p7: *mut PKCS7, x509: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_add_recipient_info"]
+    pub fn PKCS7_add_recipient_info(
+        p7: *mut PKCS7,
+        ri: *mut PKCS7_RECIP_INFO,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_add_signer"]
+    pub fn PKCS7_add_signer(p7: *mut PKCS7, p7i: *mut PKCS7_SIGNER_INFO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_content_new"]
+    pub fn PKCS7_content_new(p7: *mut PKCS7, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_set_content"]
+    pub fn PKCS7_set_content(p7: *mut PKCS7, p7_data: *mut PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_set_cipher"]
+    pub fn PKCS7_set_cipher(p7: *mut PKCS7, cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_set_type"]
+    pub fn PKCS7_set_type(p7: *mut PKCS7, type_: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_RECIP_INFO_get0_alg"]
+    pub fn PKCS7_RECIP_INFO_get0_alg(ri: *mut PKCS7_RECIP_INFO, penc: *mut *mut X509_ALGOR);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_SIGNER_INFO_get0_algs"]
+    pub fn PKCS7_SIGNER_INFO_get0_algs(
+        si: *mut PKCS7_SIGNER_INFO,
+        pk: *mut *mut EVP_PKEY,
+        pdig: *mut *mut X509_ALGOR,
+        psig: *mut *mut X509_ALGOR,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_sign"]
+    pub fn PKCS7_sign(
+        sign_cert: *mut X509,
+        pkey: *mut EVP_PKEY,
+        certs: *mut stack_st_X509,
+        data: *mut BIO,
+        flags: ::std::os::raw::c_int,
+    ) -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_verify"]
+    pub fn PKCS7_verify(
+        p7: *mut PKCS7,
+        certs: *mut stack_st_X509,
+        store: *mut X509_STORE,
+        indata: *mut BIO,
+        outdata: *mut BIO,
+        flags: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_is_detached"]
+    pub fn PKCS7_is_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_dataInit"]
+    pub fn PKCS7_dataInit(p7: *mut PKCS7, bio: *mut BIO) -> *mut BIO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_dataFinal"]
+    pub fn PKCS7_dataFinal(p7: *mut PKCS7, bio: *mut BIO) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_set_digest"]
+    pub fn PKCS7_set_digest(p7: *mut PKCS7, md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_get_recipient_info"]
+    pub fn PKCS7_get_recipient_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_RECIP_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_add_recipient"]
+    pub fn PKCS7_add_recipient(p7: *mut PKCS7, x509: *mut X509) -> *mut PKCS7_RECIP_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_encrypt"]
+    pub fn PKCS7_encrypt(
+        certs: *mut stack_st_X509,
+        in_: *mut BIO,
+        cipher: *const EVP_CIPHER,
+        flags: ::std::os::raw::c_int,
+    ) -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_decrypt"]
+    pub fn PKCS7_decrypt(
+        p7: *mut PKCS7,
+        pkey: *mut EVP_PKEY,
+        cert: *mut X509,
+        data: *mut BIO,
+        flags: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SMIME_read_PKCS7"]
+    pub fn SMIME_read_PKCS7(in_: *mut BIO, bcont: *mut *mut BIO) -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SMIME_write_PKCS7"]
+    pub fn SMIME_write_PKCS7(
+        out: *mut BIO,
+        p7: *mut PKCS7,
+        data: *mut BIO,
+        flags: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS7_print_ctx"]
+    pub fn PKCS7_print_ctx(
+        bio: *mut BIO,
+        pkcs7: *mut PKCS7,
+        indent: ::std::os::raw::c_int,
+        pctx: *const ASN1_PCTX,
+    ) -> ::std::os::raw::c_int;
+}
+pub type sk_CRYPTO_BUFFER_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CRYPTO_BUFFER)>;
+pub type sk_CRYPTO_BUFFER_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER>;
+pub type sk_CRYPTO_BUFFER_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const CRYPTO_BUFFER,
+        arg2: *const *const CRYPTO_BUFFER,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_CRYPTO_BUFFER_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut CRYPTO_BUFFER,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_POOL_new"]
+    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_POOL_free"]
+    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_new"]
+    pub fn CRYPTO_BUFFER_new(
+        data: *const u8,
+        len: usize,
+        pool: *mut CRYPTO_BUFFER_POOL,
+    ) -> *mut CRYPTO_BUFFER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_alloc"]
+    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_new_from_CBS"]
+    pub fn CRYPTO_BUFFER_new_from_CBS(
+        cbs: *const CBS,
+        pool: *mut CRYPTO_BUFFER_POOL,
+    ) -> *mut CRYPTO_BUFFER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_new_from_static_data_unsafe"]
+    pub fn CRYPTO_BUFFER_new_from_static_data_unsafe(
+        data: *const u8,
+        len: usize,
+        pool: *mut CRYPTO_BUFFER_POOL,
+    ) -> *mut CRYPTO_BUFFER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_free"]
+    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_up_ref"]
+    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_data"]
+    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_len"]
+    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_BUFFER_init_CBS"]
+    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new_public_key"]
+    pub fn RSA_new_public_key(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new_private_key"]
+    pub fn RSA_new_private_key(
+        n: *const BIGNUM,
+        e: *const BIGNUM,
+        d: *const BIGNUM,
+        p: *const BIGNUM,
+        q: *const BIGNUM,
+        dmp1: *const BIGNUM,
+        dmq1: *const BIGNUM,
+        iqmp: *const BIGNUM,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new"]
+    pub fn RSA_new() -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new_method"]
+    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_free"]
+    pub fn RSA_free(rsa: *mut RSA);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_up_ref"]
+    pub fn RSA_up_ref(rsa: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_bits"]
+    pub fn RSA_bits(rsa: *const RSA) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_n"]
+    pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_e"]
+    pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_d"]
+    pub fn RSA_get0_d(rsa: *const RSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_p"]
+    pub fn RSA_get0_p(rsa: *const RSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_q"]
+    pub fn RSA_get0_q(rsa: *const RSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_dmp1"]
+    pub fn RSA_get0_dmp1(rsa: *const RSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_dmq1"]
+    pub fn RSA_get0_dmq1(rsa: *const RSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_iqmp"]
+    pub fn RSA_get0_iqmp(rsa: *const RSA) -> *const BIGNUM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_key"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_factors"]
+    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_crt_params"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_set0_key"]
+    pub fn RSA_set0_key(
+        rsa: *mut RSA,
+        n: *mut BIGNUM,
+        e: *mut BIGNUM,
+        d: *mut BIGNUM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_set0_factors"]
+    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_set0_crt_params"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get_default_method"]
+    pub fn RSA_get_default_method() -> *const RSA_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_new"]
+    pub fn RSA_meth_new(
+        name: *const ::std::os::raw::c_char,
+        flags: ::std::os::raw::c_int,
+    ) -> *mut RSA_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_set_method"]
+    pub fn RSA_set_method(rsa: *mut RSA, meth: *const RSA_METHOD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get_method"]
+    pub fn RSA_get_method(rsa: *const RSA) -> *const RSA_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_free"]
+    pub fn RSA_meth_free(meth: *mut RSA_METHOD);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_set_init"]
+    pub fn RSA_meth_set_init(
+        meth: *mut RSA_METHOD,
+        init: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_set_finish"]
+    pub fn RSA_meth_set_finish(
+        meth: *mut RSA_METHOD,
+        finish: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_set_priv_dec"]
+    pub fn RSA_meth_set_priv_dec(
+        meth: *mut RSA_METHOD,
+        priv_dec: ::std::option::Option<
+            unsafe extern "C" fn(
+                max_out: ::std::os::raw::c_int,
+                from: *const u8,
+                to: *mut u8,
+                rsa: *mut RSA,
+                padding: ::std::os::raw::c_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_set_priv_enc"]
+    pub fn RSA_meth_set_priv_enc(
+        meth: *mut RSA_METHOD,
+        priv_enc: ::std::option::Option<
+            unsafe extern "C" fn(
+                max_out: ::std::os::raw::c_int,
+                from: *const u8,
+                to: *mut u8,
+                rsa: *mut RSA,
+                padding: ::std::os::raw::c_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_set_pub_dec"]
+    pub fn RSA_meth_set_pub_dec(
+        meth: *mut RSA_METHOD,
+        pub_dec: ::std::option::Option<
+            unsafe extern "C" fn(
+                max_out: ::std::os::raw::c_int,
+                from: *const u8,
+                to: *mut u8,
+                rsa: *mut RSA,
+                padding: ::std::os::raw::c_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_set_pub_enc"]
+    pub fn RSA_meth_set_pub_enc(
+        meth: *mut RSA_METHOD,
+        pub_enc: ::std::option::Option<
+            unsafe extern "C" fn(
+                max_out: ::std::os::raw::c_int,
+                from: *const u8,
+                to: *mut u8,
+                rsa: *mut RSA,
+                padding: ::std::os::raw::c_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_set0_app_data"]
+    pub fn RSA_meth_set0_app_data(
+        meth: *mut RSA_METHOD,
+        app_data: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_meth_set_sign"]
+    pub fn RSA_meth_set_sign(
+        meth: *mut RSA_METHOD,
+        sign: ::std::option::Option<
+            unsafe extern "C" fn(
+                type_: ::std::os::raw::c_int,
+                m: *const ::std::os::raw::c_uchar,
+                m_length: ::std::os::raw::c_uint,
+                sigret: *mut ::std::os::raw::c_uchar,
+                siglen: *mut ::std::os::raw::c_uint,
+                rsa: *const RSA,
+            ) -> ::std::os::raw::c_int,
+        >,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_generate_key_ex"]
+    pub fn RSA_generate_key_ex(
+        rsa: *mut RSA,
+        bits: ::std::os::raw::c_int,
+        e: *const BIGNUM,
+        cb: *mut BN_GENCB,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_generate_key_fips"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_decrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_public_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_private_decrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_sign"]
+    pub fn RSA_sign(
+        hash_nid: ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+        rsa: *mut RSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_sign_pss_mgf1"]
+    pub fn RSA_sign_pss_mgf1(
+        rsa: *mut RSA,
+        out_len: *mut usize,
+        out: *mut u8,
+        max_out: usize,
+        digest: *const u8,
+        digest_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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_sign_raw"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_verify"]
+    pub fn RSA_verify(
+        hash_nid: ::std::os::raw::c_int,
+        digest: *const u8,
+        digest_len: usize,
+        sig: *const u8,
+        sig_len: usize,
+        rsa: *mut RSA,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_verify_pss_mgf1"]
+    pub fn RSA_verify_pss_mgf1(
+        rsa: *mut RSA,
+        digest: *const u8,
+        digest_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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_verify_raw"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_private_encrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_public_decrypt"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_size"]
+    pub fn RSA_size(rsa: *const RSA) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_is_opaque"]
+    pub fn RSA_is_opaque(rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSAPublicKey_dup"]
+    pub fn RSAPublicKey_dup(rsa: *const RSA) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSAPrivateKey_dup"]
+    pub fn RSAPrivateKey_dup(rsa: *const RSA) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_check_key"]
+    pub fn RSA_check_key(rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_check_fips"]
+    pub fn RSA_check_fips(key: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_verify_PKCS1_PSS_mgf1"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_padding_add_PKCS1_PSS_mgf1"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_padding_add_PKCS1_OAEP_mgf1"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS1_MGF1"]
+    pub fn PKCS1_MGF1(
+        out: *mut u8,
+        len: usize,
+        seed: *const u8,
+        seed_len: usize,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_add_pkcs1_prefix"]
+    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,
+        digest: *const u8,
+        digest_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_parse_public_key"]
+    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_public_key_from_bytes"]
+    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_marshal_public_key"]
+    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_public_key_to_bytes"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_parse_private_key"]
+    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_private_key_from_bytes"]
+    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_marshal_private_key"]
+    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_private_key_to_bytes"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new_private_key_no_crt"]
+    pub fn RSA_new_private_key_no_crt(
+        n: *const BIGNUM,
+        e: *const BIGNUM,
+        d: *const BIGNUM,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new_private_key_no_e"]
+    pub fn RSA_new_private_key_no_e(n: *const BIGNUM, d: *const BIGNUM) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new_public_key_large_e"]
+    pub fn RSA_new_public_key_large_e(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new_private_key_large_e"]
+    pub fn RSA_new_private_key_large_e(
+        n: *const BIGNUM,
+        e: *const BIGNUM,
+        d: *const BIGNUM,
+        p: *const BIGNUM,
+        q: *const BIGNUM,
+        dmp1: *const BIGNUM,
+        dmq1: *const BIGNUM,
+        iqmp: *const BIGNUM,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get_ex_new_index"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_set_ex_data"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get_ex_data"]
+    pub fn RSA_get_ex_data(
+        rsa: *const RSA,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_flags"]
+    pub fn RSA_flags(rsa: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_set_flags"]
+    pub fn RSA_set_flags(rsa: *mut RSA, flags: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_test_flags"]
+    pub fn RSA_test_flags(rsa: *const RSA, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_blinding_on"]
+    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_blinding_off_temp_for_accp_compatibility"]
+    pub fn RSA_blinding_off_temp_for_accp_compatibility(rsa: *mut RSA);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_pkey_ctx_ctrl"]
+    pub fn RSA_pkey_ctx_ctrl(
+        ctx: *mut EVP_PKEY_CTX,
+        optype: ::std::os::raw::c_int,
+        cmd: ::std::os::raw::c_int,
+        p1: ::std::os::raw::c_int,
+        p2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_generate_key"]
+    pub fn RSA_generate_key(
+        bits: ::std::os::raw::c_int,
+        e: u64,
+        callback: *mut ::std::os::raw::c_void,
+        cb_arg: *mut ::std::os::raw::c_void,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSAPublicKey"]
+    pub fn d2i_RSAPublicKey(
+        out: *mut *mut RSA,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSAPublicKey"]
+    pub fn i2d_RSAPublicKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSAPrivateKey"]
+    pub fn d2i_RSAPrivateKey(
+        out: *mut *mut RSA,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSAPrivateKey"]
+    pub fn i2d_RSAPrivateKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_padding_add_PKCS1_PSS"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_verify_PKCS1_PSS"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_padding_add_PKCS1_OAEP"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_print"]
+    pub fn RSA_print(
+        bio: *mut BIO,
+        rsa: *const RSA,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_print_fp"]
+    pub fn RSA_print_fp(
+        fp: *mut FILE,
+        rsa: *const RSA,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_get0_pss_params"]
+    pub fn RSA_get0_pss_params(rsa: *const RSA) -> *const RSA_PSS_PARAMS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_new_method_no_e"]
+    pub fn RSA_new_method_no_e(engine: *const ENGINE, n: *const BIGNUM) -> *mut RSA;
+}
+pub type sk_X509_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509)>;
+pub type sk_X509_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509) -> *mut X509>;
+pub type sk_X509_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509,
+        arg2: *const *const X509,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_it"]
+    pub static X509_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_up_ref"]
+    pub fn X509_up_ref(x509: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_chain_up_ref"]
+    pub fn X509_chain_up_ref(chain: *mut stack_st_X509) -> *mut stack_st_X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_dup"]
+    pub fn X509_dup(x509: *mut X509) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_free"]
+    pub fn X509_free(x509: *mut X509);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509"]
+    pub fn d2i_X509(
+        out: *mut *mut X509,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_parse_from_buffer"]
+    pub fn X509_parse_from_buffer(buf: *mut CRYPTO_BUFFER) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509"]
+    pub fn i2d_X509(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_version"]
+    pub fn X509_get_version(x509: *const X509) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_serialNumber"]
+    pub fn X509_get0_serialNumber(x509: *const X509) -> *const ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_notBefore"]
+    pub fn X509_get0_notBefore(x509: *const X509) -> *const ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_notAfter"]
+    pub fn X509_get0_notAfter(x509: *const X509) -> *const ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_issuer_name"]
+    pub fn X509_get_issuer_name(x509: *const X509) -> *mut X509_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_subject_name"]
+    pub fn X509_get_subject_name(x509: *const X509) -> *mut X509_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_X509_PUBKEY"]
+    pub fn X509_get_X509_PUBKEY(x509: *const X509) -> *mut X509_PUBKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_pubkey"]
+    pub fn X509_get0_pubkey(x509: *const X509) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_pubkey"]
+    pub fn X509_get_pubkey(x509: *const X509) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_pubkey_bitstr"]
+    pub fn X509_get0_pubkey_bitstr(x509: *const X509) -> *mut ASN1_BIT_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_private_key"]
+    pub fn X509_check_private_key(
+        x509: *const X509,
+        pkey: *const EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_uids"]
+    pub fn X509_get0_uids(
+        x509: *const X509,
+        out_issuer_uid: *mut *const ASN1_BIT_STRING,
+        out_subject_uid: *mut *const ASN1_BIT_STRING,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_extension_flags"]
+    pub fn X509_get_extension_flags(x509: *mut X509) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_pathlen"]
+    pub fn X509_get_pathlen(x509: *mut X509) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_key_usage"]
+    pub fn X509_get_key_usage(x509: *mut X509) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_extended_key_usage"]
+    pub fn X509_get_extended_key_usage(x509: *mut X509) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_subject_key_id"]
+    pub fn X509_get0_subject_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_authority_key_id"]
+    pub fn X509_get0_authority_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_GENERAL_NAME {
+    _unused: [u8; 0],
+}
+pub type sk_GENERAL_NAME_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_NAME)>;
+pub type sk_GENERAL_NAME_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const GENERAL_NAME) -> *mut GENERAL_NAME>;
+pub type sk_GENERAL_NAME_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const GENERAL_NAME,
+        arg2: *const *const GENERAL_NAME,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_GENERAL_NAME_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut GENERAL_NAME,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_authority_issuer"]
+    pub fn X509_get0_authority_issuer(x509: *mut X509) -> *const GENERAL_NAMES;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_authority_serial"]
+    pub fn X509_get0_authority_serial(x509: *mut X509) -> *const ASN1_INTEGER;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_EXTENSION {
+    _unused: [u8; 0],
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_extensions"]
+    pub fn X509_get0_extensions(x509: *const X509) -> *const stack_st_X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_ext_count"]
+    pub fn X509_get_ext_count(x: *const X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_ext_by_NID"]
+    pub fn X509_get_ext_by_NID(
+        x: *const X509,
+        nid: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_ext_by_OBJ"]
+    pub fn X509_get_ext_by_OBJ(
+        x: *const X509,
+        obj: *const ASN1_OBJECT,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_ext_by_critical"]
+    pub fn X509_get_ext_by_critical(
+        x: *const X509,
+        crit: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_ext"]
+    pub fn X509_get_ext(x: *const X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_ext_d2i"]
+    pub fn X509_get_ext_d2i(
+        x509: *const X509,
+        nid: ::std::os::raw::c_int,
+        out_critical: *mut ::std::os::raw::c_int,
+        out_idx: *mut ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_tbs_sigalg"]
+    pub fn X509_get0_tbs_sigalg(x509: *const X509) -> *const X509_ALGOR;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_signature_info"]
+    pub fn X509_get_signature_info(
+        x509: *mut X509,
+        digest_nid: *mut ::std::os::raw::c_int,
+        pubkey_nid: *mut ::std::os::raw::c_int,
+        sec_bits: *mut ::std::os::raw::c_int,
+        flags: *mut u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get0_signature"]
+    pub fn X509_get0_signature(
+        out_sig: *mut *const ASN1_BIT_STRING,
+        out_alg: *mut *const X509_ALGOR,
+        x509: *const X509,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_signature_nid"]
+    pub fn X509_get_signature_nid(x509: *const X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_tbs"]
+    pub fn i2d_X509_tbs(
+        x509: *mut X509,
+        outp: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_verify"]
+    pub fn X509_verify(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get1_email"]
+    pub fn X509_get1_email(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get1_ocsp"]
+    pub fn X509_get1_ocsp(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_email_free"]
+    pub fn X509_email_free(sk: *mut stack_st_OPENSSL_STRING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_cmp"]
+    pub fn X509_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_new"]
+    pub fn X509_new() -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set_version"]
+    pub fn X509_set_version(
+        x509: *mut X509,
+        version: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set_serialNumber"]
+    pub fn X509_set_serialNumber(
+        x509: *mut X509,
+        serial: *const ASN1_INTEGER,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set1_notBefore"]
+    pub fn X509_set1_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set1_notAfter"]
+    pub fn X509_set1_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_getm_notBefore"]
+    pub fn X509_getm_notBefore(x509: *mut X509) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_getm_notAfter"]
+    pub fn X509_getm_notAfter(x: *mut X509) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set_issuer_name"]
+    pub fn X509_set_issuer_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set_subject_name"]
+    pub fn X509_set_subject_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set_pubkey"]
+    pub fn X509_set_pubkey(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_delete_ext"]
+    pub fn X509_delete_ext(x: *mut X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_add_ext"]
+    pub fn X509_add_ext(
+        x: *mut X509,
+        ex: *const X509_EXTENSION,
+        loc: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_add1_ext_i2d"]
+    pub fn X509_add1_ext_i2d(
+        x: *mut X509,
+        nid: ::std::os::raw::c_int,
+        value: *mut ::std::os::raw::c_void,
+        crit: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_sign"]
+    pub fn X509_sign(
+        x509: *mut X509,
+        pkey: *mut EVP_PKEY,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_sign_ctx"]
+    pub fn X509_sign_ctx(x509: *mut X509, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_re_X509_tbs"]
+    pub fn i2d_re_X509_tbs(
+        x509: *mut X509,
+        outp: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set1_signature_algo"]
+    pub fn X509_set1_signature_algo(
+        x509: *mut X509,
+        algo: *const X509_ALGOR,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set1_signature_value"]
+    pub fn X509_set1_signature_value(
+        x509: *mut X509,
+        sig: *const u8,
+        sig_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_AUX"]
+    pub fn i2d_X509_AUX(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_AUX"]
+    pub fn d2i_X509_AUX(
+        x509: *mut *mut X509,
+        inp: *mut *const u8,
+        length: ::std::os::raw::c_long,
+    ) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_alias_set1"]
+    pub fn X509_alias_set1(
+        x509: *mut X509,
+        name: *const u8,
+        len: ossl_ssize_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_keyid_set1"]
+    pub fn X509_keyid_set1(
+        x509: *mut X509,
+        id: *const u8,
+        len: ossl_ssize_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_alias_get0"]
+    pub fn X509_alias_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_keyid_get0"]
+    pub fn X509_keyid_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_add1_trust_object"]
+    pub fn X509_add1_trust_object(
+        x509: *mut X509,
+        obj: *const ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_add1_reject_object"]
+    pub fn X509_add1_reject_object(
+        x509: *mut X509,
+        obj: *const ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_trust_clear"]
+    pub fn X509_trust_clear(x509: *mut X509);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_reject_clear"]
+    pub fn X509_reject_clear(x509: *mut X509);
+}
+pub type sk_X509_CRL_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_CRL)>;
+pub type sk_X509_CRL_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_CRL) -> *mut X509_CRL>;
+pub type sk_X509_CRL_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_CRL,
+        arg2: *const *const X509_CRL,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_CRL_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_CRL,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_REVOKED {
+    _unused: [u8; 0],
+}
+pub type sk_X509_REVOKED_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_REVOKED)>;
+pub type sk_X509_REVOKED_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_REVOKED) -> *mut X509_REVOKED>;
+pub type sk_X509_REVOKED_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_REVOKED,
+        arg2: *const *const X509_REVOKED,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_REVOKED_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_REVOKED,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_it"]
+    pub static X509_CRL_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_up_ref"]
+    pub fn X509_CRL_up_ref(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_dup"]
+    pub fn X509_CRL_dup(crl: *mut X509_CRL) -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_free"]
+    pub fn X509_CRL_free(crl: *mut X509_CRL);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_CRL"]
+    pub fn d2i_X509_CRL(
+        out: *mut *mut X509_CRL,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_CRL"]
+    pub fn i2d_X509_CRL(crl: *mut X509_CRL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_match"]
+    pub fn X509_CRL_match(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_version"]
+    pub fn X509_CRL_get_version(crl: *const X509_CRL) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get0_lastUpdate"]
+    pub fn X509_CRL_get0_lastUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get0_nextUpdate"]
+    pub fn X509_CRL_get0_nextUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_issuer"]
+    pub fn X509_CRL_get_issuer(crl: *const X509_CRL) -> *mut X509_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get0_by_serial"]
+    pub fn X509_CRL_get0_by_serial(
+        crl: *mut X509_CRL,
+        out: *mut *mut X509_REVOKED,
+        serial: *const ASN1_INTEGER,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get0_by_cert"]
+    pub fn X509_CRL_get0_by_cert(
+        crl: *mut X509_CRL,
+        out: *mut *mut X509_REVOKED,
+        x509: *mut X509,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_REVOKED"]
+    pub fn X509_CRL_get_REVOKED(crl: *mut X509_CRL) -> *mut stack_st_X509_REVOKED;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get0_extensions"]
+    pub fn X509_CRL_get0_extensions(crl: *const X509_CRL) -> *const stack_st_X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_ext_count"]
+    pub fn X509_CRL_get_ext_count(x: *const X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_ext_by_NID"]
+    pub fn X509_CRL_get_ext_by_NID(
+        x: *const X509_CRL,
+        nid: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_ext_by_OBJ"]
+    pub fn X509_CRL_get_ext_by_OBJ(
+        x: *const X509_CRL,
+        obj: *const ASN1_OBJECT,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_ext_by_critical"]
+    pub fn X509_CRL_get_ext_by_critical(
+        x: *const X509_CRL,
+        crit: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_ext"]
+    pub fn X509_CRL_get_ext(x: *const X509_CRL, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_ext_d2i"]
+    pub fn X509_CRL_get_ext_d2i(
+        crl: *const X509_CRL,
+        nid: ::std::os::raw::c_int,
+        out_critical: *mut ::std::os::raw::c_int,
+        out_idx: *mut ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get0_signature"]
+    pub fn X509_CRL_get0_signature(
+        crl: *const X509_CRL,
+        out_sig: *mut *const ASN1_BIT_STRING,
+        out_alg: *mut *const X509_ALGOR,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_signature_nid"]
+    pub fn X509_CRL_get_signature_nid(crl: *const X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_CRL_tbs"]
+    pub fn i2d_X509_CRL_tbs(
+        crl: *mut X509_CRL,
+        outp: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_verify"]
+    pub fn X509_CRL_verify(crl: *mut X509_CRL, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_new"]
+    pub fn X509_CRL_new() -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_set_version"]
+    pub fn X509_CRL_set_version(
+        crl: *mut X509_CRL,
+        version: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_set_issuer_name"]
+    pub fn X509_CRL_set_issuer_name(
+        crl: *mut X509_CRL,
+        name: *mut X509_NAME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_set1_lastUpdate"]
+    pub fn X509_CRL_set1_lastUpdate(
+        crl: *mut X509_CRL,
+        tm: *const ASN1_TIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_set1_nextUpdate"]
+    pub fn X509_CRL_set1_nextUpdate(
+        crl: *mut X509_CRL,
+        tm: *const ASN1_TIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_add0_revoked"]
+    pub fn X509_CRL_add0_revoked(
+        crl: *mut X509_CRL,
+        rev: *mut X509_REVOKED,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_sort"]
+    pub fn X509_CRL_sort(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_delete_ext"]
+    pub fn X509_CRL_delete_ext(x: *mut X509_CRL, loc: ::std::os::raw::c_int)
+        -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_add_ext"]
+    pub fn X509_CRL_add_ext(
+        x: *mut X509_CRL,
+        ex: *const X509_EXTENSION,
+        loc: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_add1_ext_i2d"]
+    pub fn X509_CRL_add1_ext_i2d(
+        x: *mut X509_CRL,
+        nid: ::std::os::raw::c_int,
+        value: *mut ::std::os::raw::c_void,
+        crit: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_sign"]
+    pub fn X509_CRL_sign(
+        crl: *mut X509_CRL,
+        pkey: *mut EVP_PKEY,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_sign_ctx"]
+    pub fn X509_CRL_sign_ctx(crl: *mut X509_CRL, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_re_X509_CRL_tbs"]
+    pub fn i2d_re_X509_CRL_tbs(
+        crl: *mut X509_CRL,
+        outp: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_set1_signature_algo"]
+    pub fn X509_CRL_set1_signature_algo(
+        crl: *mut X509_CRL,
+        algo: *const X509_ALGOR,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_set1_signature_value"]
+    pub fn X509_CRL_set1_signature_value(
+        crl: *mut X509_CRL,
+        sig: *const u8,
+        sig_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_http_nbio"]
+    pub fn X509_CRL_http_nbio(
+        rctx: *mut OCSP_REQ_CTX,
+        pcrl: *mut *mut X509_CRL,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_it"]
+    pub static X509_REVOKED_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_new"]
+    pub fn X509_REVOKED_new() -> *mut X509_REVOKED;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_free"]
+    pub fn X509_REVOKED_free(rev: *mut X509_REVOKED);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_REVOKED"]
+    pub fn d2i_X509_REVOKED(
+        out: *mut *mut X509_REVOKED,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_REVOKED;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_REVOKED"]
+    pub fn i2d_X509_REVOKED(alg: *const X509_REVOKED, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_dup"]
+    pub fn X509_REVOKED_dup(rev: *const X509_REVOKED) -> *mut X509_REVOKED;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get0_serialNumber"]
+    pub fn X509_REVOKED_get0_serialNumber(revoked: *const X509_REVOKED) -> *const ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_set_serialNumber"]
+    pub fn X509_REVOKED_set_serialNumber(
+        revoked: *mut X509_REVOKED,
+        serial: *const ASN1_INTEGER,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get0_revocationDate"]
+    pub fn X509_REVOKED_get0_revocationDate(revoked: *const X509_REVOKED) -> *const ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_set_revocationDate"]
+    pub fn X509_REVOKED_set_revocationDate(
+        revoked: *mut X509_REVOKED,
+        tm: *const ASN1_TIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get0_extensions"]
+    pub fn X509_REVOKED_get0_extensions(r: *const X509_REVOKED) -> *const stack_st_X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get_ext_count"]
+    pub fn X509_REVOKED_get_ext_count(x: *const X509_REVOKED) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get_ext_by_NID"]
+    pub fn X509_REVOKED_get_ext_by_NID(
+        x: *const X509_REVOKED,
+        nid: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get_ext_by_OBJ"]
+    pub fn X509_REVOKED_get_ext_by_OBJ(
+        x: *const X509_REVOKED,
+        obj: *const ASN1_OBJECT,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get_ext_by_critical"]
+    pub fn X509_REVOKED_get_ext_by_critical(
+        x: *const X509_REVOKED,
+        crit: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get_ext"]
+    pub fn X509_REVOKED_get_ext(
+        x: *const X509_REVOKED,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_delete_ext"]
+    pub fn X509_REVOKED_delete_ext(
+        x: *mut X509_REVOKED,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_add_ext"]
+    pub fn X509_REVOKED_add_ext(
+        x: *mut X509_REVOKED,
+        ex: *const X509_EXTENSION,
+        loc: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_get_ext_d2i"]
+    pub fn X509_REVOKED_get_ext_d2i(
+        revoked: *const X509_REVOKED,
+        nid: ::std::os::raw::c_int,
+        out_critical: *mut ::std::os::raw::c_int,
+        out_idx: *mut ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REVOKED_add1_ext_i2d"]
+    pub fn X509_REVOKED_add1_ext_i2d(
+        x: *mut X509_REVOKED,
+        nid: ::std::os::raw::c_int,
+        value: *mut ::std::os::raw::c_void,
+        crit: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_it"]
+    pub static X509_REQ_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_dup"]
+    pub fn X509_REQ_dup(req: *mut X509_REQ) -> *mut X509_REQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_free"]
+    pub fn X509_REQ_free(req: *mut X509_REQ);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_REQ"]
+    pub fn d2i_X509_REQ(
+        out: *mut *mut X509_REQ,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_REQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_REQ"]
+    pub fn i2d_X509_REQ(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_version"]
+    pub fn X509_REQ_get_version(req: *const X509_REQ) -> ::std::os::raw::c_long;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_subject_name"]
+    pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get0_pubkey"]
+    pub fn X509_REQ_get0_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_pubkey"]
+    pub fn X509_REQ_get_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_check_private_key"]
+    pub fn X509_REQ_check_private_key(
+        req: *const X509_REQ,
+        pkey: *const EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_attr_count"]
+    pub fn X509_REQ_get_attr_count(req: *const X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_attr"]
+    pub fn X509_REQ_get_attr(
+        req: *const X509_REQ,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_attr_by_NID"]
+    pub fn X509_REQ_get_attr_by_NID(
+        req: *const X509_REQ,
+        nid: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_attr_by_OBJ"]
+    pub fn X509_REQ_get_attr_by_OBJ(
+        req: *const X509_REQ,
+        obj: *const ASN1_OBJECT,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_extension_nid"]
+    pub fn X509_REQ_extension_nid(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_extensions"]
+    pub fn X509_REQ_get_extensions(req: *const X509_REQ) -> *mut stack_st_X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get0_signature"]
+    pub fn X509_REQ_get0_signature(
+        req: *const X509_REQ,
+        out_sig: *mut *const ASN1_BIT_STRING,
+        out_alg: *mut *const X509_ALGOR,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get_signature_nid"]
+    pub fn X509_REQ_get_signature_nid(req: *const X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_verify"]
+    pub fn X509_REQ_verify(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_get1_email"]
+    pub fn X509_REQ_get1_email(req: *const X509_REQ) -> *mut stack_st_OPENSSL_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_new"]
+    pub fn X509_REQ_new() -> *mut X509_REQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_set_version"]
+    pub fn X509_REQ_set_version(
+        req: *mut X509_REQ,
+        version: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_set_subject_name"]
+    pub fn X509_REQ_set_subject_name(
+        req: *mut X509_REQ,
+        name: *mut X509_NAME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_set_pubkey"]
+    pub fn X509_REQ_set_pubkey(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_delete_attr"]
+    pub fn X509_REQ_delete_attr(
+        req: *mut X509_REQ,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_add1_attr"]
+    pub fn X509_REQ_add1_attr(
+        req: *mut X509_REQ,
+        attr: *const X509_ATTRIBUTE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_add1_attr_by_OBJ"]
+    pub fn X509_REQ_add1_attr_by_OBJ(
+        req: *mut X509_REQ,
+        obj: *const ASN1_OBJECT,
+        attrtype: ::std::os::raw::c_int,
+        data: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_add1_attr_by_NID"]
+    pub fn X509_REQ_add1_attr_by_NID(
+        req: *mut X509_REQ,
+        nid: ::std::os::raw::c_int,
+        attrtype: ::std::os::raw::c_int,
+        data: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_add1_attr_by_txt"]
+    pub fn X509_REQ_add1_attr_by_txt(
+        req: *mut X509_REQ,
+        attrname: *const ::std::os::raw::c_char,
+        attrtype: ::std::os::raw::c_int,
+        data: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_add_extensions_nid"]
+    pub fn X509_REQ_add_extensions_nid(
+        req: *mut X509_REQ,
+        exts: *const stack_st_X509_EXTENSION,
+        nid: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_add_extensions"]
+    pub fn X509_REQ_add_extensions(
+        req: *mut X509_REQ,
+        exts: *const stack_st_X509_EXTENSION,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_sign"]
+    pub fn X509_REQ_sign(
+        req: *mut X509_REQ,
+        pkey: *mut EVP_PKEY,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_sign_ctx"]
+    pub fn X509_REQ_sign_ctx(req: *mut X509_REQ, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_re_X509_REQ_tbs"]
+    pub fn i2d_re_X509_REQ_tbs(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_set1_signature_algo"]
+    pub fn X509_REQ_set1_signature_algo(
+        req: *mut X509_REQ,
+        algo: *const X509_ALGOR,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_set1_signature_value"]
+    pub fn X509_REQ_set1_signature_value(
+        req: *mut X509_REQ,
+        sig: *const u8,
+        sig_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_NAME_ENTRY {
+    _unused: [u8; 0],
+}
+pub type sk_X509_NAME_ENTRY_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME_ENTRY)>;
+pub type sk_X509_NAME_ENTRY_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY,
+>;
+pub type sk_X509_NAME_ENTRY_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_NAME_ENTRY,
+        arg2: *const *const X509_NAME_ENTRY,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_NAME_ENTRY_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_NAME_ENTRY,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_NAME {
+    _unused: [u8; 0],
+}
+pub type sk_X509_NAME_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME)>;
+pub type sk_X509_NAME_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_NAME) -> *mut X509_NAME>;
+pub type sk_X509_NAME_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_NAME,
+        arg2: *const *const X509_NAME,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_NAME_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_NAME,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_it"]
+    pub static X509_NAME_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_new"]
+    pub fn X509_NAME_new() -> *mut X509_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_free"]
+    pub fn X509_NAME_free(name: *mut X509_NAME);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_NAME"]
+    pub fn d2i_X509_NAME(
+        out: *mut *mut X509_NAME,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_NAME"]
+    pub fn i2d_X509_NAME(in_: *mut X509_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_dup"]
+    pub fn X509_NAME_dup(name: *mut X509_NAME) -> *mut X509_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_cmp"]
+    pub fn X509_NAME_cmp(a: *const X509_NAME, b: *const X509_NAME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_get0_der"]
+    pub fn X509_NAME_get0_der(
+        name: *mut X509_NAME,
+        out_der: *mut *const u8,
+        out_der_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_set"]
+    pub fn X509_NAME_set(xn: *mut *mut X509_NAME, name: *mut X509_NAME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_entry_count"]
+    pub fn X509_NAME_entry_count(name: *const X509_NAME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_get_index_by_NID"]
+    pub fn X509_NAME_get_index_by_NID(
+        name: *const X509_NAME,
+        nid: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_get_index_by_OBJ"]
+    pub fn X509_NAME_get_index_by_OBJ(
+        name: *const X509_NAME,
+        obj: *const ASN1_OBJECT,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_get_entry"]
+    pub fn X509_NAME_get_entry(
+        name: *const X509_NAME,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_NAME_ENTRY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_delete_entry"]
+    pub fn X509_NAME_delete_entry(
+        name: *mut X509_NAME,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_NAME_ENTRY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_add_entry"]
+    pub fn X509_NAME_add_entry(
+        name: *mut X509_NAME,
+        entry: *const X509_NAME_ENTRY,
+        loc: ::std::os::raw::c_int,
+        set: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_add_entry_by_OBJ"]
+    pub fn X509_NAME_add_entry_by_OBJ(
+        name: *mut X509_NAME,
+        obj: *const ASN1_OBJECT,
+        type_: ::std::os::raw::c_int,
+        bytes: *const u8,
+        len: ossl_ssize_t,
+        loc: ::std::os::raw::c_int,
+        set: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_add_entry_by_NID"]
+    pub fn X509_NAME_add_entry_by_NID(
+        name: *mut X509_NAME,
+        nid: ::std::os::raw::c_int,
+        type_: ::std::os::raw::c_int,
+        bytes: *const u8,
+        len: ossl_ssize_t,
+        loc: ::std::os::raw::c_int,
+        set: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_add_entry_by_txt"]
+    pub fn X509_NAME_add_entry_by_txt(
+        name: *mut X509_NAME,
+        field: *const ::std::os::raw::c_char,
+        type_: ::std::os::raw::c_int,
+        bytes: *const u8,
+        len: ossl_ssize_t,
+        loc: ::std::os::raw::c_int,
+        set: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_it"]
+    pub static X509_NAME_ENTRY_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_new"]
+    pub fn X509_NAME_ENTRY_new() -> *mut X509_NAME_ENTRY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_free"]
+    pub fn X509_NAME_ENTRY_free(entry: *mut X509_NAME_ENTRY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_NAME_ENTRY"]
+    pub fn d2i_X509_NAME_ENTRY(
+        out: *mut *mut X509_NAME_ENTRY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_NAME_ENTRY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_NAME_ENTRY"]
+    pub fn i2d_X509_NAME_ENTRY(
+        in_: *const X509_NAME_ENTRY,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_dup"]
+    pub fn X509_NAME_ENTRY_dup(entry: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_get_object"]
+    pub fn X509_NAME_ENTRY_get_object(entry: *const X509_NAME_ENTRY) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_set_object"]
+    pub fn X509_NAME_ENTRY_set_object(
+        entry: *mut X509_NAME_ENTRY,
+        obj: *const ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_get_data"]
+    pub fn X509_NAME_ENTRY_get_data(entry: *const X509_NAME_ENTRY) -> *mut ASN1_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_set_data"]
+    pub fn X509_NAME_ENTRY_set_data(
+        entry: *mut X509_NAME_ENTRY,
+        type_: ::std::os::raw::c_int,
+        bytes: *const u8,
+        len: ossl_ssize_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_set"]
+    pub fn X509_NAME_ENTRY_set(entry: *const X509_NAME_ENTRY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_create_by_OBJ"]
+    pub fn X509_NAME_ENTRY_create_by_OBJ(
+        out: *mut *mut X509_NAME_ENTRY,
+        obj: *const ASN1_OBJECT,
+        type_: ::std::os::raw::c_int,
+        bytes: *const u8,
+        len: ossl_ssize_t,
+    ) -> *mut X509_NAME_ENTRY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_create_by_NID"]
+    pub fn X509_NAME_ENTRY_create_by_NID(
+        out: *mut *mut X509_NAME_ENTRY,
+        nid: ::std::os::raw::c_int,
+        type_: ::std::os::raw::c_int,
+        bytes: *const u8,
+        len: ossl_ssize_t,
+    ) -> *mut X509_NAME_ENTRY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_ENTRY_create_by_txt"]
+    pub fn X509_NAME_ENTRY_create_by_txt(
+        out: *mut *mut X509_NAME_ENTRY,
+        field: *const ::std::os::raw::c_char,
+        type_: ::std::os::raw::c_int,
+        bytes: *const u8,
+        len: ossl_ssize_t,
+    ) -> *mut X509_NAME_ENTRY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_it"]
+    pub static X509_PUBKEY_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_new"]
+    pub fn X509_PUBKEY_new() -> *mut X509_PUBKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_free"]
+    pub fn X509_PUBKEY_free(key: *mut X509_PUBKEY);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_PUBKEY"]
+    pub fn d2i_X509_PUBKEY(
+        out: *mut *mut X509_PUBKEY,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_PUBKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_PUBKEY"]
+    pub fn i2d_X509_PUBKEY(key: *const X509_PUBKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_set"]
+    pub fn X509_PUBKEY_set(x: *mut *mut X509_PUBKEY, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_get0"]
+    pub fn X509_PUBKEY_get0(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_get"]
+    pub fn X509_PUBKEY_get(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_set0_param"]
+    pub fn X509_PUBKEY_set0_param(
+        pub_: *mut X509_PUBKEY,
+        obj: *mut ASN1_OBJECT,
+        param_type: ::std::os::raw::c_int,
+        param_value: *mut ::std::os::raw::c_void,
+        key: *mut u8,
+        key_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_get0_param"]
+    pub fn X509_PUBKEY_get0_param(
+        out_obj: *mut *mut ASN1_OBJECT,
+        out_key: *mut *const u8,
+        out_key_len: *mut ::std::os::raw::c_int,
+        out_alg: *mut *mut X509_ALGOR,
+        pub_: *mut X509_PUBKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PUBKEY_get0_public_key"]
+    pub fn X509_PUBKEY_get0_public_key(pub_: *const X509_PUBKEY) -> *const ASN1_BIT_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_it"]
+    pub static X509_EXTENSION_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_new"]
+    pub fn X509_EXTENSION_new() -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_free"]
+    pub fn X509_EXTENSION_free(ex: *mut X509_EXTENSION);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_EXTENSION"]
+    pub fn d2i_X509_EXTENSION(
+        out: *mut *mut X509_EXTENSION,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_EXTENSION"]
+    pub fn i2d_X509_EXTENSION(
+        ex: *const X509_EXTENSION,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_dup"]
+    pub fn X509_EXTENSION_dup(ex: *const X509_EXTENSION) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_create_by_NID"]
+    pub fn X509_EXTENSION_create_by_NID(
+        ex: *mut *mut X509_EXTENSION,
+        nid: ::std::os::raw::c_int,
+        crit: ::std::os::raw::c_int,
+        data: *const ASN1_OCTET_STRING,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_create_by_OBJ"]
+    pub fn X509_EXTENSION_create_by_OBJ(
+        ex: *mut *mut X509_EXTENSION,
+        obj: *const ASN1_OBJECT,
+        crit: ::std::os::raw::c_int,
+        data: *const ASN1_OCTET_STRING,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_get_object"]
+    pub fn X509_EXTENSION_get_object(ex: *const X509_EXTENSION) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_get_data"]
+    pub fn X509_EXTENSION_get_data(ne: *const X509_EXTENSION) -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_get_critical"]
+    pub fn X509_EXTENSION_get_critical(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_set_object"]
+    pub fn X509_EXTENSION_set_object(
+        ex: *mut X509_EXTENSION,
+        obj: *const ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_set_critical"]
+    pub fn X509_EXTENSION_set_critical(
+        ex: *mut X509_EXTENSION,
+        crit: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSION_set_data"]
+    pub fn X509_EXTENSION_set_data(
+        ex: *mut X509_EXTENSION,
+        data: *const ASN1_OCTET_STRING,
+    ) -> ::std::os::raw::c_int;
+}
+pub type sk_X509_EXTENSION_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_EXTENSION)>;
+pub type sk_X509_EXTENSION_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_EXTENSION) -> *mut X509_EXTENSION>;
+pub type sk_X509_EXTENSION_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_EXTENSION,
+        arg2: *const *const X509_EXTENSION,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_EXTENSION_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_EXTENSION,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type X509_EXTENSIONS = stack_st_X509_EXTENSION;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_EXTENSIONS_it"]
+    pub static X509_EXTENSIONS_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_EXTENSIONS"]
+    pub fn d2i_X509_EXTENSIONS(
+        out: *mut *mut X509_EXTENSIONS,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_EXTENSIONS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_EXTENSIONS"]
+    pub fn i2d_X509_EXTENSIONS(
+        alg: *const X509_EXTENSIONS,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509v3_get_ext_count"]
+    pub fn X509v3_get_ext_count(x: *const stack_st_X509_EXTENSION) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509v3_get_ext_by_NID"]
+    pub fn X509v3_get_ext_by_NID(
+        x: *const stack_st_X509_EXTENSION,
+        nid: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509v3_get_ext_by_OBJ"]
+    pub fn X509v3_get_ext_by_OBJ(
+        x: *const stack_st_X509_EXTENSION,
+        obj: *const ASN1_OBJECT,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509v3_get_ext_by_critical"]
+    pub fn X509v3_get_ext_by_critical(
+        x: *const stack_st_X509_EXTENSION,
+        crit: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509v3_get_ext"]
+    pub fn X509v3_get_ext(
+        x: *const stack_st_X509_EXTENSION,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509v3_delete_ext"]
+    pub fn X509v3_delete_ext(
+        x: *mut stack_st_X509_EXTENSION,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509v3_add_ext"]
+    pub fn X509v3_add_ext(
+        x: *mut *mut stack_st_X509_EXTENSION,
+        ex: *const X509_EXTENSION,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut stack_st_X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_d2i"]
+    pub fn X509V3_EXT_d2i(ext: *const X509_EXTENSION) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_get_d2i"]
+    pub fn X509V3_get_d2i(
+        extensions: *const stack_st_X509_EXTENSION,
+        nid: ::std::os::raw::c_int,
+        out_critical: *mut ::std::os::raw::c_int,
+        out_idx: *mut ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_free"]
+    pub fn X509V3_EXT_free(
+        nid: ::std::os::raw::c_int,
+        ext_data: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_i2d"]
+    pub fn X509V3_EXT_i2d(
+        ext_nid: ::std::os::raw::c_int,
+        crit: ::std::os::raw::c_int,
+        ext_struc: *mut ::std::os::raw::c_void,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_add1_i2d"]
+    pub fn X509V3_add1_i2d(
+        x: *mut *mut stack_st_X509_EXTENSION,
+        nid: ::std::os::raw::c_int,
+        value: *mut ::std::os::raw::c_void,
+        crit: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct otherName_st {
+    pub type_id: *mut ASN1_OBJECT,
+    pub value: *mut ASN1_TYPE,
+}
+#[test]
+fn bindgen_test_layout_otherName_st() {
+    const UNINIT: ::std::mem::MaybeUninit<otherName_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<otherName_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(otherName_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<otherName_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(otherName_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_id) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(otherName_st),
+            "::",
+            stringify!(type_id)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(otherName_st),
+            "::",
+            stringify!(value)
+        )
+    );
+}
+impl Default for otherName_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type OTHERNAME = otherName_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct EDIPartyName_st {
+    pub nameAssigner: *mut ASN1_STRING,
+    pub partyName: *mut ASN1_STRING,
+}
+#[test]
+fn bindgen_test_layout_EDIPartyName_st() {
+    const UNINIT: ::std::mem::MaybeUninit<EDIPartyName_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<EDIPartyName_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(EDIPartyName_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<EDIPartyName_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(EDIPartyName_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nameAssigner) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(EDIPartyName_st),
+            "::",
+            stringify!(nameAssigner)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).partyName) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(EDIPartyName_st),
+            "::",
+            stringify!(partyName)
+        )
+    );
+}
+impl Default for EDIPartyName_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type EDIPARTYNAME = EDIPartyName_st;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct GENERAL_NAME_st {
+    pub type_: ::std::os::raw::c_int,
+    pub d: GENERAL_NAME_st__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union GENERAL_NAME_st__bindgen_ty_1 {
+    pub ptr: *mut ::std::os::raw::c_char,
+    pub otherName: *mut OTHERNAME,
+    pub rfc822Name: *mut ASN1_IA5STRING,
+    pub dNSName: *mut ASN1_IA5STRING,
+    pub x400Address: *mut ASN1_STRING,
+    pub directoryName: *mut X509_NAME,
+    pub ediPartyName: *mut EDIPARTYNAME,
+    pub uniformResourceIdentifier: *mut ASN1_IA5STRING,
+    pub iPAddress: *mut ASN1_OCTET_STRING,
+    pub registeredID: *mut ASN1_OBJECT,
+    pub ip: *mut ASN1_OCTET_STRING,
+    pub dirn: *mut X509_NAME,
+    pub ia5: *mut ASN1_IA5STRING,
+    pub rid: *mut ASN1_OBJECT,
+}
+#[test]
+fn bindgen_test_layout_GENERAL_NAME_st__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<GENERAL_NAME_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(GENERAL_NAME_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<GENERAL_NAME_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(GENERAL_NAME_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(ptr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).otherName) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(otherName)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rfc822Name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(rfc822Name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dNSName) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(dNSName)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).x400Address) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(x400Address)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).directoryName) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(directoryName)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ediPartyName) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(ediPartyName)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).uniformResourceIdentifier) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(uniformResourceIdentifier)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).iPAddress) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(iPAddress)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).registeredID) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(registeredID)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(ip)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dirn) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(dirn)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ia5) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(ia5)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(rid)
+        )
+    );
+}
+impl Default for GENERAL_NAME_st__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[test]
+fn bindgen_test_layout_GENERAL_NAME_st() {
+    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<GENERAL_NAME_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(GENERAL_NAME_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<GENERAL_NAME_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(GENERAL_NAME_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_NAME_st),
+            "::",
+            stringify!(d)
+        )
+    );
+}
+impl Default for GENERAL_NAME_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAME_new"]
+    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAME_free"]
+    pub fn GENERAL_NAME_free(gen: *mut GENERAL_NAME);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_GENERAL_NAME"]
+    pub fn d2i_GENERAL_NAME(
+        out: *mut *mut GENERAL_NAME,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut GENERAL_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_GENERAL_NAME"]
+    pub fn i2d_GENERAL_NAME(in_: *mut GENERAL_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAME_dup"]
+    pub fn GENERAL_NAME_dup(gen: *mut GENERAL_NAME) -> *mut GENERAL_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAMES_new"]
+    pub fn GENERAL_NAMES_new() -> *mut GENERAL_NAMES;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAMES_free"]
+    pub fn GENERAL_NAMES_free(gens: *mut GENERAL_NAMES);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_GENERAL_NAMES"]
+    pub fn d2i_GENERAL_NAMES(
+        out: *mut *mut GENERAL_NAMES,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut GENERAL_NAMES;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_GENERAL_NAMES"]
+    pub fn i2d_GENERAL_NAMES(in_: *mut GENERAL_NAMES, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OTHERNAME_new"]
+    pub fn OTHERNAME_new() -> *mut OTHERNAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OTHERNAME_free"]
+    pub fn OTHERNAME_free(name: *mut OTHERNAME);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EDIPARTYNAME_new"]
+    pub fn EDIPARTYNAME_new() -> *mut EDIPARTYNAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EDIPARTYNAME_free"]
+    pub fn EDIPARTYNAME_free(name: *mut EDIPARTYNAME);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAME_set0_value"]
+    pub fn GENERAL_NAME_set0_value(
+        gen: *mut GENERAL_NAME,
+        type_: ::std::os::raw::c_int,
+        value: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAME_get0_value"]
+    pub fn GENERAL_NAME_get0_value(
+        gen: *const GENERAL_NAME,
+        out_type: *mut ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAME_set0_othername"]
+    pub fn GENERAL_NAME_set0_othername(
+        gen: *mut GENERAL_NAME,
+        oid: *mut ASN1_OBJECT,
+        value: *mut ASN1_TYPE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAME_get0_otherName"]
+    pub fn GENERAL_NAME_get0_otherName(
+        gen: *const GENERAL_NAME,
+        out_oid: *mut *mut ASN1_OBJECT,
+        out_value: *mut *mut ASN1_TYPE,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_ALGOR {
+    _unused: [u8; 0],
+}
+pub type sk_X509_ALGOR_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ALGOR)>;
+pub type sk_X509_ALGOR_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ALGOR) -> *mut X509_ALGOR>;
+pub type sk_X509_ALGOR_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_ALGOR,
+        arg2: *const *const X509_ALGOR,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_ALGOR_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_ALGOR,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ALGOR_it"]
+    pub static X509_ALGOR_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ALGOR_new"]
+    pub fn X509_ALGOR_new() -> *mut X509_ALGOR;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ALGOR_dup"]
+    pub fn X509_ALGOR_dup(alg: *const X509_ALGOR) -> *mut X509_ALGOR;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ALGOR_free"]
+    pub fn X509_ALGOR_free(alg: *mut X509_ALGOR);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_ALGOR"]
+    pub fn d2i_X509_ALGOR(
+        out: *mut *mut X509_ALGOR,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_ALGOR;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_ALGOR"]
+    pub fn i2d_X509_ALGOR(alg: *const X509_ALGOR, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ALGOR_set0"]
+    pub fn X509_ALGOR_set0(
+        alg: *mut X509_ALGOR,
+        obj: *mut ASN1_OBJECT,
+        param_type: ::std::os::raw::c_int,
+        param_value: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ALGOR_get0"]
+    pub fn X509_ALGOR_get0(
+        out_obj: *mut *const ASN1_OBJECT,
+        out_param_type: *mut ::std::os::raw::c_int,
+        out_param_value: *mut *const ::std::os::raw::c_void,
+        alg: *const X509_ALGOR,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ALGOR_set_md"]
+    pub fn X509_ALGOR_set_md(alg: *mut X509_ALGOR, md: *const EVP_MD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ALGOR_cmp"]
+    pub fn X509_ALGOR_cmp(a: *const X509_ALGOR, b: *const X509_ALGOR) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_ATTRIBUTE {
+    _unused: [u8; 0],
+}
+pub type sk_X509_ATTRIBUTE_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ATTRIBUTE)>;
+pub type sk_X509_ATTRIBUTE_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE>;
+pub type sk_X509_ATTRIBUTE_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_ATTRIBUTE,
+        arg2: *const *const X509_ATTRIBUTE,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_ATTRIBUTE_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_ATTRIBUTE,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_it"]
+    pub static X509_ATTRIBUTE_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_new"]
+    pub fn X509_ATTRIBUTE_new() -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_dup"]
+    pub fn X509_ATTRIBUTE_dup(attr: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_free"]
+    pub fn X509_ATTRIBUTE_free(attr: *mut X509_ATTRIBUTE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_ATTRIBUTE"]
+    pub fn d2i_X509_ATTRIBUTE(
+        out: *mut *mut X509_ATTRIBUTE,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_ATTRIBUTE"]
+    pub fn i2d_X509_ATTRIBUTE(
+        alg: *const X509_ATTRIBUTE,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_create"]
+    pub fn X509_ATTRIBUTE_create(
+        nid: ::std::os::raw::c_int,
+        attrtype: ::std::os::raw::c_int,
+        value: *mut ::std::os::raw::c_void,
+    ) -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_create_by_NID"]
+    pub fn X509_ATTRIBUTE_create_by_NID(
+        attr: *mut *mut X509_ATTRIBUTE,
+        nid: ::std::os::raw::c_int,
+        attrtype: ::std::os::raw::c_int,
+        data: *const ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    ) -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_create_by_OBJ"]
+    pub fn X509_ATTRIBUTE_create_by_OBJ(
+        attr: *mut *mut X509_ATTRIBUTE,
+        obj: *const ASN1_OBJECT,
+        attrtype: ::std::os::raw::c_int,
+        data: *const ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    ) -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_create_by_txt"]
+    pub fn X509_ATTRIBUTE_create_by_txt(
+        attr: *mut *mut X509_ATTRIBUTE,
+        attrname: *const ::std::os::raw::c_char,
+        type_: ::std::os::raw::c_int,
+        bytes: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+    ) -> *mut X509_ATTRIBUTE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_set1_object"]
+    pub fn X509_ATTRIBUTE_set1_object(
+        attr: *mut X509_ATTRIBUTE,
+        obj: *const ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_set1_data"]
+    pub fn X509_ATTRIBUTE_set1_data(
+        attr: *mut X509_ATTRIBUTE,
+        attrtype: ::std::os::raw::c_int,
+        data: *const ::std::os::raw::c_void,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_get0_data"]
+    pub fn X509_ATTRIBUTE_get0_data(
+        attr: *mut X509_ATTRIBUTE,
+        idx: ::std::os::raw::c_int,
+        attrtype: ::std::os::raw::c_int,
+        unused: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_count"]
+    pub fn X509_ATTRIBUTE_count(attr: *const X509_ATTRIBUTE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_get0_object"]
+    pub fn X509_ATTRIBUTE_get0_object(attr: *mut X509_ATTRIBUTE) -> *mut ASN1_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_ATTRIBUTE_get0_type"]
+    pub fn X509_ATTRIBUTE_get0_type(
+        attr: *mut X509_ATTRIBUTE,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ASN1_TYPE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_new"]
+    pub fn X509_STORE_new() -> *mut X509_STORE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_up_ref"]
+    pub fn X509_STORE_up_ref(store: *mut X509_STORE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_free"]
+    pub fn X509_STORE_free(store: *mut X509_STORE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_add_cert"]
+    pub fn X509_STORE_add_cert(store: *mut X509_STORE, x509: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_add_crl"]
+    pub fn X509_STORE_add_crl(store: *mut X509_STORE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_get0_param"]
+    pub fn X509_STORE_get0_param(store: *mut X509_STORE) -> *mut X509_VERIFY_PARAM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set1_param"]
+    pub fn X509_STORE_set1_param(
+        store: *mut X509_STORE,
+        param: *const X509_VERIFY_PARAM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_flags"]
+    pub fn X509_STORE_set_flags(
+        store: *mut X509_STORE,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_depth"]
+    pub fn X509_STORE_set_depth(
+        store: *mut X509_STORE,
+        depth: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_purpose"]
+    pub fn X509_STORE_set_purpose(
+        store: *mut X509_STORE,
+        purpose: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_trust"]
+    pub fn X509_STORE_set_trust(
+        store: *mut X509_STORE,
+        trust: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_OBJECT {
+    _unused: [u8; 0],
+}
+pub type sk_X509_OBJECT_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_OBJECT)>;
+pub type sk_X509_OBJECT_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_OBJECT) -> *mut X509_OBJECT>;
+pub type sk_X509_OBJECT_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_OBJECT,
+        arg2: *const *const X509_OBJECT,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_OBJECT_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_OBJECT,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_OBJECT_new"]
+    pub fn X509_OBJECT_new() -> *mut X509_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_OBJECT_free"]
+    pub fn X509_OBJECT_free(obj: *mut X509_OBJECT);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_OBJECT_get_type"]
+    pub fn X509_OBJECT_get_type(obj: *const X509_OBJECT) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_OBJECT_get0_X509"]
+    pub fn X509_OBJECT_get0_X509(obj: *const X509_OBJECT) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_new"]
+    pub fn X509_STORE_CTX_new() -> *mut X509_STORE_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_free"]
+    pub fn X509_STORE_CTX_free(ctx: *mut X509_STORE_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_init"]
+    pub fn X509_STORE_CTX_init(
+        ctx: *mut X509_STORE_CTX,
+        store: *mut X509_STORE,
+        x509: *mut X509,
+        chain: *mut stack_st_X509,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_verify_cert"]
+    pub fn X509_verify_cert(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get0_chain"]
+    pub fn X509_STORE_CTX_get0_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get1_chain"]
+    pub fn X509_STORE_CTX_get1_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_cert"]
+    pub fn X509_STORE_CTX_set_cert(c: *mut X509_STORE_CTX, x: *mut X509);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get_error"]
+    pub fn X509_STORE_CTX_get_error(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_error"]
+    pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, err: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_verify_cert_error_string"]
+    pub fn X509_verify_cert_error_string(
+        err: ::std::os::raw::c_long,
+    ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get_error_depth"]
+    pub fn X509_STORE_CTX_get_error_depth(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get_current_cert"]
+    pub fn X509_STORE_CTX_get_current_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get0_current_issuer"]
+    pub fn X509_STORE_CTX_get0_current_issuer(ctx: *mut X509_STORE_CTX) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get0_current_crl"]
+    pub fn X509_STORE_CTX_get0_current_crl(ctx: *mut X509_STORE_CTX) -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get0_store"]
+    pub fn X509_STORE_CTX_get0_store(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get0_cert"]
+    pub fn X509_STORE_CTX_get0_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get0_untrusted"]
+    pub fn X509_STORE_CTX_get0_untrusted(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set0_trusted_stack"]
+    pub fn X509_STORE_CTX_set0_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set0_crls"]
+    pub fn X509_STORE_CTX_set0_crls(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509_CRL);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_default"]
+    pub fn X509_STORE_CTX_set_default(
+        ctx: *mut X509_STORE_CTX,
+        name: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get0_param"]
+    pub fn X509_STORE_CTX_get0_param(ctx: *mut X509_STORE_CTX) -> *mut X509_VERIFY_PARAM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set0_param"]
+    pub fn X509_STORE_CTX_set0_param(ctx: *mut X509_STORE_CTX, param: *mut X509_VERIFY_PARAM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_flags"]
+    pub fn X509_STORE_CTX_set_flags(ctx: *mut X509_STORE_CTX, flags: ::std::os::raw::c_ulong);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_time"]
+    pub fn X509_STORE_CTX_set_time(
+        ctx: *mut X509_STORE_CTX,
+        flags: ::std::os::raw::c_ulong,
+        t: time_t,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_time_posix"]
+    pub fn X509_STORE_CTX_set_time_posix(
+        ctx: *mut X509_STORE_CTX,
+        flags: ::std::os::raw::c_ulong,
+        t: i64,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_depth"]
+    pub fn X509_STORE_CTX_set_depth(ctx: *mut X509_STORE_CTX, depth: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_purpose"]
+    pub fn X509_STORE_CTX_set_purpose(
+        ctx: *mut X509_STORE_CTX,
+        purpose: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_trust"]
+    pub fn X509_STORE_CTX_set_trust(
+        ctx: *mut X509_STORE_CTX,
+        trust: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_new"]
+    pub fn X509_VERIFY_PARAM_new() -> *mut X509_VERIFY_PARAM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_free"]
+    pub fn X509_VERIFY_PARAM_free(param: *mut X509_VERIFY_PARAM);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_inherit"]
+    pub fn X509_VERIFY_PARAM_inherit(
+        to: *mut X509_VERIFY_PARAM,
+        from: *const X509_VERIFY_PARAM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set1"]
+    pub fn X509_VERIFY_PARAM_set1(
+        to: *mut X509_VERIFY_PARAM,
+        from: *const X509_VERIFY_PARAM,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set_flags"]
+    pub fn X509_VERIFY_PARAM_set_flags(
+        param: *mut X509_VERIFY_PARAM,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_clear_flags"]
+    pub fn X509_VERIFY_PARAM_clear_flags(
+        param: *mut X509_VERIFY_PARAM,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_get_flags"]
+    pub fn X509_VERIFY_PARAM_get_flags(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_ulong;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set_depth"]
+    pub fn X509_VERIFY_PARAM_set_depth(param: *mut X509_VERIFY_PARAM, depth: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_get_depth"]
+    pub fn X509_VERIFY_PARAM_get_depth(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set_time"]
+    pub fn X509_VERIFY_PARAM_set_time(param: *mut X509_VERIFY_PARAM, t: time_t);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set_time_posix"]
+    pub fn X509_VERIFY_PARAM_set_time_posix(param: *mut X509_VERIFY_PARAM, t: i64);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_add0_policy"]
+    pub fn X509_VERIFY_PARAM_add0_policy(
+        param: *mut X509_VERIFY_PARAM,
+        policy: *mut ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set1_policies"]
+    pub fn X509_VERIFY_PARAM_set1_policies(
+        param: *mut X509_VERIFY_PARAM,
+        policies: *const stack_st_ASN1_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set1_host"]
+    pub fn X509_VERIFY_PARAM_set1_host(
+        param: *mut X509_VERIFY_PARAM,
+        name: *const ::std::os::raw::c_char,
+        name_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_add1_host"]
+    pub fn X509_VERIFY_PARAM_add1_host(
+        param: *mut X509_VERIFY_PARAM,
+        name: *const ::std::os::raw::c_char,
+        name_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set_hostflags"]
+    pub fn X509_VERIFY_PARAM_set_hostflags(
+        param: *mut X509_VERIFY_PARAM,
+        flags: ::std::os::raw::c_uint,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set1_email"]
+    pub fn X509_VERIFY_PARAM_set1_email(
+        param: *mut X509_VERIFY_PARAM,
+        email: *const ::std::os::raw::c_char,
+        email_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set1_ip"]
+    pub fn X509_VERIFY_PARAM_set1_ip(
+        param: *mut X509_VERIFY_PARAM,
+        ip: *const u8,
+        ip_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set1_ip_asc"]
+    pub fn X509_VERIFY_PARAM_set1_ip_asc(
+        param: *mut X509_VERIFY_PARAM,
+        ipasc: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set_purpose"]
+    pub fn X509_VERIFY_PARAM_set_purpose(
+        param: *mut X509_VERIFY_PARAM,
+        purpose: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_VERIFY_PARAM_set_trust"]
+    pub fn X509_VERIFY_PARAM_set_trust(
+        param: *mut X509_VERIFY_PARAM,
+        trust: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_load_locations"]
+    pub fn X509_STORE_load_locations(
+        store: *mut X509_STORE,
+        file: *const ::std::os::raw::c_char,
+        dir: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_add_lookup"]
+    pub fn X509_STORE_add_lookup(
+        store: *mut X509_STORE,
+        method: *const X509_LOOKUP_METHOD,
+    ) -> *mut X509_LOOKUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_LOOKUP_hash_dir"]
+    pub fn X509_LOOKUP_hash_dir() -> *const X509_LOOKUP_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_LOOKUP_file"]
+    pub fn X509_LOOKUP_file() -> *const X509_LOOKUP_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_LOOKUP_load_file"]
+    pub fn X509_LOOKUP_load_file(
+        lookup: *mut X509_LOOKUP,
+        file: *const ::std::os::raw::c_char,
+        type_: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_LOOKUP_add_dir"]
+    pub fn X509_LOOKUP_add_dir(
+        lookup: *mut X509_LOOKUP,
+        path: *const ::std::os::raw::c_char,
+        type_: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_LOOKUP_ctrl"]
+    pub fn X509_LOOKUP_ctrl(
+        lookup: *mut X509_LOOKUP,
+        cmd: ::std::os::raw::c_int,
+        argc: *const ::std::os::raw::c_char,
+        argl: ::std::os::raw::c_long,
+        ret: *mut *mut ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_load_cert_file"]
+    pub fn X509_load_cert_file(
+        lookup: *mut X509_LOOKUP,
+        file: *const ::std::os::raw::c_char,
+        type_: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_load_crl_file"]
+    pub fn X509_load_crl_file(
+        lookup: *mut X509_LOOKUP,
+        file: *const ::std::os::raw::c_char,
+        type_: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_load_cert_crl_file"]
+    pub fn X509_load_cert_crl_file(
+        lookup: *mut X509_LOOKUP,
+        file: *const ::std::os::raw::c_char,
+        type_: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_hash"]
+    pub fn X509_NAME_hash(name: *mut X509_NAME) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_hash_old"]
+    pub fn X509_NAME_hash_old(name: *mut X509_NAME) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_default_paths"]
+    pub fn X509_STORE_set_default_paths(store: *mut X509_STORE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_default_cert_area"]
+    pub fn X509_get_default_cert_area() -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_default_cert_dir"]
+    pub fn X509_get_default_cert_dir() -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_default_cert_file"]
+    pub fn X509_get_default_cert_file() -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_default_private_dir"]
+    pub fn X509_get_default_private_dir() -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_default_cert_dir_env"]
+    pub fn X509_get_default_cert_dir_env() -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_default_cert_file_env"]
+    pub fn X509_get_default_cert_file_env() -> *const ::std::os::raw::c_char;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct Netscape_spki_st {
+    pub spkac: *mut NETSCAPE_SPKAC,
+    pub sig_algor: *mut X509_ALGOR,
+    pub signature: *mut ASN1_BIT_STRING,
+}
+#[test]
+fn bindgen_test_layout_Netscape_spki_st() {
+    const UNINIT: ::std::mem::MaybeUninit<Netscape_spki_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<Netscape_spki_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(Netscape_spki_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<Netscape_spki_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(Netscape_spki_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).spkac) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(Netscape_spki_st),
+            "::",
+            stringify!(spkac)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sig_algor) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(Netscape_spki_st),
+            "::",
+            stringify!(sig_algor)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(Netscape_spki_st),
+            "::",
+            stringify!(signature)
+        )
+    );
+}
+impl Default for Netscape_spki_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_it"]
+    pub static NETSCAPE_SPKI_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_new"]
+    pub fn NETSCAPE_SPKI_new() -> *mut NETSCAPE_SPKI;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_free"]
+    pub fn NETSCAPE_SPKI_free(spki: *mut NETSCAPE_SPKI);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_NETSCAPE_SPKI"]
+    pub fn d2i_NETSCAPE_SPKI(
+        out: *mut *mut NETSCAPE_SPKI,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut NETSCAPE_SPKI;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_NETSCAPE_SPKI"]
+    pub fn i2d_NETSCAPE_SPKI(
+        spki: *const NETSCAPE_SPKI,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_verify"]
+    pub fn NETSCAPE_SPKI_verify(
+        spki: *mut NETSCAPE_SPKI,
+        pkey: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_b64_decode"]
+    pub fn NETSCAPE_SPKI_b64_decode(
+        str_: *const ::std::os::raw::c_char,
+        len: ossl_ssize_t,
+    ) -> *mut NETSCAPE_SPKI;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_b64_encode"]
+    pub fn NETSCAPE_SPKI_b64_encode(spki: *mut NETSCAPE_SPKI) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_get_pubkey"]
+    pub fn NETSCAPE_SPKI_get_pubkey(spki: *const NETSCAPE_SPKI) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_set_pubkey"]
+    pub fn NETSCAPE_SPKI_set_pubkey(
+        spki: *mut NETSCAPE_SPKI,
+        pkey: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_sign"]
+    pub fn NETSCAPE_SPKI_sign(
+        spki: *mut NETSCAPE_SPKI,
+        pkey: *mut EVP_PKEY,
+        md: *const EVP_MD,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct Netscape_spkac_st {
+    pub pubkey: *mut X509_PUBKEY,
+    pub challenge: *mut ASN1_IA5STRING,
+}
+#[test]
+fn bindgen_test_layout_Netscape_spkac_st() {
+    const UNINIT: ::std::mem::MaybeUninit<Netscape_spkac_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<Netscape_spkac_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(Netscape_spkac_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<Netscape_spkac_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(Netscape_spkac_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(Netscape_spkac_st),
+            "::",
+            stringify!(pubkey)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).challenge) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(Netscape_spkac_st),
+            "::",
+            stringify!(challenge)
+        )
+    );
+}
+impl Default for Netscape_spkac_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKAC_it"]
+    pub static NETSCAPE_SPKAC_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKAC_new"]
+    pub fn NETSCAPE_SPKAC_new() -> *mut NETSCAPE_SPKAC;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKAC_free"]
+    pub fn NETSCAPE_SPKAC_free(spkac: *mut NETSCAPE_SPKAC);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_NETSCAPE_SPKAC"]
+    pub fn d2i_NETSCAPE_SPKAC(
+        out: *mut *mut NETSCAPE_SPKAC,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut NETSCAPE_SPKAC;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_NETSCAPE_SPKAC"]
+    pub fn i2d_NETSCAPE_SPKAC(
+        spkac: *const NETSCAPE_SPKAC,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NETSCAPE_SPKI_print"]
+    pub fn NETSCAPE_SPKI_print(out: *mut BIO, spki: *mut NETSCAPE_SPKI) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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,
+    pub maskHash: *mut X509_ALGOR,
+}
+#[test]
+fn bindgen_test_layout_rsa_pss_params_st() {
+    const UNINIT: ::std::mem::MaybeUninit<rsa_pss_params_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rsa_pss_params_st>(),
+        40usize,
+        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::addr_of!((*ptr).hashAlgorithm) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rsa_pss_params_st),
+            "::",
+            stringify!(hashAlgorithm)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).maskGenAlgorithm) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rsa_pss_params_st),
+            "::",
+            stringify!(maskGenAlgorithm)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).saltLength) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rsa_pss_params_st),
+            "::",
+            stringify!(saltLength)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).trailerField) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rsa_pss_params_st),
+            "::",
+            stringify!(trailerField)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).maskHash) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rsa_pss_params_st),
+            "::",
+            stringify!(maskHash)
+        )
+    );
+}
+impl Default for rsa_pss_params_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_PSS_PARAMS_it"]
+    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_PSS_PARAMS_new"]
+    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RSA_PSS_PARAMS_free"]
+    pub fn RSA_PSS_PARAMS_free(params: *mut RSA_PSS_PARAMS);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSA_PSS_PARAMS"]
+    pub fn d2i_RSA_PSS_PARAMS(
+        out: *mut *mut RSA_PSS_PARAMS,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut RSA_PSS_PARAMS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSA_PSS_PARAMS"]
+    pub fn i2d_RSA_PSS_PARAMS(
+        in_: *const RSA_PSS_PARAMS,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS8_PRIV_KEY_INFO_it"]
+    pub static PKCS8_PRIV_KEY_INFO_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS8_PRIV_KEY_INFO_new"]
+    pub fn PKCS8_PRIV_KEY_INFO_new() -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS8_PRIV_KEY_INFO_free"]
+    pub fn PKCS8_PRIV_KEY_INFO_free(key: *mut PKCS8_PRIV_KEY_INFO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS8_PRIV_KEY_INFO"]
+    pub fn d2i_PKCS8_PRIV_KEY_INFO(
+        out: *mut *mut PKCS8_PRIV_KEY_INFO,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8_PRIV_KEY_INFO"]
+    pub fn i2d_PKCS8_PRIV_KEY_INFO(
+        key: *const PKCS8_PRIV_KEY_INFO,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKCS82PKEY"]
+    pub fn EVP_PKCS82PKEY(p8: *const PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY2PKCS8"]
+    pub fn EVP_PKEY2PKCS8(pkey: *const EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_SIG_it"]
+    pub static X509_SIG_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_SIG_new"]
+    pub fn X509_SIG_new() -> *mut X509_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_SIG_free"]
+    pub fn X509_SIG_free(key: *mut X509_SIG);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_SIG"]
+    pub fn d2i_X509_SIG(
+        out: *mut *mut X509_SIG,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut X509_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_SIG"]
+    pub fn i2d_X509_SIG(sig: *const X509_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_SIG_get0"]
+    pub fn X509_SIG_get0(
+        sig: *const X509_SIG,
+        out_alg: *mut *const X509_ALGOR,
+        out_digest: *mut *const ASN1_OCTET_STRING,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_SIG_getm"]
+    pub fn X509_SIG_getm(
+        sig: *mut X509_SIG,
+        out_alg: *mut *mut X509_ALGOR,
+        out_digest: *mut *mut ASN1_OCTET_STRING,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_print_ex"]
+    pub fn X509_print_ex(
+        bp: *mut BIO,
+        x: *mut X509,
+        nmflag: ::std::os::raw::c_ulong,
+        cflag: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_print_ex_fp"]
+    pub fn X509_print_ex_fp(
+        fp: *mut FILE,
+        x: *mut X509,
+        nmflag: ::std::os::raw::c_ulong,
+        cflag: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_print"]
+    pub fn X509_print(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_print_fp"]
+    pub fn X509_print_fp(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_print"]
+    pub fn X509_CRL_print(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_print_fp"]
+    pub fn X509_CRL_print_fp(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_print_ex"]
+    pub fn X509_REQ_print_ex(
+        bp: *mut BIO,
+        x: *mut X509_REQ,
+        nmflag: ::std::os::raw::c_ulong,
+        cflag: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_print"]
+    pub fn X509_REQ_print(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_print_fp"]
+    pub fn X509_REQ_print_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_print_ex"]
+    pub fn X509_NAME_print_ex(
+        out: *mut BIO,
+        nm: *const X509_NAME,
+        indent: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_print"]
+    pub fn X509_NAME_print(
+        bp: *mut BIO,
+        name: *const X509_NAME,
+        obase: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_oneline"]
+    pub fn X509_NAME_oneline(
+        name: *const X509_NAME,
+        buf: *mut ::std::os::raw::c_char,
+        size: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_print_ex_fp"]
+    pub fn X509_NAME_print_ex_fp(
+        fp: *mut FILE,
+        nm: *const X509_NAME,
+        indent: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_signature_dump"]
+    pub fn X509_signature_dump(
+        bio: *mut BIO,
+        sig: *const ASN1_STRING,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_signature_print"]
+    pub fn X509_signature_print(
+        bio: *mut BIO,
+        alg: *const X509_ALGOR,
+        sig: *const ASN1_STRING,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_print"]
+    pub fn X509V3_EXT_print(
+        out: *mut BIO,
+        ext: *const X509_EXTENSION,
+        flag: ::std::os::raw::c_ulong,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_print_fp"]
+    pub fn X509V3_EXT_print_fp(
+        out: *mut FILE,
+        ext: *const X509_EXTENSION,
+        flag: ::std::os::raw::c_int,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_extensions_print"]
+    pub fn X509V3_extensions_print(
+        out: *mut BIO,
+        title: *const ::std::os::raw::c_char,
+        exts: *const stack_st_X509_EXTENSION,
+        flag: ::std::os::raw::c_ulong,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_NAME_print"]
+    pub fn GENERAL_NAME_print(out: *mut BIO, gen: *const GENERAL_NAME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_pubkey_digest"]
+    pub fn X509_pubkey_digest(
+        x509: *const X509,
+        md: *const EVP_MD,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_digest"]
+    pub fn X509_digest(
+        x509: *const X509,
+        md: *const EVP_MD,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_digest"]
+    pub fn X509_CRL_digest(
+        crl: *const X509_CRL,
+        md: *const EVP_MD,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_REQ_digest"]
+    pub fn X509_REQ_digest(
+        req: *const X509_REQ,
+        md: *const EVP_MD,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_digest"]
+    pub fn X509_NAME_digest(
+        name: *const X509_NAME,
+        md: *const EVP_MD,
+        out: *mut u8,
+        out_len: *mut ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_bio"]
+    pub fn d2i_X509_bio(bp: *mut BIO, x509: *mut *mut X509) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_CRL_bio"]
+    pub fn d2i_X509_CRL_bio(bp: *mut BIO, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_REQ_bio"]
+    pub fn d2i_X509_REQ_bio(bp: *mut BIO, req: *mut *mut X509_REQ) -> *mut X509_REQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSAPrivateKey_bio"]
+    pub fn d2i_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSAPublicKey_bio"]
+    pub fn d2i_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSA_PUBKEY_bio"]
+    pub fn d2i_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSA_PUBKEY_bio"]
+    pub fn d2i_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSAPrivateKey_bio"]
+    pub fn d2i_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_EC_PUBKEY_bio"]
+    pub fn d2i_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ECPrivateKey_bio"]
+    pub fn d2i_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS8_bio"]
+    pub fn d2i_PKCS8_bio(bp: *mut BIO, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS8_PRIV_KEY_INFO_bio"]
+    pub fn d2i_PKCS8_PRIV_KEY_INFO_bio(
+        bp: *mut BIO,
+        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
+    ) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PUBKEY_bio"]
+    pub fn d2i_PUBKEY_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DHparams_bio"]
+    pub fn d2i_DHparams_bio(bp: *mut BIO, dh: *mut *mut DH) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PrivateKey_bio"]
+    pub fn d2i_PrivateKey_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_bio"]
+    pub fn i2d_X509_bio(bp: *mut BIO, x509: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_CRL_bio"]
+    pub fn i2d_X509_CRL_bio(bp: *mut BIO, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_REQ_bio"]
+    pub fn i2d_X509_REQ_bio(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSAPrivateKey_bio"]
+    pub fn i2d_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSAPublicKey_bio"]
+    pub fn i2d_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSA_PUBKEY_bio"]
+    pub fn i2d_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSA_PUBKEY_bio"]
+    pub fn i2d_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSAPrivateKey_bio"]
+    pub fn i2d_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_EC_PUBKEY_bio"]
+    pub fn i2d_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ECPrivateKey_bio"]
+    pub fn i2d_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8_bio"]
+    pub fn i2d_PKCS8_bio(bp: *mut BIO, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8_PRIV_KEY_INFO_bio"]
+    pub fn i2d_PKCS8_PRIV_KEY_INFO_bio(
+        bp: *mut BIO,
+        p8inf: *mut PKCS8_PRIV_KEY_INFO,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PrivateKey_bio"]
+    pub fn i2d_PrivateKey_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PUBKEY_bio"]
+    pub fn i2d_PUBKEY_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DHparams_bio"]
+    pub fn i2d_DHparams_bio(bp: *mut BIO, dh: *const DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8PrivateKeyInfo_bio"]
+    pub fn i2d_PKCS8PrivateKeyInfo_bio(bp: *mut BIO, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_fp"]
+    pub fn d2i_X509_fp(fp: *mut FILE, x509: *mut *mut X509) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_CRL_fp"]
+    pub fn d2i_X509_CRL_fp(fp: *mut FILE, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_X509_REQ_fp"]
+    pub fn d2i_X509_REQ_fp(fp: *mut FILE, req: *mut *mut X509_REQ) -> *mut X509_REQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSAPrivateKey_fp"]
+    pub fn d2i_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSAPublicKey_fp"]
+    pub fn d2i_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_RSA_PUBKEY_fp"]
+    pub fn d2i_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSA_PUBKEY_fp"]
+    pub fn d2i_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_DSAPrivateKey_fp"]
+    pub fn d2i_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_EC_PUBKEY_fp"]
+    pub fn d2i_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ECPrivateKey_fp"]
+    pub fn d2i_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS8_fp"]
+    pub fn d2i_PKCS8_fp(fp: *mut FILE, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS8_PRIV_KEY_INFO_fp"]
+    pub fn d2i_PKCS8_PRIV_KEY_INFO_fp(
+        fp: *mut FILE,
+        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
+    ) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PrivateKey_fp"]
+    pub fn d2i_PrivateKey_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PUBKEY_fp"]
+    pub fn d2i_PUBKEY_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_fp"]
+    pub fn i2d_X509_fp(fp: *mut FILE, x509: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_CRL_fp"]
+    pub fn i2d_X509_CRL_fp(fp: *mut FILE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_X509_REQ_fp"]
+    pub fn i2d_X509_REQ_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSAPrivateKey_fp"]
+    pub fn i2d_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSAPublicKey_fp"]
+    pub fn i2d_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_RSA_PUBKEY_fp"]
+    pub fn i2d_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSA_PUBKEY_fp"]
+    pub fn i2d_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_DSAPrivateKey_fp"]
+    pub fn i2d_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_EC_PUBKEY_fp"]
+    pub fn i2d_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ECPrivateKey_fp"]
+    pub fn i2d_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8_fp"]
+    pub fn i2d_PKCS8_fp(fp: *mut FILE, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8_PRIV_KEY_INFO_fp"]
+    pub fn i2d_PKCS8_PRIV_KEY_INFO_fp(
+        fp: *mut FILE,
+        p8inf: *mut PKCS8_PRIV_KEY_INFO,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8PrivateKeyInfo_fp"]
+    pub fn i2d_PKCS8PrivateKeyInfo_fp(fp: *mut FILE, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PrivateKey_fp"]
+    pub fn i2d_PrivateKey_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PUBKEY_fp"]
+    pub fn i2d_PUBKEY_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_find_by_issuer_and_serial"]
+    pub fn X509_find_by_issuer_and_serial(
+        sk: *const stack_st_X509,
+        name: *mut X509_NAME,
+        serial: *const ASN1_INTEGER,
+    ) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_find_by_subject"]
+    pub fn X509_find_by_subject(sk: *const stack_st_X509, name: *mut X509_NAME) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_cmp_time"]
+    pub fn X509_cmp_time(s: *const ASN1_TIME, t: *const time_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_cmp_time_posix"]
+    pub fn X509_cmp_time_posix(s: *const ASN1_TIME, t: i64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_cmp_current_time"]
+    pub fn X509_cmp_current_time(s: *const ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_time_adj"]
+    pub fn X509_time_adj(
+        s: *mut ASN1_TIME,
+        offset_sec: ::std::os::raw::c_long,
+        t: *const time_t,
+    ) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_time_adj_ex"]
+    pub fn X509_time_adj_ex(
+        s: *mut ASN1_TIME,
+        offset_day: ::std::os::raw::c_int,
+        offset_sec: ::std::os::raw::c_long,
+        t: *const time_t,
+    ) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_gmtime_adj"]
+    pub fn X509_gmtime_adj(s: *mut ASN1_TIME, offset_sec: ::std::os::raw::c_long)
+        -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_issuer_name_cmp"]
+    pub fn X509_issuer_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_subject_name_cmp"]
+    pub fn X509_subject_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_cmp"]
+    pub fn X509_CRL_cmp(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_issuer_name_hash"]
+    pub fn X509_issuer_name_hash(x509: *mut X509) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_subject_name_hash"]
+    pub fn X509_subject_name_hash(x509: *mut X509) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_issuer_name_hash_old"]
+    pub fn X509_issuer_name_hash_old(x509: *mut X509) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_subject_name_hash_old"]
+    pub fn X509_subject_name_hash_old(x509: *mut X509) -> u32;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_ex_new_index"]
+    pub fn X509_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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set_ex_data"]
+    pub fn X509_set_ex_data(
+        r: *mut X509,
+        idx: ::std::os::raw::c_int,
+        arg: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_ex_data"]
+    pub fn X509_get_ex_data(
+        r: *mut X509,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get_ex_new_index"]
+    pub fn X509_STORE_CTX_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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_ex_data"]
+    pub fn X509_STORE_CTX_set_ex_data(
+        ctx: *mut X509_STORE_CTX,
+        idx: ::std::os::raw::c_int,
+        data: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get_ex_data"]
+    pub fn X509_STORE_CTX_get_ex_data(
+        ctx: *mut X509_STORE_CTX,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_get_ex_new_index"]
+    pub fn X509_STORE_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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_ex_data"]
+    pub fn X509_STORE_set_ex_data(
+        ctx: *mut X509_STORE,
+        idx: ::std::os::raw::c_int,
+        data: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_get_ex_data"]
+    pub fn X509_STORE_get_ex_data(
+        ctx: *mut X509_STORE,
+        idx: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_digest"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_digest"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_verify"]
+    pub fn ASN1_item_verify(
+        it: *const ASN1_ITEM,
+        algor1: *const X509_ALGOR,
+        signature: *const ASN1_BIT_STRING,
+        data: *mut ::std::os::raw::c_void,
+        pkey: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_sign"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ASN1_item_sign_ctx"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_supported_extension"]
+    pub fn X509_supported_extension(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_ca"]
+    pub fn X509_check_ca(x509: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_issued"]
+    pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NAME_CONSTRAINTS_check"]
+    pub fn NAME_CONSTRAINTS_check(
+        x509: *mut X509,
+        nc: *mut NAME_CONSTRAINTS,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_host"]
+    pub fn X509_check_host(
+        x509: *const X509,
+        chk: *const ::std::os::raw::c_char,
+        chklen: usize,
+        flags: ::std::os::raw::c_uint,
+        out_peername: *mut *mut ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_email"]
+    pub fn X509_check_email(
+        x509: *const X509,
+        chk: *const ::std::os::raw::c_char,
+        chklen: usize,
+        flags: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_ip"]
+    pub fn X509_check_ip(
+        x509: *const X509,
+        chk: *const u8,
+        chklen: usize,
+        flags: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_ip_asc"]
+    pub fn X509_check_ip_asc(
+        x509: *const X509,
+        ipasc: *const ::std::os::raw::c_char,
+        flags: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get1_issuer"]
+    pub fn X509_STORE_CTX_get1_issuer(
+        out_issuer: *mut *mut X509,
+        ctx: *mut X509_STORE_CTX,
+        x509: *mut X509,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_purpose"]
+    pub fn X509_check_purpose(
+        x509: *mut X509,
+        purpose: ::std::os::raw::c_int,
+        ca: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_check_trust"]
+    pub fn X509_check_trust(
+        x509: *mut X509,
+        id: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct private_key_st {
+    pub dec_pkey: *mut EVP_PKEY,
+}
+#[test]
+fn bindgen_test_layout_private_key_st() {
+    const UNINIT: ::std::mem::MaybeUninit<private_key_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<private_key_st>(),
+        8usize,
+        concat!("Size of: ", stringify!(private_key_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<private_key_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(private_key_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dec_pkey) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(private_key_st),
+            "::",
+            stringify!(dec_pkey)
+        )
+    );
+}
+impl Default for private_key_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct X509_info_st {
+    pub x509: *mut X509,
+    pub crl: *mut X509_CRL,
+    pub x_pkey: *mut X509_PKEY,
+    pub enc_cipher: EVP_CIPHER_INFO,
+    pub enc_len: ::std::os::raw::c_int,
+    pub enc_data: *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_X509_info_st() {
+    const UNINIT: ::std::mem::MaybeUninit<X509_info_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<X509_info_st>(),
+        64usize,
+        concat!("Size of: ", stringify!(X509_info_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<X509_info_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(X509_info_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).x509) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509_info_st),
+            "::",
+            stringify!(x509)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509_info_st),
+            "::",
+            stringify!(crl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).x_pkey) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509_info_st),
+            "::",
+            stringify!(x_pkey)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enc_cipher) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509_info_st),
+            "::",
+            stringify!(enc_cipher)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enc_len) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509_info_st),
+            "::",
+            stringify!(enc_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509_info_st),
+            "::",
+            stringify!(enc_data)
+        )
+    );
+}
+impl Default for X509_info_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_INFO {
+    _unused: [u8; 0],
+}
+pub type sk_X509_INFO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_INFO)>;
+pub type sk_X509_INFO_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_INFO) -> *mut X509_INFO>;
+pub type sk_X509_INFO_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_INFO,
+        arg2: *const *const X509_INFO,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_INFO_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_INFO,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_INFO_free"]
+    pub fn X509_INFO_free(info: *mut X509_INFO);
+}
+pub type X509V3_EXT_NEW =
+    ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
+pub type X509V3_EXT_FREE =
+    ::std::option::Option<unsafe extern "C" fn(ext: *mut ::std::os::raw::c_void)>;
+pub type X509V3_EXT_D2I = ::std::option::Option<
+    unsafe extern "C" fn(
+        ext: *mut ::std::os::raw::c_void,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ::std::os::raw::c_void,
+>;
+pub type X509V3_EXT_I2D = ::std::option::Option<
+    unsafe extern "C" fn(
+        ext: *mut ::std::os::raw::c_void,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type X509V3_EXT_I2V = ::std::option::Option<
+    unsafe extern "C" fn(
+        method: *const X509V3_EXT_METHOD,
+        ext: *mut ::std::os::raw::c_void,
+        extlist: *mut stack_st_CONF_VALUE,
+    ) -> *mut stack_st_CONF_VALUE,
+>;
+pub type X509V3_EXT_V2I = ::std::option::Option<
+    unsafe extern "C" fn(
+        method: *const X509V3_EXT_METHOD,
+        ctx: *const X509V3_CTX,
+        values: *const stack_st_CONF_VALUE,
+    ) -> *mut ::std::os::raw::c_void,
+>;
+pub type X509V3_EXT_I2S = ::std::option::Option<
+    unsafe extern "C" fn(
+        method: *const X509V3_EXT_METHOD,
+        ext: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_char,
+>;
+pub type X509V3_EXT_S2I = ::std::option::Option<
+    unsafe extern "C" fn(
+        method: *const X509V3_EXT_METHOD,
+        ctx: *const X509V3_CTX,
+        str_: *const ::std::os::raw::c_char,
+    ) -> *mut ::std::os::raw::c_void,
+>;
+pub type X509V3_EXT_I2R = ::std::option::Option<
+    unsafe extern "C" fn(
+        method: *const X509V3_EXT_METHOD,
+        ext: *mut ::std::os::raw::c_void,
+        out: *mut BIO,
+        indent: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type X509V3_EXT_R2I = ::std::option::Option<
+    unsafe extern "C" fn(
+        method: *const X509V3_EXT_METHOD,
+        ctx: *const X509V3_CTX,
+        str_: *const ::std::os::raw::c_char,
+    ) -> *mut ::std::os::raw::c_void,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct v3_ext_method {
+    pub ext_nid: ::std::os::raw::c_int,
+    pub ext_flags: ::std::os::raw::c_int,
+    pub it: *const ASN1_ITEM_st,
+    pub ext_new: X509V3_EXT_NEW,
+    pub ext_free: X509V3_EXT_FREE,
+    pub d2i: X509V3_EXT_D2I,
+    pub i2d: X509V3_EXT_I2D,
+    pub i2s: X509V3_EXT_I2S,
+    pub s2i: X509V3_EXT_S2I,
+    pub i2v: X509V3_EXT_I2V,
+    pub v2i: X509V3_EXT_V2I,
+    pub i2r: X509V3_EXT_I2R,
+    pub r2i: X509V3_EXT_R2I,
+    pub usr_data: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout_v3_ext_method() {
+    const UNINIT: ::std::mem::MaybeUninit<v3_ext_method> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<v3_ext_method>(),
+        104usize,
+        concat!("Size of: ", stringify!(v3_ext_method))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<v3_ext_method>(),
+        8usize,
+        concat!("Alignment of ", stringify!(v3_ext_method))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ext_nid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(ext_nid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ext_flags) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(ext_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(it)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ext_new) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(ext_new)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ext_free) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(ext_free)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).d2i) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(d2i)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).i2d) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(i2d)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).i2s) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(i2s)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).s2i) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(s2i)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).i2v) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(i2v)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).v2i) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(v2i)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).i2r) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(i2r)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).r2i) as usize - ptr as usize },
+        88usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(r2i)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
+        96usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_method),
+            "::",
+            stringify!(usr_data)
+        )
+    );
+}
+impl Default for v3_ext_method {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_get"]
+    pub fn X509V3_EXT_get(ext: *const X509_EXTENSION) -> *const X509V3_EXT_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_get_nid"]
+    pub fn X509V3_EXT_get_nid(nid: ::std::os::raw::c_int) -> *const X509V3_EXT_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_add"]
+    pub fn X509V3_EXT_add(ext: *mut X509V3_EXT_METHOD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_add_alias"]
+    pub fn X509V3_EXT_add_alias(
+        nid_to: ::std::os::raw::c_int,
+        nid_from: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct v3_ext_ctx {
+    pub flags: ::std::os::raw::c_int,
+    pub issuer_cert: *const X509,
+    pub subject_cert: *const X509,
+    pub subject_req: *const X509_REQ,
+    pub crl: *const X509_CRL,
+    pub db: *const CONF,
+}
+#[test]
+fn bindgen_test_layout_v3_ext_ctx() {
+    const UNINIT: ::std::mem::MaybeUninit<v3_ext_ctx> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<v3_ext_ctx>(),
+        48usize,
+        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::addr_of!((*ptr).flags) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_ctx),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).issuer_cert) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_ctx),
+            "::",
+            stringify!(issuer_cert)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).subject_cert) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_ctx),
+            "::",
+            stringify!(subject_cert)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).subject_req) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_ctx),
+            "::",
+            stringify!(subject_req)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_ctx),
+            "::",
+            stringify!(crl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(v3_ext_ctx),
+            "::",
+            stringify!(db)
+        )
+    );
+}
+impl Default for v3_ext_ctx {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_set_ctx"]
+    pub fn X509V3_set_ctx(
+        ctx: *mut X509V3_CTX,
+        issuer: *const X509,
+        subject: *const X509,
+        req: *const X509_REQ,
+        crl: *const X509_CRL,
+        flags: ::std::os::raw::c_int,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_set_nconf"]
+    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *const CONF);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_nconf"]
+    pub fn X509V3_EXT_nconf(
+        conf: *const CONF,
+        ctx: *const X509V3_CTX,
+        name: *const ::std::os::raw::c_char,
+        value: *const ::std::os::raw::c_char,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_nconf_nid"]
+    pub fn X509V3_EXT_nconf_nid(
+        conf: *const CONF,
+        ctx: *const X509V3_CTX,
+        ext_nid: ::std::os::raw::c_int,
+        value: *const ::std::os::raw::c_char,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_conf_nid"]
+    pub fn X509V3_EXT_conf_nid(
+        conf: *mut lhash_st_CONF_VALUE,
+        ctx: *const X509V3_CTX,
+        ext_nid: ::std::os::raw::c_int,
+        value: *const ::std::os::raw::c_char,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_add_nconf_sk"]
+    pub fn X509V3_EXT_add_nconf_sk(
+        conf: *const CONF,
+        ctx: *const X509V3_CTX,
+        section: *const ::std::os::raw::c_char,
+        sk: *mut *mut stack_st_X509_EXTENSION,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_add_nconf"]
+    pub fn X509V3_EXT_add_nconf(
+        conf: *const CONF,
+        ctx: *const X509V3_CTX,
+        section: *const ::std::os::raw::c_char,
+        cert: *mut X509,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_REQ_add_nconf"]
+    pub fn X509V3_EXT_REQ_add_nconf(
+        conf: *const CONF,
+        ctx: *const X509V3_CTX,
+        section: *const ::std::os::raw::c_char,
+        req: *mut X509_REQ,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_CRL_add_nconf"]
+    pub fn X509V3_EXT_CRL_add_nconf(
+        conf: *const CONF,
+        ctx: *const X509V3_CTX,
+        section: *const ::std::os::raw::c_char,
+        crl: *mut X509_CRL,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_EXT_conf"]
+    pub fn X509V3_EXT_conf(
+        conf: *mut lhash_st_CONF_VALUE,
+        ctx: *mut X509V3_CTX,
+        name: *const ::std::os::raw::c_char,
+        value: *const ::std::os::raw::c_char,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2s_ASN1_OCTET_STRING"]
+    pub fn i2s_ASN1_OCTET_STRING(
+        method: *const X509V3_EXT_METHOD,
+        oct: *const ASN1_OCTET_STRING,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_s2i_ASN1_OCTET_STRING"]
+    pub fn s2i_ASN1_OCTET_STRING(
+        method: *const X509V3_EXT_METHOD,
+        ctx: *const X509V3_CTX,
+        str_: *const ::std::os::raw::c_char,
+    ) -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2s_ASN1_INTEGER"]
+    pub fn i2s_ASN1_INTEGER(
+        method: *const X509V3_EXT_METHOD,
+        aint: *const ASN1_INTEGER,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_s2i_ASN1_INTEGER"]
+    pub fn s2i_ASN1_INTEGER(
+        method: *const X509V3_EXT_METHOD,
+        value: *const ::std::os::raw::c_char,
+    ) -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2s_ASN1_ENUMERATED"]
+    pub fn i2s_ASN1_ENUMERATED(
+        method: *const X509V3_EXT_METHOD,
+        aint: *const ASN1_ENUMERATED,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_conf_free"]
+    pub fn X509V3_conf_free(val: *mut CONF_VALUE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2v_GENERAL_NAME"]
+    pub fn i2v_GENERAL_NAME(
+        method: *const X509V3_EXT_METHOD,
+        gen: *const GENERAL_NAME,
+        ret: *mut stack_st_CONF_VALUE,
+    ) -> *mut stack_st_CONF_VALUE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2v_GENERAL_NAMES"]
+    pub fn i2v_GENERAL_NAMES(
+        method: *const X509V3_EXT_METHOD,
+        gen: *const GENERAL_NAMES,
+        extlist: *mut stack_st_CONF_VALUE,
+    ) -> *mut stack_st_CONF_VALUE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_a2i_IPADDRESS"]
+    pub fn a2i_IPADDRESS(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_a2i_IPADDRESS_NC"]
+    pub fn a2i_IPADDRESS_NC(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_notBefore"]
+    pub fn X509_get_notBefore(x509: *const X509) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_notAfter"]
+    pub fn X509_get_notAfter(x509: *const X509) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set_notBefore"]
+    pub fn X509_set_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_set_notAfter"]
+    pub fn X509_set_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_lastUpdate"]
+    pub fn X509_CRL_get_lastUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_CRL_get_nextUpdate"]
+    pub fn X509_CRL_get_nextUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_get_serialNumber"]
+    pub fn X509_get_serialNumber(x509: *mut X509) -> *mut ASN1_INTEGER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_get_text_by_OBJ"]
+    pub fn X509_NAME_get_text_by_OBJ(
+        name: *const X509_NAME,
+        obj: *const ASN1_OBJECT,
+        buf: *mut ::std::os::raw::c_char,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_NAME_get_text_by_NID"]
+    pub fn X509_NAME_get_text_by_NID(
+        name: *const X509_NAME,
+        nid: ::std::os::raw::c_int,
+        buf: *mut ::std::os::raw::c_char,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get0_parent_ctx"]
+    pub fn X509_STORE_CTX_get0_parent_ctx(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_LOOKUP_free"]
+    pub fn X509_LOOKUP_free(ctx: *mut X509_LOOKUP);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_cleanup"]
+    pub fn X509_STORE_CTX_cleanup(ctx: *mut X509_STORE_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_add_standard_extensions"]
+    pub fn X509V3_add_standard_extensions() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509V3_parse_list"]
+    pub fn X509V3_parse_list(line: *const ::std::os::raw::c_char) -> *mut stack_st_CONF_VALUE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get_chain"]
+    pub fn X509_STORE_CTX_get_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_trusted_stack"]
+    pub fn X509_STORE_CTX_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
+}
+pub type X509_STORE_CTX_verify_cb = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut X509_STORE_CTX,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_verify_cb"]
+    pub fn X509_STORE_CTX_set_verify_cb(
+        ctx: *mut X509_STORE_CTX,
+        verify_cb: ::std::option::Option<
+            unsafe extern "C" fn(
+                ok: ::std::os::raw::c_int,
+                ctx: *mut X509_STORE_CTX,
+            ) -> ::std::os::raw::c_int,
+        >,
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_verify_cb"]
+    pub fn X509_STORE_set_verify_cb(store: *mut X509_STORE, verify_cb: X509_STORE_CTX_verify_cb);
+}
+pub type X509_STORE_CTX_get_crl_fn = ::std::option::Option<
+    unsafe extern "C" fn(
+        ctx: *mut X509_STORE_CTX,
+        crl: *mut *mut X509_CRL,
+        x: *mut X509,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type X509_STORE_CTX_check_crl_fn = ::std::option::Option<
+    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, crl: *mut X509_CRL) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_get_crl"]
+    pub fn X509_STORE_set_get_crl(store: *mut X509_STORE, get_crl: X509_STORE_CTX_get_crl_fn);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_set_check_crl"]
+    pub fn X509_STORE_set_check_crl(store: *mut X509_STORE, check_crl: X509_STORE_CTX_check_crl_fn);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_set_chain"]
+    pub fn X509_STORE_CTX_set_chain(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct x509_purpose_st {
+    pub purpose: ::std::os::raw::c_int,
+    pub trust: ::std::os::raw::c_int,
+    pub flags: ::std::os::raw::c_int,
+    pub check_purpose: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *const x509_purpose_st,
+            arg2: *const X509,
+            arg3: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub name: *mut ::std::os::raw::c_char,
+    pub sname: *mut ::std::os::raw::c_char,
+    pub usr_data: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout_x509_purpose_st() {
+    const UNINIT: ::std::mem::MaybeUninit<x509_purpose_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<x509_purpose_st>(),
+        48usize,
+        concat!("Size of: ", stringify!(x509_purpose_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<x509_purpose_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(x509_purpose_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).purpose) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_purpose_st),
+            "::",
+            stringify!(purpose)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_purpose_st),
+            "::",
+            stringify!(trust)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_purpose_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).check_purpose) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_purpose_st),
+            "::",
+            stringify!(check_purpose)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_purpose_st),
+            "::",
+            stringify!(name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_purpose_st),
+            "::",
+            stringify!(sname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_purpose_st),
+            "::",
+            stringify!(usr_data)
+        )
+    );
+}
+impl Default for x509_purpose_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type X509_PURPOSE = x509_purpose_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_PURPOSE {
+    _unused: [u8; 0],
+}
+pub type sk_X509_PURPOSE_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_PURPOSE)>;
+pub type sk_X509_PURPOSE_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_PURPOSE) -> *mut X509_PURPOSE>;
+pub type sk_X509_PURPOSE_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_PURPOSE,
+        arg2: *const *const X509_PURPOSE,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_PURPOSE_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_PURPOSE,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_get0_objects"]
+    pub fn X509_STORE_get0_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_get_by_sname"]
+    pub fn X509_PURPOSE_get_by_sname(sname: *const ::std::os::raw::c_char)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_get0"]
+    pub fn X509_PURPOSE_get0(id: ::std::os::raw::c_int) -> *const X509_PURPOSE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_get_id"]
+    pub fn X509_PURPOSE_get_id(purpose: *const X509_PURPOSE) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct X509_algor_st {
+    pub algorithm: *mut ASN1_OBJECT,
+    pub parameter: *mut ASN1_TYPE,
+}
+#[test]
+fn bindgen_test_layout_X509_algor_st() {
+    const UNINIT: ::std::mem::MaybeUninit<X509_algor_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).algorithm) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509_algor_st),
+            "::",
+            stringify!(algorithm)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).parameter) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(X509_algor_st),
+            "::",
+            stringify!(parameter)
+        )
+    );
+}
+impl Default for X509_algor_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_DIST_POINT {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct x509_trust_st {
+    pub trust: ::std::os::raw::c_int,
+    pub flags: ::std::os::raw::c_int,
+    pub check_trust: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *const X509_TRUST,
+            arg2: *mut X509,
+            arg3: ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub name: *mut ::std::os::raw::c_char,
+    pub arg1: ::std::os::raw::c_int,
+    pub arg2: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout_x509_trust_st() {
+    const UNINIT: ::std::mem::MaybeUninit<x509_trust_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<x509_trust_st>(),
+        40usize,
+        concat!("Size of: ", stringify!(x509_trust_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<x509_trust_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(x509_trust_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_trust_st),
+            "::",
+            stringify!(trust)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_trust_st),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).check_trust) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_trust_st),
+            "::",
+            stringify!(check_trust)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_trust_st),
+            "::",
+            stringify!(name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).arg1) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_trust_st),
+            "::",
+            stringify!(arg1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).arg2) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(x509_trust_st),
+            "::",
+            stringify!(arg2)
+        )
+    );
+}
+impl Default for x509_trust_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_X509_TRUST {
+    _unused: [u8; 0],
+}
+pub type sk_X509_TRUST_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_TRUST)>;
+pub type sk_X509_TRUST_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_TRUST) -> *mut X509_TRUST>;
+pub type sk_X509_TRUST_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const X509_TRUST,
+        arg2: *const *const X509_TRUST,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_X509_TRUST_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut X509_TRUST,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_TRUST_set"]
+    pub fn X509_TRUST_set(
+        t: *mut ::std::os::raw::c_int,
+        trust: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_TRUST_get_count"]
+    pub fn X509_TRUST_get_count() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_TRUST_get0"]
+    pub fn X509_TRUST_get0(idx: ::std::os::raw::c_int) -> *const X509_TRUST;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_TRUST_get_by_id"]
+    pub fn X509_TRUST_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_TRUST_get_flags"]
+    pub fn X509_TRUST_get_flags(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_TRUST_get0_name"]
+    pub fn X509_TRUST_get0_name(xp: *const X509_TRUST) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_TRUST_get_trust"]
+    pub fn X509_TRUST_get_trust(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_OBJECT_get0_X509_CRL"]
+    pub fn X509_OBJECT_get0_X509_CRL(a: *const X509_OBJECT) -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_OBJECT_set1_X509"]
+    pub fn X509_OBJECT_set1_X509(a: *mut X509_OBJECT, obj: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_OBJECT_set1_X509_CRL"]
+    pub fn X509_OBJECT_set1_X509_CRL(
+        a: *mut X509_OBJECT,
+        obj: *mut X509_CRL,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_lock"]
+    pub fn X509_STORE_lock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_unlock"]
+    pub fn X509_STORE_unlock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get1_certs"]
+    pub fn X509_STORE_CTX_get1_certs(
+        st: *mut X509_STORE_CTX,
+        nm: *mut X509_NAME,
+    ) -> *mut stack_st_X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get1_crls"]
+    pub fn X509_STORE_CTX_get1_crls(
+        st: *mut X509_STORE_CTX,
+        nm: *mut X509_NAME,
+    ) -> *mut stack_st_X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_STORE_CTX_get_by_subject"]
+    pub fn X509_STORE_CTX_get_by_subject(
+        vs: *mut X509_STORE_CTX,
+        type_: ::std::os::raw::c_int,
+        name: *mut X509_NAME,
+        ret: *mut X509_OBJECT,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct BASIC_CONSTRAINTS_st {
+    pub ca: ASN1_BOOLEAN,
+    pub pathlen: *mut ASN1_INTEGER,
+}
+#[test]
+fn bindgen_test_layout_BASIC_CONSTRAINTS_st() {
+    const UNINIT: ::std::mem::MaybeUninit<BASIC_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<BASIC_CONSTRAINTS_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(BASIC_CONSTRAINTS_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<BASIC_CONSTRAINTS_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(BASIC_CONSTRAINTS_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ca) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(BASIC_CONSTRAINTS_st),
+            "::",
+            stringify!(ca)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pathlen) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(BASIC_CONSTRAINTS_st),
+            "::",
+            stringify!(pathlen)
+        )
+    );
+}
+impl Default for BASIC_CONSTRAINTS_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct ACCESS_DESCRIPTION_st {
+    pub method: *mut ASN1_OBJECT,
+    pub location: *mut GENERAL_NAME,
+}
+#[test]
+fn bindgen_test_layout_ACCESS_DESCRIPTION_st() {
+    const UNINIT: ::std::mem::MaybeUninit<ACCESS_DESCRIPTION_st> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ACCESS_DESCRIPTION_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(ACCESS_DESCRIPTION_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ACCESS_DESCRIPTION_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ACCESS_DESCRIPTION_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ACCESS_DESCRIPTION_st),
+            "::",
+            stringify!(method)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).location) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ACCESS_DESCRIPTION_st),
+            "::",
+            stringify!(location)
+        )
+    );
+}
+impl Default for ACCESS_DESCRIPTION_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type ACCESS_DESCRIPTION = ACCESS_DESCRIPTION_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_ACCESS_DESCRIPTION {
+    _unused: [u8; 0],
+}
+pub type sk_ACCESS_DESCRIPTION_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ACCESS_DESCRIPTION)>;
+pub type sk_ACCESS_DESCRIPTION_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const ACCESS_DESCRIPTION) -> *mut ACCESS_DESCRIPTION,
+>;
+pub type sk_ACCESS_DESCRIPTION_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const ACCESS_DESCRIPTION,
+        arg2: *const *const ACCESS_DESCRIPTION,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_ACCESS_DESCRIPTION_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut ACCESS_DESCRIPTION,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type AUTHORITY_INFO_ACCESS = stack_st_ACCESS_DESCRIPTION;
+pub type EXTENDED_KEY_USAGE = stack_st_ASN1_OBJECT;
+#[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,
+}
+#[test]
+fn bindgen_test_layout_DIST_POINT_NAME_st__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).fullname) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(fullname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).relativename) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_NAME_st__bindgen_ty_1),
+            "::",
+            stringify!(relativename)
+        )
+    );
+}
+impl Default for DIST_POINT_NAME_st__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[test]
+fn bindgen_test_layout_DIST_POINT_NAME_st() {
+    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).type_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_NAME_st),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_NAME_st),
+            "::",
+            stringify!(name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dpname) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_NAME_st),
+            "::",
+            stringify!(dpname)
+        )
+    );
+}
+impl Default for DIST_POINT_NAME_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct DIST_POINT_st {
+    pub distpoint: *mut DIST_POINT_NAME,
+    pub reasons: *mut ASN1_BIT_STRING,
+    pub CRLissuer: *mut GENERAL_NAMES,
+}
+#[test]
+fn bindgen_test_layout_DIST_POINT_st() {
+    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<DIST_POINT_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(DIST_POINT_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<DIST_POINT_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(DIST_POINT_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_st),
+            "::",
+            stringify!(distpoint)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).reasons) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_st),
+            "::",
+            stringify!(reasons)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).CRLissuer) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(DIST_POINT_st),
+            "::",
+            stringify!(CRLissuer)
+        )
+    );
+}
+impl Default for DIST_POINT_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type CRL_DIST_POINTS = stack_st_DIST_POINT;
+pub type sk_DIST_POINT_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut DIST_POINT)>;
+pub type sk_DIST_POINT_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const DIST_POINT) -> *mut DIST_POINT>;
+pub type sk_DIST_POINT_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const DIST_POINT,
+        arg2: *const *const DIST_POINT,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_DIST_POINT_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut DIST_POINT,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<AUTHORITY_KEYID_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).keyid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(AUTHORITY_KEYID_st),
+            "::",
+            stringify!(keyid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(AUTHORITY_KEYID_st),
+            "::",
+            stringify!(issuer)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(AUTHORITY_KEYID_st),
+            "::",
+            stringify!(serial)
+        )
+    );
+}
+impl Default for AUTHORITY_KEYID_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct NOTICEREF_st {
+    pub organization: *mut ASN1_STRING,
+    pub noticenos: *mut stack_st_ASN1_INTEGER,
+}
+#[test]
+fn bindgen_test_layout_NOTICEREF_st() {
+    const UNINIT: ::std::mem::MaybeUninit<NOTICEREF_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<NOTICEREF_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(NOTICEREF_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<NOTICEREF_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(NOTICEREF_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).organization) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(NOTICEREF_st),
+            "::",
+            stringify!(organization)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).noticenos) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(NOTICEREF_st),
+            "::",
+            stringify!(noticenos)
+        )
+    );
+}
+impl Default for NOTICEREF_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type NOTICEREF = NOTICEREF_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct USERNOTICE_st {
+    pub noticeref: *mut NOTICEREF,
+    pub exptext: *mut ASN1_STRING,
+}
+#[test]
+fn bindgen_test_layout_USERNOTICE_st() {
+    const UNINIT: ::std::mem::MaybeUninit<USERNOTICE_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<USERNOTICE_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(USERNOTICE_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<USERNOTICE_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(USERNOTICE_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).noticeref) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(USERNOTICE_st),
+            "::",
+            stringify!(noticeref)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).exptext) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(USERNOTICE_st),
+            "::",
+            stringify!(exptext)
+        )
+    );
+}
+impl Default for USERNOTICE_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type USERNOTICE = USERNOTICE_st;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct POLICYQUALINFO_st {
+    pub pqualid: *mut ASN1_OBJECT,
+    pub d: POLICYQUALINFO_st__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union POLICYQUALINFO_st__bindgen_ty_1 {
+    pub cpsuri: *mut ASN1_IA5STRING,
+    pub usernotice: *mut USERNOTICE,
+    pub other: *mut ASN1_TYPE,
+}
+#[test]
+fn bindgen_test_layout_POLICYQUALINFO_st__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(POLICYQUALINFO_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(POLICYQUALINFO_st__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cpsuri) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICYQUALINFO_st__bindgen_ty_1),
+            "::",
+            stringify!(cpsuri)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).usernotice) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICYQUALINFO_st__bindgen_ty_1),
+            "::",
+            stringify!(usernotice)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICYQUALINFO_st__bindgen_ty_1),
+            "::",
+            stringify!(other)
+        )
+    );
+}
+impl Default for POLICYQUALINFO_st__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[test]
+fn bindgen_test_layout_POLICYQUALINFO_st() {
+    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<POLICYQUALINFO_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(POLICYQUALINFO_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<POLICYQUALINFO_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(POLICYQUALINFO_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pqualid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICYQUALINFO_st),
+            "::",
+            stringify!(pqualid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICYQUALINFO_st),
+            "::",
+            stringify!(d)
+        )
+    );
+}
+impl Default for POLICYQUALINFO_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type POLICYQUALINFO = POLICYQUALINFO_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_POLICYQUALINFO {
+    _unused: [u8; 0],
+}
+pub type sk_POLICYQUALINFO_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYQUALINFO)>;
+pub type sk_POLICYQUALINFO_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYQUALINFO) -> *mut POLICYQUALINFO>;
+pub type sk_POLICYQUALINFO_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const POLICYQUALINFO,
+        arg2: *const *const POLICYQUALINFO,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_POLICYQUALINFO_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut POLICYQUALINFO,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct POLICYINFO_st {
+    pub policyid: *mut ASN1_OBJECT,
+    pub qualifiers: *mut stack_st_POLICYQUALINFO,
+}
+#[test]
+fn bindgen_test_layout_POLICYINFO_st() {
+    const UNINIT: ::std::mem::MaybeUninit<POLICYINFO_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<POLICYINFO_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(POLICYINFO_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<POLICYINFO_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(POLICYINFO_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).policyid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICYINFO_st),
+            "::",
+            stringify!(policyid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).qualifiers) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICYINFO_st),
+            "::",
+            stringify!(qualifiers)
+        )
+    );
+}
+impl Default for POLICYINFO_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type POLICYINFO = POLICYINFO_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_POLICYINFO {
+    _unused: [u8; 0],
+}
+pub type CERTIFICATEPOLICIES = stack_st_POLICYINFO;
+pub type sk_POLICYINFO_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYINFO)>;
+pub type sk_POLICYINFO_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYINFO) -> *mut POLICYINFO>;
+pub type sk_POLICYINFO_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const POLICYINFO,
+        arg2: *const *const POLICYINFO,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_POLICYINFO_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut POLICYINFO,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct POLICY_MAPPING_st {
+    pub issuerDomainPolicy: *mut ASN1_OBJECT,
+    pub subjectDomainPolicy: *mut ASN1_OBJECT,
+}
+#[test]
+fn bindgen_test_layout_POLICY_MAPPING_st() {
+    const UNINIT: ::std::mem::MaybeUninit<POLICY_MAPPING_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<POLICY_MAPPING_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(POLICY_MAPPING_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<POLICY_MAPPING_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(POLICY_MAPPING_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).issuerDomainPolicy) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICY_MAPPING_st),
+            "::",
+            stringify!(issuerDomainPolicy)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).subjectDomainPolicy) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICY_MAPPING_st),
+            "::",
+            stringify!(subjectDomainPolicy)
+        )
+    );
+}
+impl Default for POLICY_MAPPING_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type POLICY_MAPPING = POLICY_MAPPING_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_POLICY_MAPPING {
+    _unused: [u8; 0],
+}
+pub type sk_POLICY_MAPPING_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICY_MAPPING)>;
+pub type sk_POLICY_MAPPING_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICY_MAPPING) -> *mut POLICY_MAPPING>;
+pub type sk_POLICY_MAPPING_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const POLICY_MAPPING,
+        arg2: *const *const POLICY_MAPPING,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_POLICY_MAPPING_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut POLICY_MAPPING,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type POLICY_MAPPINGS = stack_st_POLICY_MAPPING;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct GENERAL_SUBTREE_st {
+    pub base: *mut GENERAL_NAME,
+    pub minimum: *mut ASN1_INTEGER,
+    pub maximum: *mut ASN1_INTEGER,
+}
+#[test]
+fn bindgen_test_layout_GENERAL_SUBTREE_st() {
+    const UNINIT: ::std::mem::MaybeUninit<GENERAL_SUBTREE_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<GENERAL_SUBTREE_st>(),
+        24usize,
+        concat!("Size of: ", stringify!(GENERAL_SUBTREE_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<GENERAL_SUBTREE_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(GENERAL_SUBTREE_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_SUBTREE_st),
+            "::",
+            stringify!(base)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).minimum) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_SUBTREE_st),
+            "::",
+            stringify!(minimum)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).maximum) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(GENERAL_SUBTREE_st),
+            "::",
+            stringify!(maximum)
+        )
+    );
+}
+impl Default for GENERAL_SUBTREE_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type GENERAL_SUBTREE = GENERAL_SUBTREE_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_GENERAL_SUBTREE {
+    _unused: [u8; 0],
+}
+pub type sk_GENERAL_SUBTREE_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_SUBTREE)>;
+pub type sk_GENERAL_SUBTREE_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE,
+>;
+pub type sk_GENERAL_SUBTREE_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const GENERAL_SUBTREE,
+        arg2: *const *const GENERAL_SUBTREE,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_GENERAL_SUBTREE_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut GENERAL_SUBTREE,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<NAME_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).permittedSubtrees) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(NAME_CONSTRAINTS_st),
+            "::",
+            stringify!(permittedSubtrees)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).excludedSubtrees) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(NAME_CONSTRAINTS_st),
+            "::",
+            stringify!(excludedSubtrees)
+        )
+    );
+}
+impl Default for NAME_CONSTRAINTS_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct POLICY_CONSTRAINTS_st {
+    pub requireExplicitPolicy: *mut ASN1_INTEGER,
+    pub inhibitPolicyMapping: *mut ASN1_INTEGER,
+}
+#[test]
+fn bindgen_test_layout_POLICY_CONSTRAINTS_st() {
+    const UNINIT: ::std::mem::MaybeUninit<POLICY_CONSTRAINTS_st> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<POLICY_CONSTRAINTS_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(POLICY_CONSTRAINTS_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<POLICY_CONSTRAINTS_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(POLICY_CONSTRAINTS_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).requireExplicitPolicy) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICY_CONSTRAINTS_st),
+            "::",
+            stringify!(requireExplicitPolicy)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).inhibitPolicyMapping) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(POLICY_CONSTRAINTS_st),
+            "::",
+            stringify!(inhibitPolicyMapping)
+        )
+    );
+}
+impl Default for POLICY_CONSTRAINTS_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub type POLICY_CONSTRAINTS = POLICY_CONSTRAINTS_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct ISSUING_DIST_POINT_st {
+    pub distpoint: *mut DIST_POINT_NAME,
+    pub onlyuser: ASN1_BOOLEAN,
+    pub onlyCA: ASN1_BOOLEAN,
+    pub onlysomereasons: *mut ASN1_BIT_STRING,
+    pub indirectCRL: ASN1_BOOLEAN,
+    pub onlyattr: ASN1_BOOLEAN,
+}
+#[test]
+fn bindgen_test_layout_ISSUING_DIST_POINT_st() {
+    const UNINIT: ::std::mem::MaybeUninit<ISSUING_DIST_POINT_st> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).distpoint) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(distpoint)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).onlyuser) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(onlyuser)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).onlyCA) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(onlyCA)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).onlysomereasons) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(onlysomereasons)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).indirectCRL) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(indirectCRL)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).onlyattr) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ISSUING_DIST_POINT_st),
+            "::",
+            stringify!(onlyattr)
+        )
+    );
+}
+impl Default for ISSUING_DIST_POINT_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BASIC_CONSTRAINTS_it"]
+    pub static BASIC_CONSTRAINTS_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BASIC_CONSTRAINTS_new"]
+    pub fn BASIC_CONSTRAINTS_new() -> *mut BASIC_CONSTRAINTS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_BASIC_CONSTRAINTS_free"]
+    pub fn BASIC_CONSTRAINTS_free(bcons: *mut BASIC_CONSTRAINTS);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_BASIC_CONSTRAINTS"]
+    pub fn d2i_BASIC_CONSTRAINTS(
+        out: *mut *mut BASIC_CONSTRAINTS,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut BASIC_CONSTRAINTS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_BASIC_CONSTRAINTS"]
+    pub fn i2d_BASIC_CONSTRAINTS(
+        bcons: *const BASIC_CONSTRAINTS,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AUTHORITY_KEYID_it"]
+    pub static AUTHORITY_KEYID_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AUTHORITY_KEYID_new"]
+    pub fn AUTHORITY_KEYID_new() -> *mut AUTHORITY_KEYID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AUTHORITY_KEYID_free"]
+    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_AUTHORITY_KEYID"]
+    pub fn d2i_AUTHORITY_KEYID(
+        out: *mut *mut AUTHORITY_KEYID,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut AUTHORITY_KEYID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_AUTHORITY_KEYID"]
+    pub fn i2d_AUTHORITY_KEYID(
+        akid: *mut AUTHORITY_KEYID,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EXTENDED_KEY_USAGE_it"]
+    pub static EXTENDED_KEY_USAGE_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EXTENDED_KEY_USAGE_new"]
+    pub fn EXTENDED_KEY_USAGE_new() -> *mut EXTENDED_KEY_USAGE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EXTENDED_KEY_USAGE_free"]
+    pub fn EXTENDED_KEY_USAGE_free(eku: *mut EXTENDED_KEY_USAGE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_EXTENDED_KEY_USAGE"]
+    pub fn d2i_EXTENDED_KEY_USAGE(
+        out: *mut *mut EXTENDED_KEY_USAGE,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut EXTENDED_KEY_USAGE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_EXTENDED_KEY_USAGE"]
+    pub fn i2d_EXTENDED_KEY_USAGE(
+        eku: *const EXTENDED_KEY_USAGE,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CERTIFICATEPOLICIES_it"]
+    pub static CERTIFICATEPOLICIES_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CERTIFICATEPOLICIES_new"]
+    pub fn CERTIFICATEPOLICIES_new() -> *mut CERTIFICATEPOLICIES;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CERTIFICATEPOLICIES_free"]
+    pub fn CERTIFICATEPOLICIES_free(policies: *mut CERTIFICATEPOLICIES);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_CERTIFICATEPOLICIES"]
+    pub fn d2i_CERTIFICATEPOLICIES(
+        out: *mut *mut CERTIFICATEPOLICIES,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut CERTIFICATEPOLICIES;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_CERTIFICATEPOLICIES"]
+    pub fn i2d_CERTIFICATEPOLICIES(
+        policies: *const CERTIFICATEPOLICIES,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICYINFO_new"]
+    pub fn POLICYINFO_new() -> *mut POLICYINFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICYINFO_free"]
+    pub fn POLICYINFO_free(info: *mut POLICYINFO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICYQUALINFO_new"]
+    pub fn POLICYQUALINFO_new() -> *mut POLICYQUALINFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICYQUALINFO_free"]
+    pub fn POLICYQUALINFO_free(info: *mut POLICYQUALINFO);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_USERNOTICE_new"]
+    pub fn USERNOTICE_new() -> *mut USERNOTICE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_USERNOTICE_free"]
+    pub fn USERNOTICE_free(notice: *mut USERNOTICE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NOTICEREF_new"]
+    pub fn NOTICEREF_new() -> *mut NOTICEREF;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NOTICEREF_free"]
+    pub fn NOTICEREF_free(ref_: *mut NOTICEREF);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRL_DIST_POINTS_it"]
+    pub static CRL_DIST_POINTS_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRL_DIST_POINTS_new"]
+    pub fn CRL_DIST_POINTS_new() -> *mut CRL_DIST_POINTS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRL_DIST_POINTS_free"]
+    pub fn CRL_DIST_POINTS_free(crldp: *mut CRL_DIST_POINTS);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_CRL_DIST_POINTS"]
+    pub fn d2i_CRL_DIST_POINTS(
+        out: *mut *mut CRL_DIST_POINTS,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut CRL_DIST_POINTS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_CRL_DIST_POINTS"]
+    pub fn i2d_CRL_DIST_POINTS(
+        crldp: *mut CRL_DIST_POINTS,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DIST_POINT_new"]
+    pub fn DIST_POINT_new() -> *mut DIST_POINT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DIST_POINT_free"]
+    pub fn DIST_POINT_free(dp: *mut DIST_POINT);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DIST_POINT_NAME_new"]
+    pub fn DIST_POINT_NAME_new() -> *mut DIST_POINT_NAME;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_DIST_POINT_NAME_free"]
+    pub fn DIST_POINT_NAME_free(name: *mut DIST_POINT_NAME);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ISSUING_DIST_POINT_it"]
+    pub static ISSUING_DIST_POINT_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ISSUING_DIST_POINT_new"]
+    pub fn ISSUING_DIST_POINT_new() -> *mut ISSUING_DIST_POINT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ISSUING_DIST_POINT_free"]
+    pub fn ISSUING_DIST_POINT_free(idp: *mut ISSUING_DIST_POINT);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_ISSUING_DIST_POINT"]
+    pub fn d2i_ISSUING_DIST_POINT(
+        out: *mut *mut ISSUING_DIST_POINT,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut ISSUING_DIST_POINT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_ISSUING_DIST_POINT"]
+    pub fn i2d_ISSUING_DIST_POINT(
+        idp: *mut ISSUING_DIST_POINT,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ACCESS_DESCRIPTION_new"]
+    pub fn ACCESS_DESCRIPTION_new() -> *mut ACCESS_DESCRIPTION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ACCESS_DESCRIPTION_free"]
+    pub fn ACCESS_DESCRIPTION_free(desc: *mut ACCESS_DESCRIPTION);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AUTHORITY_INFO_ACCESS_it"]
+    pub static AUTHORITY_INFO_ACCESS_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AUTHORITY_INFO_ACCESS_new"]
+    pub fn AUTHORITY_INFO_ACCESS_new() -> *mut AUTHORITY_INFO_ACCESS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_AUTHORITY_INFO_ACCESS_free"]
+    pub fn AUTHORITY_INFO_ACCESS_free(aia: *mut AUTHORITY_INFO_ACCESS);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_AUTHORITY_INFO_ACCESS"]
+    pub fn d2i_AUTHORITY_INFO_ACCESS(
+        out: *mut *mut AUTHORITY_INFO_ACCESS,
+        inp: *mut *const u8,
+        len: ::std::os::raw::c_long,
+    ) -> *mut AUTHORITY_INFO_ACCESS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_AUTHORITY_INFO_ACCESS"]
+    pub fn i2d_AUTHORITY_INFO_ACCESS(
+        aia: *mut AUTHORITY_INFO_ACCESS,
+        outp: *mut *mut u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICY_MAPPING_new"]
+    pub fn POLICY_MAPPING_new() -> *mut POLICY_MAPPING;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICY_MAPPING_free"]
+    pub fn POLICY_MAPPING_free(mapping: *mut POLICY_MAPPING);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICY_MAPPINGS_it"]
+    pub static POLICY_MAPPINGS_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_SUBTREE_new"]
+    pub fn GENERAL_SUBTREE_new() -> *mut GENERAL_SUBTREE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_GENERAL_SUBTREE_free"]
+    pub fn GENERAL_SUBTREE_free(subtree: *mut GENERAL_SUBTREE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NAME_CONSTRAINTS_it"]
+    pub static NAME_CONSTRAINTS_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NAME_CONSTRAINTS_new"]
+    pub fn NAME_CONSTRAINTS_new() -> *mut NAME_CONSTRAINTS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_NAME_CONSTRAINTS_free"]
+    pub fn NAME_CONSTRAINTS_free(ncons: *mut NAME_CONSTRAINTS);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICY_CONSTRAINTS_new"]
+    pub fn POLICY_CONSTRAINTS_new() -> *mut POLICY_CONSTRAINTS;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICY_CONSTRAINTS_free"]
+    pub fn POLICY_CONSTRAINTS_free(pcons: *mut POLICY_CONSTRAINTS);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_POLICY_CONSTRAINTS_it"]
+    pub static POLICY_CONSTRAINTS_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_set"]
+    pub fn X509_PURPOSE_set(
+        p: *mut ::std::os::raw::c_int,
+        purpose: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_get_count"]
+    pub fn X509_PURPOSE_get_count() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_get_by_id"]
+    pub fn X509_PURPOSE_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_get0_name"]
+    pub fn X509_PURPOSE_get0_name(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_get0_sname"]
+    pub fn X509_PURPOSE_get0_sname(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_X509_PURPOSE_get_trust"]
+    pub fn X509_PURPOSE_get_trust(xp: *const X509_PURPOSE) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_cert_id_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_CERTID = ocsp_cert_id_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_one_request_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_ONEREQ = ocsp_one_request_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_req_info_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_REQINFO = ocsp_req_info_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_signature_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_SIGNATURE = ocsp_signature_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_request_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_REQUEST = ocsp_request_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_resp_bytes_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_RESPBYTES = ocsp_resp_bytes_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_revoked_info_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_REVOKEDINFO = ocsp_revoked_info_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_cert_status_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_CERTSTATUS = ocsp_cert_status_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_single_response_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_SINGLERESP = ocsp_single_response_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_response_data_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_RESPDATA = ocsp_response_data_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_response_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_RESPONSE = ocsp_response_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_responder_id_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_RESPID = ocsp_responder_id_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ocsp_basic_response_st {
+    _unused: [u8; 0],
+}
+pub type OCSP_BASICRESP = ocsp_basic_response_st;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_OCSP_CERTID {
+    _unused: [u8; 0],
+}
+pub type sk_OCSP_CERTID_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_CERTID)>;
+pub type sk_OCSP_CERTID_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_CERTID) -> *mut OCSP_CERTID>;
+pub type sk_OCSP_CERTID_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const OCSP_CERTID,
+        arg2: *const *const OCSP_CERTID,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_OCSP_CERTID_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut OCSP_CERTID,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_OCSP_ONEREQ {
+    _unused: [u8; 0],
+}
+pub type sk_OCSP_ONEREQ_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_ONEREQ)>;
+pub type sk_OCSP_ONEREQ_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_ONEREQ) -> *mut OCSP_ONEREQ>;
+pub type sk_OCSP_ONEREQ_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const OCSP_ONEREQ,
+        arg2: *const *const OCSP_ONEREQ,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_OCSP_ONEREQ_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut OCSP_ONEREQ,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_OCSP_RESPID {
+    _unused: [u8; 0],
+}
+pub type sk_OCSP_RESPID_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_RESPID)>;
+pub type sk_OCSP_RESPID_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_RESPID) -> *mut OCSP_RESPID>;
+pub type sk_OCSP_RESPID_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const OCSP_RESPID,
+        arg2: *const *const OCSP_RESPID,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_OCSP_RESPID_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut OCSP_RESPID,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_OCSP_SINGLERESP {
+    _unused: [u8; 0],
+}
+pub type sk_OCSP_SINGLERESP_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_SINGLERESP)>;
+pub type sk_OCSP_SINGLERESP_copy_func = ::std::option::Option<
+    unsafe extern "C" fn(arg1: *const OCSP_SINGLERESP) -> *mut OCSP_SINGLERESP,
+>;
+pub type sk_OCSP_SINGLERESP_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const OCSP_SINGLERESP,
+        arg2: *const *const OCSP_SINGLERESP,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_OCSP_SINGLERESP_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut OCSP_SINGLERESP,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_BASICRESP_new"]
+    pub fn OCSP_BASICRESP_new() -> *mut OCSP_BASICRESP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_BASICRESP_free"]
+    pub fn OCSP_BASICRESP_free(a: *mut OCSP_BASICRESP);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_OCSP_BASICRESP"]
+    pub fn d2i_OCSP_BASICRESP(
+        a: *mut *mut OCSP_BASICRESP,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut OCSP_BASICRESP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_OCSP_BASICRESP"]
+    pub fn i2d_OCSP_BASICRESP(
+        a: *mut OCSP_BASICRESP,
+        out: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_BASICRESP_it"]
+    pub static OCSP_BASICRESP_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_RESPONSE_new"]
+    pub fn OCSP_RESPONSE_new() -> *mut OCSP_RESPONSE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_RESPONSE_free"]
+    pub fn OCSP_RESPONSE_free(a: *mut OCSP_RESPONSE);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_OCSP_RESPONSE"]
+    pub fn d2i_OCSP_RESPONSE(
+        a: *mut *mut OCSP_RESPONSE,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut OCSP_RESPONSE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_OCSP_RESPONSE"]
+    pub fn i2d_OCSP_RESPONSE(
+        a: *mut OCSP_RESPONSE,
+        out: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_RESPONSE_it"]
+    pub static OCSP_RESPONSE_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_CERTID_new"]
+    pub fn OCSP_CERTID_new() -> *mut OCSP_CERTID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_CERTID_free"]
+    pub fn OCSP_CERTID_free(a: *mut OCSP_CERTID);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_OCSP_CERTID"]
+    pub fn d2i_OCSP_CERTID(
+        a: *mut *mut OCSP_CERTID,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut OCSP_CERTID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_OCSP_CERTID"]
+    pub fn i2d_OCSP_CERTID(
+        a: *mut OCSP_CERTID,
+        out: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_CERTID_it"]
+    pub static OCSP_CERTID_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQUEST_new"]
+    pub fn OCSP_REQUEST_new() -> *mut OCSP_REQUEST;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQUEST_free"]
+    pub fn OCSP_REQUEST_free(a: *mut OCSP_REQUEST);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_OCSP_REQUEST"]
+    pub fn d2i_OCSP_REQUEST(
+        a: *mut *mut OCSP_REQUEST,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut OCSP_REQUEST;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_OCSP_REQUEST"]
+    pub fn i2d_OCSP_REQUEST(
+        a: *mut OCSP_REQUEST,
+        out: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQUEST_it"]
+    pub static OCSP_REQUEST_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_SINGLERESP_new"]
+    pub fn OCSP_SINGLERESP_new() -> *mut OCSP_SINGLERESP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_SINGLERESP_free"]
+    pub fn OCSP_SINGLERESP_free(a: *mut OCSP_SINGLERESP);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_OCSP_SINGLERESP"]
+    pub fn d2i_OCSP_SINGLERESP(
+        a: *mut *mut OCSP_SINGLERESP,
+        in_: *mut *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> *mut OCSP_SINGLERESP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_OCSP_SINGLERESP"]
+    pub fn i2d_OCSP_SINGLERESP(
+        a: *mut OCSP_SINGLERESP,
+        out: *mut *mut ::std::os::raw::c_uchar,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_SINGLERESP_it"]
+    pub static OCSP_SINGLERESP_it: ASN1_ITEM;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_OCSP_REQUEST_bio"]
+    pub fn d2i_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut *mut OCSP_REQUEST) -> *mut OCSP_REQUEST;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_OCSP_RESPONSE_bio"]
+    pub fn d2i_OCSP_RESPONSE_bio(
+        bp: *mut BIO,
+        presp: *mut *mut OCSP_RESPONSE,
+    ) -> *mut OCSP_RESPONSE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_OCSP_RESPONSE_bio"]
+    pub fn i2d_OCSP_RESPONSE_bio(bp: *mut BIO, presp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_OCSP_REQUEST_bio"]
+    pub fn i2d_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_CERTID_dup"]
+    pub fn OCSP_CERTID_dup(id: *mut OCSP_CERTID) -> *mut OCSP_CERTID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_sendreq_bio"]
+    pub fn OCSP_sendreq_bio(
+        b: *mut BIO,
+        path: *const ::std::os::raw::c_char,
+        req: *mut OCSP_REQUEST,
+    ) -> *mut OCSP_RESPONSE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_sendreq_new"]
+    pub fn OCSP_sendreq_new(
+        io: *mut BIO,
+        path: *const ::std::os::raw::c_char,
+        req: *mut OCSP_REQUEST,
+        maxline: ::std::os::raw::c_int,
+    ) -> *mut OCSP_REQ_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_sendreq_nbio"]
+    pub fn OCSP_sendreq_nbio(
+        presp: *mut *mut OCSP_RESPONSE,
+        rctx: *mut OCSP_REQ_CTX,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQ_CTX_new"]
+    pub fn OCSP_REQ_CTX_new(io: *mut BIO, maxline: ::std::os::raw::c_int) -> *mut OCSP_REQ_CTX;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQ_CTX_free"]
+    pub fn OCSP_REQ_CTX_free(rctx: *mut OCSP_REQ_CTX);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_set_max_response_length"]
+    pub fn OCSP_set_max_response_length(rctx: *mut OCSP_REQ_CTX, len: ::std::os::raw::c_ulong);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQ_CTX_http"]
+    pub fn OCSP_REQ_CTX_http(
+        rctx: *mut OCSP_REQ_CTX,
+        op: *const ::std::os::raw::c_char,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQ_CTX_set1_req"]
+    pub fn OCSP_REQ_CTX_set1_req(
+        rctx: *mut OCSP_REQ_CTX,
+        req: *mut OCSP_REQUEST,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQ_CTX_add1_header"]
+    pub fn OCSP_REQ_CTX_add1_header(
+        rctx: *mut OCSP_REQ_CTX,
+        name: *const ::std::os::raw::c_char,
+        value: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQ_CTX_i2d"]
+    pub fn OCSP_REQ_CTX_i2d(
+        rctx: *mut OCSP_REQ_CTX,
+        it: *const ASN1_ITEM,
+        val: *mut ASN1_VALUE,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_add0_id"]
+    pub fn OCSP_request_add0_id(req: *mut OCSP_REQUEST, cid: *mut OCSP_CERTID) -> *mut OCSP_ONEREQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_onereq_get0_id"]
+    pub fn OCSP_onereq_get0_id(one: *mut OCSP_ONEREQ) -> *mut OCSP_CERTID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_add1_nonce"]
+    pub fn OCSP_request_add1_nonce(
+        req: *mut OCSP_REQUEST,
+        val: *mut ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_basic_add1_nonce"]
+    pub fn OCSP_basic_add1_nonce(
+        resp: *mut OCSP_BASICRESP,
+        val: *mut ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_check_nonce"]
+    pub fn OCSP_check_nonce(
+        req: *mut OCSP_REQUEST,
+        bs: *mut OCSP_BASICRESP,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_copy_nonce"]
+    pub fn OCSP_copy_nonce(
+        resp: *mut OCSP_BASICRESP,
+        req: *mut OCSP_REQUEST,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_set1_name"]
+    pub fn OCSP_request_set1_name(
+        req: *mut OCSP_REQUEST,
+        nm: *mut X509_NAME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_add1_cert"]
+    pub fn OCSP_request_add1_cert(req: *mut OCSP_REQUEST, cert: *mut X509)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_is_signed"]
+    pub fn OCSP_request_is_signed(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_onereq_count"]
+    pub fn OCSP_request_onereq_count(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_onereq_get0"]
+    pub fn OCSP_request_onereq_get0(
+        req: *mut OCSP_REQUEST,
+        i: ::std::os::raw::c_int,
+    ) -> *mut OCSP_ONEREQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_sign"]
+    pub fn OCSP_request_sign(
+        req: *mut OCSP_REQUEST,
+        signer: *mut X509,
+        key: *mut EVP_PKEY,
+        dgst: *const EVP_MD,
+        certs: *mut stack_st_X509,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_response_status"]
+    pub fn OCSP_response_status(resp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_response_get1_basic"]
+    pub fn OCSP_response_get1_basic(resp: *mut OCSP_RESPONSE) -> *mut OCSP_BASICRESP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_resp_count"]
+    pub fn OCSP_resp_count(bs: *mut OCSP_BASICRESP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_resp_get0"]
+    pub fn OCSP_resp_get0(bs: *mut OCSP_BASICRESP, idx: usize) -> *mut OCSP_SINGLERESP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_single_get0_status"]
+    pub fn OCSP_single_get0_status(
+        single: *mut OCSP_SINGLERESP,
+        reason: *mut ::std::os::raw::c_int,
+        revtime: *mut *mut ASN1_GENERALIZEDTIME,
+        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
+        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_resp_find"]
+    pub fn OCSP_resp_find(
+        bs: *mut OCSP_BASICRESP,
+        id: *mut OCSP_CERTID,
+        last: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_resp_find_status"]
+    pub fn OCSP_resp_find_status(
+        bs: *mut OCSP_BASICRESP,
+        id: *mut OCSP_CERTID,
+        status: *mut ::std::os::raw::c_int,
+        reason: *mut ::std::os::raw::c_int,
+        revtime: *mut *mut ASN1_GENERALIZEDTIME,
+        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
+        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_check_validity"]
+    pub fn OCSP_check_validity(
+        thisUpdate: *mut ASN1_GENERALIZEDTIME,
+        nextUpdate: *mut ASN1_GENERALIZEDTIME,
+        drift_num_seconds: ::std::os::raw::c_long,
+        max_age_seconds: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_basic_verify"]
+    pub fn OCSP_basic_verify(
+        bs: *mut OCSP_BASICRESP,
+        certs: *mut stack_st_X509,
+        st: *mut X509_STORE,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_request_verify"]
+    pub fn OCSP_request_verify(
+        req: *mut OCSP_REQUEST,
+        certs: *mut stack_st_X509,
+        st: *mut X509_STORE,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_cert_id_new"]
+    pub fn OCSP_cert_id_new(
+        dgst: *const EVP_MD,
+        issuerName: *const X509_NAME,
+        issuerKey: *const ASN1_BIT_STRING,
+        serialNumber: *const ASN1_INTEGER,
+    ) -> *mut OCSP_CERTID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_cert_to_id"]
+    pub fn OCSP_cert_to_id(
+        dgst: *const EVP_MD,
+        subject: *const X509,
+        issuer: *const X509,
+    ) -> *mut OCSP_CERTID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_parse_url"]
+    pub fn OCSP_parse_url(
+        url: *const ::std::os::raw::c_char,
+        phost: *mut *mut ::std::os::raw::c_char,
+        pport: *mut *mut ::std::os::raw::c_char,
+        ppath: *mut *mut ::std::os::raw::c_char,
+        pssl: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_id_issuer_cmp"]
+    pub fn OCSP_id_issuer_cmp(
+        a: *const OCSP_CERTID,
+        b: *const OCSP_CERTID,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_id_cmp"]
+    pub fn OCSP_id_cmp(a: *const OCSP_CERTID, b: *const OCSP_CERTID) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_id_get0_info"]
+    pub fn OCSP_id_get0_info(
+        nameHash: *mut *mut ASN1_OCTET_STRING,
+        algor: *mut *mut ASN1_OBJECT,
+        keyHash: *mut *mut ASN1_OCTET_STRING,
+        serial: *mut *mut ASN1_INTEGER,
+        cid: *mut OCSP_CERTID,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_basic_add1_cert"]
+    pub fn OCSP_basic_add1_cert(
+        resp: *mut OCSP_BASICRESP,
+        cert: *mut X509,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_basic_add1_status"]
+    pub fn OCSP_basic_add1_status(
+        resp: *mut OCSP_BASICRESP,
+        cid: *mut OCSP_CERTID,
+        status: ::std::os::raw::c_int,
+        revoked_reason: ::std::os::raw::c_int,
+        revoked_time: *mut ASN1_TIME,
+        this_update: *mut ASN1_TIME,
+        next_update: *mut ASN1_TIME,
+    ) -> *mut OCSP_SINGLERESP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_basic_sign"]
+    pub fn OCSP_basic_sign(
+        resp: *mut OCSP_BASICRESP,
+        signer: *mut X509,
+        key: *mut EVP_PKEY,
+        dgst: *const EVP_MD,
+        certs: *mut stack_st_X509,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_response_create"]
+    pub fn OCSP_response_create(
+        status: ::std::os::raw::c_int,
+        bs: *mut OCSP_BASICRESP,
+    ) -> *mut OCSP_RESPONSE;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_SINGLERESP_get0_id"]
+    pub fn OCSP_SINGLERESP_get0_id(x: *const OCSP_SINGLERESP) -> *const OCSP_CERTID;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_response_status_str"]
+    pub fn OCSP_response_status_str(
+        status_code: ::std::os::raw::c_long,
+    ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_cert_status_str"]
+    pub fn OCSP_cert_status_str(
+        status_code: ::std::os::raw::c_long,
+    ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_crl_reason_str"]
+    pub fn OCSP_crl_reason_str(
+        status_code: ::std::os::raw::c_long,
+    ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_REQUEST_print"]
+    pub fn OCSP_REQUEST_print(
+        bp: *mut BIO,
+        req: *mut OCSP_REQUEST,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_RESPONSE_print"]
+    pub fn OCSP_RESPONSE_print(
+        bp: *mut BIO,
+        resp: *mut OCSP_RESPONSE,
+        flags: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_BASICRESP_get_ext_by_NID"]
+    pub fn OCSP_BASICRESP_get_ext_by_NID(
+        bs: *mut OCSP_BASICRESP,
+        nid: ::std::os::raw::c_int,
+        lastpos: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_BASICRESP_get_ext"]
+    pub fn OCSP_BASICRESP_get_ext(
+        bs: *mut OCSP_BASICRESP,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_BASICRESP_delete_ext"]
+    pub fn OCSP_BASICRESP_delete_ext(
+        x: *mut OCSP_BASICRESP,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_EXTENSION;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_SINGLERESP_add_ext"]
+    pub fn OCSP_SINGLERESP_add_ext(
+        sresp: *mut OCSP_SINGLERESP,
+        ex: *mut X509_EXTENSION,
+        loc: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_SINGLERESP_get_ext_count"]
+    pub fn OCSP_SINGLERESP_get_ext_count(sresp: *mut OCSP_SINGLERESP) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_OCSP_SINGLERESP_get_ext"]
+    pub fn OCSP_SINGLERESP_get_ext(
+        sresp: *mut OCSP_SINGLERESP,
+        loc: ::std::os::raw::c_int,
+    ) -> *mut X509_EXTENSION;
+}
+pub type pem_password_cb = ::std::option::Option<
+    unsafe extern "C" fn(
+        buf: *mut ::std::os::raw::c_char,
+        size: ::std::os::raw::c_int,
+        rwflag: ::std::os::raw::c_int,
+        userdata: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_get_EVP_CIPHER_INFO"]
+    pub fn PEM_get_EVP_CIPHER_INFO(
+        header: *mut ::std::os::raw::c_char,
+        cipher: *mut EVP_CIPHER_INFO,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_do_header"]
+    pub fn PEM_do_header(
+        cipher: *mut EVP_CIPHER_INFO,
+        data: *mut ::std::os::raw::c_uchar,
+        len: *mut ::std::os::raw::c_long,
+        callback: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio"]
+    pub fn PEM_read_bio(
+        bp: *mut BIO,
+        name: *mut *mut ::std::os::raw::c_char,
+        header: *mut *mut ::std::os::raw::c_char,
+        data: *mut *mut ::std::os::raw::c_uchar,
+        len: *mut ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio"]
+    pub fn PEM_write_bio(
+        bp: *mut BIO,
+        name: *const ::std::os::raw::c_char,
+        hdr: *const ::std::os::raw::c_char,
+        data: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_bytes_read_bio"]
+    pub fn PEM_bytes_read_bio(
+        pdata: *mut *mut ::std::os::raw::c_uchar,
+        plen: *mut ::std::os::raw::c_long,
+        pnm: *mut *mut ::std::os::raw::c_char,
+        name: *const ::std::os::raw::c_char,
+        bp: *mut BIO,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_ASN1_read_bio"]
+    pub fn PEM_ASN1_read_bio(
+        d2i: d2i_of_void,
+        name: *const ::std::os::raw::c_char,
+        bp: *mut BIO,
+        x: *mut *mut ::std::os::raw::c_void,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_ASN1_write_bio"]
+    pub fn PEM_ASN1_write_bio(
+        i2d: i2d_of_void,
+        name: *const ::std::os::raw::c_char,
+        bp: *mut BIO,
+        x: *mut ::std::os::raw::c_void,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_X509_INFO_read_bio"]
+    pub fn PEM_X509_INFO_read_bio(
+        bp: *mut BIO,
+        sk: *mut stack_st_X509_INFO,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut stack_st_X509_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_X509_INFO_read"]
+    pub fn PEM_X509_INFO_read(
+        fp: *mut FILE,
+        sk: *mut stack_st_X509_INFO,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut stack_st_X509_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read"]
+    pub fn PEM_read(
+        fp: *mut FILE,
+        name: *mut *mut ::std::os::raw::c_char,
+        header: *mut *mut ::std::os::raw::c_char,
+        data: *mut *mut ::std::os::raw::c_uchar,
+        len: *mut ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write"]
+    pub fn PEM_write(
+        fp: *mut FILE,
+        name: *const ::std::os::raw::c_char,
+        hdr: *const ::std::os::raw::c_char,
+        data: *const ::std::os::raw::c_uchar,
+        len: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_ASN1_read"]
+    pub fn PEM_ASN1_read(
+        d2i: d2i_of_void,
+        name: *const ::std::os::raw::c_char,
+        fp: *mut FILE,
+        x: *mut *mut ::std::os::raw::c_void,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_ASN1_write"]
+    pub fn PEM_ASN1_write(
+        i2d: i2d_of_void,
+        name: *const ::std::os::raw::c_char,
+        fp: *mut FILE,
+        x: *mut ::std::os::raw::c_void,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        callback: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_def_callback"]
+    pub fn PEM_def_callback(
+        buf: *mut ::std::os::raw::c_char,
+        size: ::std::os::raw::c_int,
+        rwflag: ::std::os::raw::c_int,
+        userdata: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_X509"]
+    pub fn PEM_read_bio_X509(
+        bp: *mut BIO,
+        x: *mut *mut X509,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_X509"]
+    pub fn PEM_read_X509(
+        fp: *mut FILE,
+        x: *mut *mut X509,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_X509"]
+    pub fn PEM_write_bio_X509(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_X509"]
+    pub fn PEM_write_X509(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_X509_AUX"]
+    pub fn PEM_read_bio_X509_AUX(
+        bp: *mut BIO,
+        x: *mut *mut X509,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_X509_AUX"]
+    pub fn PEM_read_X509_AUX(
+        fp: *mut FILE,
+        x: *mut *mut X509,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_X509_AUX"]
+    pub fn PEM_write_bio_X509_AUX(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_X509_AUX"]
+    pub fn PEM_write_X509_AUX(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_X509_REQ"]
+    pub fn PEM_read_bio_X509_REQ(
+        bp: *mut BIO,
+        x: *mut *mut X509_REQ,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509_REQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_X509_REQ"]
+    pub fn PEM_read_X509_REQ(
+        fp: *mut FILE,
+        x: *mut *mut X509_REQ,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509_REQ;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_X509_REQ"]
+    pub fn PEM_write_bio_X509_REQ(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_X509_REQ"]
+    pub fn PEM_write_X509_REQ(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_X509_REQ_NEW"]
+    pub fn PEM_write_bio_X509_REQ_NEW(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_X509_REQ_NEW"]
+    pub fn PEM_write_X509_REQ_NEW(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_X509_CRL"]
+    pub fn PEM_read_bio_X509_CRL(
+        bp: *mut BIO,
+        x: *mut *mut X509_CRL,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_X509_CRL"]
+    pub fn PEM_read_X509_CRL(
+        fp: *mut FILE,
+        x: *mut *mut X509_CRL,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509_CRL;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_X509_CRL"]
+    pub fn PEM_write_bio_X509_CRL(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_X509_CRL"]
+    pub fn PEM_write_X509_CRL(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_PKCS7"]
+    pub fn PEM_read_bio_PKCS7(
+        bp: *mut BIO,
+        x: *mut *mut PKCS7,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_PKCS7"]
+    pub fn PEM_read_PKCS7(
+        fp: *mut FILE,
+        x: *mut *mut PKCS7,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut PKCS7;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_PKCS7"]
+    pub fn PEM_write_bio_PKCS7(bp: *mut BIO, x: *mut PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_PKCS7"]
+    pub fn PEM_write_PKCS7(fp: *mut FILE, x: *mut PKCS7) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_PKCS8"]
+    pub fn PEM_read_bio_PKCS8(
+        bp: *mut BIO,
+        x: *mut *mut X509_SIG,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_PKCS8"]
+    pub fn PEM_read_PKCS8(
+        fp: *mut FILE,
+        x: *mut *mut X509_SIG,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut X509_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_PKCS8"]
+    pub fn PEM_write_bio_PKCS8(bp: *mut BIO, x: *mut X509_SIG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_PKCS8"]
+    pub fn PEM_write_PKCS8(fp: *mut FILE, x: *mut X509_SIG) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_PKCS8_PRIV_KEY_INFO"]
+    pub fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(
+        bp: *mut BIO,
+        x: *mut *mut PKCS8_PRIV_KEY_INFO,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_PKCS8_PRIV_KEY_INFO"]
+    pub fn PEM_read_PKCS8_PRIV_KEY_INFO(
+        fp: *mut FILE,
+        x: *mut *mut PKCS8_PRIV_KEY_INFO,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_PKCS8_PRIV_KEY_INFO"]
+    pub fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(
+        bp: *mut BIO,
+        x: *mut PKCS8_PRIV_KEY_INFO,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_PKCS8_PRIV_KEY_INFO"]
+    pub fn PEM_write_PKCS8_PRIV_KEY_INFO(
+        fp: *mut FILE,
+        x: *mut PKCS8_PRIV_KEY_INFO,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_RSAPrivateKey"]
+    pub fn PEM_read_bio_RSAPrivateKey(
+        bp: *mut BIO,
+        x: *mut *mut RSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_RSAPrivateKey"]
+    pub fn PEM_read_RSAPrivateKey(
+        fp: *mut FILE,
+        x: *mut *mut RSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_RSAPrivateKey"]
+    pub fn PEM_write_bio_RSAPrivateKey(
+        bp: *mut BIO,
+        x: *mut RSA,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_RSAPrivateKey"]
+    pub fn PEM_write_RSAPrivateKey(
+        fp: *mut FILE,
+        x: *mut RSA,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_RSAPublicKey"]
+    pub fn PEM_read_bio_RSAPublicKey(
+        bp: *mut BIO,
+        x: *mut *mut RSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_RSAPublicKey"]
+    pub fn PEM_read_RSAPublicKey(
+        fp: *mut FILE,
+        x: *mut *mut RSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_RSAPublicKey"]
+    pub fn PEM_write_bio_RSAPublicKey(bp: *mut BIO, x: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_RSAPublicKey"]
+    pub fn PEM_write_RSAPublicKey(fp: *mut FILE, x: *const RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_RSA_PUBKEY"]
+    pub fn PEM_read_bio_RSA_PUBKEY(
+        bp: *mut BIO,
+        x: *mut *mut RSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_RSA_PUBKEY"]
+    pub fn PEM_read_RSA_PUBKEY(
+        fp: *mut FILE,
+        x: *mut *mut RSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut RSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_RSA_PUBKEY"]
+    pub fn PEM_write_bio_RSA_PUBKEY(bp: *mut BIO, x: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_RSA_PUBKEY"]
+    pub fn PEM_write_RSA_PUBKEY(fp: *mut FILE, x: *mut RSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_DSAPrivateKey"]
+    pub fn PEM_read_bio_DSAPrivateKey(
+        bp: *mut BIO,
+        x: *mut *mut DSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_DSAPrivateKey"]
+    pub fn PEM_read_DSAPrivateKey(
+        fp: *mut FILE,
+        x: *mut *mut DSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_DSAPrivateKey"]
+    pub fn PEM_write_bio_DSAPrivateKey(
+        bp: *mut BIO,
+        x: *mut DSA,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_DSAPrivateKey"]
+    pub fn PEM_write_DSAPrivateKey(
+        fp: *mut FILE,
+        x: *mut DSA,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_DSA_PUBKEY"]
+    pub fn PEM_read_bio_DSA_PUBKEY(
+        bp: *mut BIO,
+        x: *mut *mut DSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_DSA_PUBKEY"]
+    pub fn PEM_read_DSA_PUBKEY(
+        fp: *mut FILE,
+        x: *mut *mut DSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_DSA_PUBKEY"]
+    pub fn PEM_write_bio_DSA_PUBKEY(bp: *mut BIO, x: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_DSA_PUBKEY"]
+    pub fn PEM_write_DSA_PUBKEY(fp: *mut FILE, x: *mut DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_DSAparams"]
+    pub fn PEM_read_bio_DSAparams(
+        bp: *mut BIO,
+        x: *mut *mut DSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_DSAparams"]
+    pub fn PEM_read_DSAparams(
+        fp: *mut FILE,
+        x: *mut *mut DSA,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut DSA;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_DSAparams"]
+    pub fn PEM_write_bio_DSAparams(bp: *mut BIO, x: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_DSAparams"]
+    pub fn PEM_write_DSAparams(fp: *mut FILE, x: *const DSA) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_ECPrivateKey"]
+    pub fn PEM_read_bio_ECPrivateKey(
+        bp: *mut BIO,
+        x: *mut *mut EC_KEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_ECPrivateKey"]
+    pub fn PEM_read_ECPrivateKey(
+        fp: *mut FILE,
+        x: *mut *mut EC_KEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_ECPrivateKey"]
+    pub fn PEM_write_bio_ECPrivateKey(
+        bp: *mut BIO,
+        x: *mut EC_KEY,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_ECPrivateKey"]
+    pub fn PEM_write_ECPrivateKey(
+        fp: *mut FILE,
+        x: *mut EC_KEY,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_EC_PUBKEY"]
+    pub fn PEM_read_bio_EC_PUBKEY(
+        bp: *mut BIO,
+        x: *mut *mut EC_KEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_EC_PUBKEY"]
+    pub fn PEM_read_EC_PUBKEY(
+        fp: *mut FILE,
+        x: *mut *mut EC_KEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EC_KEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_EC_PUBKEY"]
+    pub fn PEM_write_bio_EC_PUBKEY(bp: *mut BIO, x: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_EC_PUBKEY"]
+    pub fn PEM_write_EC_PUBKEY(fp: *mut FILE, x: *mut EC_KEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_DHparams"]
+    pub fn PEM_read_bio_DHparams(
+        bp: *mut BIO,
+        x: *mut *mut DH,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_DHparams"]
+    pub fn PEM_read_DHparams(
+        fp: *mut FILE,
+        x: *mut *mut DH,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut DH;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_DHparams"]
+    pub fn PEM_write_bio_DHparams(bp: *mut BIO, x: *const DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_DHparams"]
+    pub fn PEM_write_DHparams(fp: *mut FILE, x: *const DH) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_PrivateKey"]
+    pub fn PEM_read_bio_PrivateKey(
+        bp: *mut BIO,
+        x: *mut *mut EVP_PKEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_PrivateKey"]
+    pub fn PEM_read_PrivateKey(
+        fp: *mut FILE,
+        x: *mut *mut EVP_PKEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_PrivateKey"]
+    pub fn PEM_write_bio_PrivateKey(
+        bp: *mut BIO,
+        x: *mut EVP_PKEY,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_PrivateKey"]
+    pub fn PEM_write_PrivateKey(
+        fp: *mut FILE,
+        x: *mut EVP_PKEY,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_uchar,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_PUBKEY"]
+    pub fn PEM_read_bio_PUBKEY(
+        bp: *mut BIO,
+        x: *mut *mut EVP_PKEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_PUBKEY"]
+    pub fn PEM_read_PUBKEY(
+        fp: *mut FILE,
+        x: *mut *mut EVP_PKEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_PUBKEY"]
+    pub fn PEM_write_bio_PUBKEY(bp: *mut BIO, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_PUBKEY"]
+    pub fn PEM_write_PUBKEY(fp: *mut FILE, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_PKCS8PrivateKey_nid"]
+    pub fn PEM_write_bio_PKCS8PrivateKey_nid(
+        bp: *mut BIO,
+        x: *const EVP_PKEY,
+        nid: ::std::os::raw::c_int,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_PKCS8PrivateKey"]
+    pub fn PEM_write_bio_PKCS8PrivateKey(
+        bp: *mut BIO,
+        x: *const EVP_PKEY,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8PrivateKey_bio"]
+    pub fn i2d_PKCS8PrivateKey_bio(
+        bp: *mut BIO,
+        x: *const EVP_PKEY,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8PrivateKey_nid_bio"]
+    pub fn i2d_PKCS8PrivateKey_nid_bio(
+        bp: *mut BIO,
+        x: *const EVP_PKEY,
+        nid: ::std::os::raw::c_int,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS8PrivateKey_bio"]
+    pub fn d2i_PKCS8PrivateKey_bio(
+        bp: *mut BIO,
+        x: *mut *mut EVP_PKEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8PrivateKey_fp"]
+    pub fn i2d_PKCS8PrivateKey_fp(
+        fp: *mut FILE,
+        x: *const EVP_PKEY,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS8PrivateKey_nid_fp"]
+    pub fn i2d_PKCS8PrivateKey_nid_fp(
+        fp: *mut FILE,
+        x: *const EVP_PKEY,
+        nid: ::std::os::raw::c_int,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_PKCS8PrivateKey_nid"]
+    pub fn PEM_write_PKCS8PrivateKey_nid(
+        fp: *mut FILE,
+        x: *const EVP_PKEY,
+        nid: ::std::os::raw::c_int,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS8PrivateKey_fp"]
+    pub fn d2i_PKCS8PrivateKey_fp(
+        fp: *mut FILE,
+        x: *mut *mut EVP_PKEY,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_PKCS8PrivateKey"]
+    pub fn PEM_write_PKCS8PrivateKey(
+        fp: *mut FILE,
+        x: *const EVP_PKEY,
+        enc: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        cd: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_Parameters"]
+    pub fn PEM_read_bio_Parameters(bio: *mut BIO, pkey: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_Parameters"]
+    pub fn PEM_write_bio_Parameters(bio: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_read_bio_ECPKParameters"]
+    pub fn PEM_read_bio_ECPKParameters(
+        bio: *mut BIO,
+        out_group: *mut *mut EC_GROUP,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> *mut EC_GROUP;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_ECPKParameters"]
+    pub fn PEM_write_bio_ECPKParameters(
+        out: *mut BIO,
+        group: *const EC_GROUP,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PEM_write_bio_PrivateKey_traditional"]
+    pub fn PEM_write_bio_PrivateKey_traditional(
+        bp: *mut BIO,
+        x: *mut EVP_PKEY,
+        enc: *const EVP_CIPHER,
+        kstr: *mut ::std::os::raw::c_uchar,
+        klen: ::std::os::raw::c_int,
+        cb: pem_password_cb,
+        u: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS8_encrypt"]
+    pub fn PKCS8_encrypt(
+        pbe_nid: ::std::os::raw::c_int,
+        cipher: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+        salt: *const u8,
+        salt_len: usize,
+        iterations: ::std::os::raw::c_int,
+        p8inf: *mut PKCS8_PRIV_KEY_INFO,
+    ) -> *mut X509_SIG;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS8_marshal_encrypted_private_key"]
+    pub fn PKCS8_marshal_encrypted_private_key(
+        out: *mut CBB,
+        pbe_nid: ::std::os::raw::c_int,
+        cipher: *const EVP_CIPHER,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: usize,
+        salt: *const u8,
+        salt_len: usize,
+        iterations: ::std::os::raw::c_int,
+        pkey: *const EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS8_decrypt"]
+    pub fn PKCS8_decrypt(
+        pkcs8: *mut X509_SIG,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: ::std::os::raw::c_int,
+    ) -> *mut PKCS8_PRIV_KEY_INFO;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS8_parse_encrypted_private_key"]
+    pub fn PKCS8_parse_encrypted_private_key(
+        cbs: *mut CBS,
+        pass: *const ::std::os::raw::c_char,
+        pass_len: usize,
+    ) -> *mut EVP_PKEY;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS12_get_key_and_certs"]
+    pub fn PKCS12_get_key_and_certs(
+        out_key: *mut *mut EVP_PKEY,
+        out_certs: *mut stack_st_X509,
+        in_: *mut CBS,
+        password: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS12_PBE_add"]
+    pub fn PKCS12_PBE_add();
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS12"]
+    pub fn d2i_PKCS12(
+        out_p12: *mut *mut PKCS12,
+        ber_bytes: *mut *const u8,
+        ber_len: usize,
+    ) -> *mut PKCS12;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS12_bio"]
+    pub fn d2i_PKCS12_bio(bio: *mut BIO, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_d2i_PKCS12_fp"]
+    pub fn d2i_PKCS12_fp(fp: *mut FILE, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS12"]
+    pub fn i2d_PKCS12(p12: *const PKCS12, out: *mut *mut u8) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS12_bio"]
+    pub fn i2d_PKCS12_bio(bio: *mut BIO, p12: *const PKCS12) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_i2d_PKCS12_fp"]
+    pub fn i2d_PKCS12_fp(fp: *mut FILE, p12: *const PKCS12) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS12_parse"]
+    pub fn PKCS12_parse(
+        p12: *const PKCS12,
+        password: *const ::std::os::raw::c_char,
+        out_pkey: *mut *mut EVP_PKEY,
+        out_cert: *mut *mut X509,
+        out_ca_certs: *mut *mut stack_st_X509,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS12_verify_mac"]
+    pub fn PKCS12_verify_mac(
+        p12: *const PKCS12,
+        password: *const ::std::os::raw::c_char,
+        password_len: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS12_create"]
+    pub fn PKCS12_create(
+        password: *const ::std::os::raw::c_char,
+        name: *const ::std::os::raw::c_char,
+        pkey: *const EVP_PKEY,
+        cert: *mut X509,
+        chain: *const stack_st_X509,
+        key_nid: ::std::os::raw::c_int,
+        cert_nid: ::std::os::raw::c_int,
+        iterations: ::std::os::raw::c_int,
+        mac_iterations: ::std::os::raw::c_int,
+        key_type: ::std::os::raw::c_int,
+    ) -> *mut PKCS12;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS12_new"]
+    pub fn PKCS12_new() -> *mut PKCS12;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_PKCS12_free"]
+    pub fn PKCS12_free(p12: *mut PKCS12);
+}
+pub type poly1305_state = [u8; 512usize];
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_poly1305_init"]
+    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_poly1305_update"]
+    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_CRYPTO_poly1305_finish"]
+    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_bytes"]
+    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_priv_bytes"]
+    pub fn RAND_priv_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_enable_fork_unsafe_buffering"]
+    pub fn RAND_enable_fork_unsafe_buffering(fd: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_get_system_entropy_for_custom_prng"]
+    pub fn RAND_get_system_entropy_for_custom_prng(buf: *mut u8, len: usize);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_pseudo_bytes"]
+    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_seed"]
+    pub fn RAND_seed(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_load_file"]
+    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" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_write_file"]
+    pub fn RAND_write_file(file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_file_name"]
+    pub fn RAND_file_name(
+        buf: *mut ::std::os::raw::c_char,
+        num: usize,
+    ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_add"]
+    pub fn RAND_add(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int, entropy: f64);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_egd"]
+    pub fn RAND_egd(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_egd_bytes"]
+    pub fn RAND_egd_bytes(
+        arg1: *const ::std::os::raw::c_char,
+        bytes: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_poll"]
+    pub fn RAND_poll() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_status"]
+    pub fn RAND_status() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_cleanup"]
+    pub fn RAND_cleanup();
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<rand_meth_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).seed) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rand_meth_st),
+            "::",
+            stringify!(seed)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rand_meth_st),
+            "::",
+            stringify!(bytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cleanup) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rand_meth_st),
+            "::",
+            stringify!(cleanup)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rand_meth_st),
+            "::",
+            stringify!(add)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pseudorand) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rand_meth_st),
+            "::",
+            stringify!(pseudorand)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rand_meth_st),
+            "::",
+            stringify!(status)
+        )
+    );
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_SSLeay"]
+    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_OpenSSL"]
+    pub fn RAND_OpenSSL() -> *mut RAND_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_get_rand_method"]
+    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_set_rand_method"]
+    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RAND_keep_random_devices_open"]
+    pub fn RAND_keep_random_devices_open(a: ::std::os::raw::c_int);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct rc4_key_st {
+    pub x: u32,
+    pub y: u32,
+    pub data: [u32; 256usize],
+}
+#[test]
+fn bindgen_test_layout_rc4_key_st() {
+    const UNINIT: ::std::mem::MaybeUninit<rc4_key_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rc4_key_st>(),
+        1032usize,
+        concat!("Size of: ", stringify!(rc4_key_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rc4_key_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(rc4_key_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rc4_key_st),
+            "::",
+            stringify!(x)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rc4_key_st),
+            "::",
+            stringify!(y)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rc4_key_st),
+            "::",
+            stringify!(data)
+        )
+    );
+}
+impl Default for rc4_key_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RC4_set_key"]
+    pub fn RC4_set_key(rc4key: *mut RC4_KEY, len: ::std::os::raw::c_uint, key: *const u8);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RC4"]
+    pub fn RC4(key: *mut RC4_KEY, len: usize, in_: *const u8, out: *mut u8);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct RIPEMD160state_st {
+    pub h: [u32; 5usize],
+    pub Nl: u32,
+    pub Nh: u32,
+    pub data: [u8; 64usize],
+    pub num: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_RIPEMD160state_st() {
+    const UNINIT: ::std::mem::MaybeUninit<RIPEMD160state_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<RIPEMD160state_st>(),
+        96usize,
+        concat!("Size of: ", stringify!(RIPEMD160state_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<RIPEMD160state_st>(),
+        4usize,
+        concat!("Alignment of ", stringify!(RIPEMD160state_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(RIPEMD160state_st),
+            "::",
+            stringify!(h)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(RIPEMD160state_st),
+            "::",
+            stringify!(Nl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(RIPEMD160state_st),
+            "::",
+            stringify!(Nh)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(RIPEMD160state_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
+        92usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(RIPEMD160state_st),
+            "::",
+            stringify!(num)
+        )
+    );
+}
+impl Default for RIPEMD160state_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RIPEMD160_Init"]
+    pub fn RIPEMD160_Init(ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RIPEMD160_Update"]
+    pub fn RIPEMD160_Update(
+        ctx: *mut RIPEMD160_CTX,
+        data: *const ::std::os::raw::c_void,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RIPEMD160_Final"]
+    pub fn RIPEMD160_Final(out: *mut u8, ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_RIPEMD160"]
+    pub fn RIPEMD160(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_SIPHASH_24"]
+    pub fn SIPHASH_24(key: *const u64, input: *const u8, input_len: usize) -> u64;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_experiment_v1"]
+    pub fn TRUST_TOKEN_experiment_v1() -> *const TRUST_TOKEN_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_experiment_v2_voprf"]
+    pub fn TRUST_TOKEN_experiment_v2_voprf() -> *const TRUST_TOKEN_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_experiment_v2_pmb"]
+    pub fn TRUST_TOKEN_experiment_v2_pmb() -> *const TRUST_TOKEN_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_pst_v1_voprf"]
+    pub fn TRUST_TOKEN_pst_v1_voprf() -> *const TRUST_TOKEN_METHOD;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_pst_v1_pmb"]
+    pub fn TRUST_TOKEN_pst_v1_pmb() -> *const TRUST_TOKEN_METHOD;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+pub struct trust_token_st {
+    pub data: *mut u8,
+    pub len: usize,
+}
+#[test]
+fn bindgen_test_layout_trust_token_st() {
+    const UNINIT: ::std::mem::MaybeUninit<trust_token_st> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<trust_token_st>(),
+        16usize,
+        concat!("Size of: ", stringify!(trust_token_st))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<trust_token_st>(),
+        8usize,
+        concat!("Alignment of ", stringify!(trust_token_st))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(trust_token_st),
+            "::",
+            stringify!(data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(trust_token_st),
+            "::",
+            stringify!(len)
+        )
+    );
+}
+impl Default for trust_token_st {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stack_st_TRUST_TOKEN {
+    _unused: [u8; 0],
+}
+pub type sk_TRUST_TOKEN_free_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *mut TRUST_TOKEN)>;
+pub type sk_TRUST_TOKEN_copy_func =
+    ::std::option::Option<unsafe extern "C" fn(arg1: *const TRUST_TOKEN) -> *mut TRUST_TOKEN>;
+pub type sk_TRUST_TOKEN_cmp_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *const *const TRUST_TOKEN,
+        arg2: *const *const TRUST_TOKEN,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type sk_TRUST_TOKEN_delete_if_func = ::std::option::Option<
+    unsafe extern "C" fn(
+        arg1: *mut TRUST_TOKEN,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_new"]
+    pub fn TRUST_TOKEN_new(data: *const u8, len: usize) -> *mut TRUST_TOKEN;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_free"]
+    pub fn TRUST_TOKEN_free(token: *mut TRUST_TOKEN);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_generate_key"]
+    pub fn TRUST_TOKEN_generate_key(
+        method: *const TRUST_TOKEN_METHOD,
+        out_priv_key: *mut u8,
+        out_priv_key_len: *mut usize,
+        max_priv_key_len: usize,
+        out_pub_key: *mut u8,
+        out_pub_key_len: *mut usize,
+        max_pub_key_len: usize,
+        id: u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_derive_key_from_secret"]
+    pub fn TRUST_TOKEN_derive_key_from_secret(
+        method: *const TRUST_TOKEN_METHOD,
+        out_priv_key: *mut u8,
+        out_priv_key_len: *mut usize,
+        max_priv_key_len: usize,
+        out_pub_key: *mut u8,
+        out_pub_key_len: *mut usize,
+        max_pub_key_len: usize,
+        id: u32,
+        secret: *const u8,
+        secret_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_new"]
+    pub fn TRUST_TOKEN_CLIENT_new(
+        method: *const TRUST_TOKEN_METHOD,
+        max_batchsize: usize,
+    ) -> *mut TRUST_TOKEN_CLIENT;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_free"]
+    pub fn TRUST_TOKEN_CLIENT_free(ctx: *mut TRUST_TOKEN_CLIENT);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_add_key"]
+    pub fn TRUST_TOKEN_CLIENT_add_key(
+        ctx: *mut TRUST_TOKEN_CLIENT,
+        out_key_index: *mut usize,
+        key: *const u8,
+        key_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_set_srr_key"]
+    pub fn TRUST_TOKEN_CLIENT_set_srr_key(
+        ctx: *mut TRUST_TOKEN_CLIENT,
+        key: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_begin_issuance"]
+    pub fn TRUST_TOKEN_CLIENT_begin_issuance(
+        ctx: *mut TRUST_TOKEN_CLIENT,
+        out: *mut *mut u8,
+        out_len: *mut usize,
+        count: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_begin_issuance_over_message"]
+    pub fn TRUST_TOKEN_CLIENT_begin_issuance_over_message(
+        ctx: *mut TRUST_TOKEN_CLIENT,
+        out: *mut *mut u8,
+        out_len: *mut usize,
+        count: usize,
+        msg: *const u8,
+        msg_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_finish_issuance"]
+    pub fn TRUST_TOKEN_CLIENT_finish_issuance(
+        ctx: *mut TRUST_TOKEN_CLIENT,
+        out_key_index: *mut usize,
+        response: *const u8,
+        response_len: usize,
+    ) -> *mut stack_st_TRUST_TOKEN;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_begin_redemption"]
+    pub fn TRUST_TOKEN_CLIENT_begin_redemption(
+        ctx: *mut TRUST_TOKEN_CLIENT,
+        out: *mut *mut u8,
+        out_len: *mut usize,
+        token: *const TRUST_TOKEN,
+        data: *const u8,
+        data_len: usize,
+        time: u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_CLIENT_finish_redemption"]
+    pub fn TRUST_TOKEN_CLIENT_finish_redemption(
+        ctx: *mut TRUST_TOKEN_CLIENT,
+        out_rr: *mut *mut u8,
+        out_rr_len: *mut usize,
+        out_sig: *mut *mut u8,
+        out_sig_len: *mut usize,
+        response: *const u8,
+        response_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_ISSUER_new"]
+    pub fn TRUST_TOKEN_ISSUER_new(
+        method: *const TRUST_TOKEN_METHOD,
+        max_batchsize: usize,
+    ) -> *mut TRUST_TOKEN_ISSUER;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_ISSUER_free"]
+    pub fn TRUST_TOKEN_ISSUER_free(ctx: *mut TRUST_TOKEN_ISSUER);
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_ISSUER_add_key"]
+    pub fn TRUST_TOKEN_ISSUER_add_key(
+        ctx: *mut TRUST_TOKEN_ISSUER,
+        key: *const u8,
+        key_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_ISSUER_set_srr_key"]
+    pub fn TRUST_TOKEN_ISSUER_set_srr_key(
+        ctx: *mut TRUST_TOKEN_ISSUER,
+        key: *mut EVP_PKEY,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_ISSUER_set_metadata_key"]
+    pub fn TRUST_TOKEN_ISSUER_set_metadata_key(
+        ctx: *mut TRUST_TOKEN_ISSUER,
+        key: *const u8,
+        len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_ISSUER_issue"]
+    pub fn TRUST_TOKEN_ISSUER_issue(
+        ctx: *const TRUST_TOKEN_ISSUER,
+        out: *mut *mut u8,
+        out_len: *mut usize,
+        out_tokens_issued: *mut usize,
+        request: *const u8,
+        request_len: usize,
+        public_metadata: u32,
+        private_metadata: u8,
+        max_issuance: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_ISSUER_redeem"]
+    pub fn TRUST_TOKEN_ISSUER_redeem(
+        ctx: *const TRUST_TOKEN_ISSUER,
+        out_public: *mut u32,
+        out_private: *mut u8,
+        out_token: *mut *mut TRUST_TOKEN,
+        out_client_data: *mut *mut u8,
+        out_client_data_len: *mut usize,
+        request: *const u8,
+        request_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_ISSUER_redeem_over_message"]
+    pub fn TRUST_TOKEN_ISSUER_redeem_over_message(
+        ctx: *const TRUST_TOKEN_ISSUER,
+        out_public: *mut u32,
+        out_private: *mut u8,
+        out_token: *mut *mut TRUST_TOKEN,
+        out_client_data: *mut *mut u8,
+        out_client_data_len: *mut usize,
+        request: *const u8,
+        request_len: usize,
+        msg: *const u8,
+        msg_len: usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_TRUST_TOKEN_decode_private_metadata"]
+    pub fn TRUST_TOKEN_decode_private_metadata(
+        method: *const TRUST_TOKEN_METHOD,
+        out_value: *mut u8,
+        key: *const u8,
+        key_len: usize,
+        nonce: *const u8,
+        nonce_len: usize,
+        encrypted_bit: u8,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_keygen_deterministic"]
+    pub fn EVP_PKEY_keygen_deterministic(
+        ctx: *mut EVP_PKEY_CTX,
+        out_pkey: *mut *mut EVP_PKEY,
+        seed: *const u8,
+        seed_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_EVP_PKEY_encapsulate_deterministic"]
+    pub fn EVP_PKEY_encapsulate_deterministic(
+        ctx: *mut EVP_PKEY_CTX,
+        ciphertext: *mut u8,
+        ciphertext_len: *mut usize,
+        shared_secret: *mut u8,
+        shared_secret_len: *mut usize,
+        seed: *const u8,
+        seed_len: *mut usize,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_GET_LIB_RUST"]
+    pub fn ERR_GET_LIB_RUST(packed_error: u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_GET_REASON_RUST"]
+    pub fn ERR_GET_REASON_RUST(packed_error: u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    #[link_name = "\u{1}aws_lc_0_25_0_ERR_GET_FUNC_RUST"]
+    pub fn ERR_GET_FUNC_RUST(packed_error: u32) -> ::std::os::raw::c_int;
+}
+pub type __builtin_va_list = [__va_list_tag; 1usize];
+#[repr(C)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq)]
+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() {
+    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    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::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(gp_offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(fp_offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(overflow_arg_area)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(reg_save_area)
+        )
+    );
+}
+impl Default for __va_list_tag {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
+pub struct CRYPTO_dynlock_value {
+    pub _address: u8,
+}
diff --git a/docker/alpine-3.20/Dockerfile b/docker/alpine-3.20/Dockerfile
new file mode 100644
index 00000000000..d8a66af3166
--- /dev/null
+++ b/docker/alpine-3.20/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.20
+
+RUN apk add \
+	bash \
+	build-base \
+	cargo \
+	clang-dev \
+	cmake \
+	openssl-dev
+
diff --git a/docker/build_images.sh b/docker/build_images.sh
index b5c70caf44b..01976df2a4e 100755
--- a/docker/build_images.sh
+++ b/docker/build_images.sh
@@ -32,4 +32,5 @@ docker build -t rust:linux-386 linux-386 --load "${EXTRA_ARGS[@]}"
 docker build -t rust:linux-arm64 linux-arm64 --load "${EXTRA_ARGS[@]}"
 docker build -t rust:linux-x86_64 linux-x86_64 --load "${EXTRA_ARGS[@]}"
 docker build -t ubuntu:18.04 ubuntu-18.04 --load "${EXTRA_ARGS[@]}"
+docker build -t alpine:3.20 alpine-3.20 --load "${EXTRA_ARGS[@]}"
 popd &>/dev/null