Update BoringSSL and release 0.5.0

Fixes 32

Change-Id: Ib616022871724e8fa67b54ad7f86473edda10ec1
Reviewed-on: https://fuchsia-review.googlesource.com/c/mundane/+/620222
Reviewed-by: Drew Fisher <zarvox@google.com>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2b33703..edaa02d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,11 @@
 
 ## Unreleased
 
+## [0.5.0] - 2021-12-14
+
+### Changed
+- Updated to latest version of BoringSSL
+
 ## [0.4.4] - 2021-03-04
 
 ### Added
diff --git a/Cargo.toml b/Cargo.toml
index fa6d738..b529325 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -6,7 +6,7 @@
 
 [package]
 name = "mundane"
-version = "0.4.4"
+version = "0.5.0"
 authors = ["Joshua Liebow-Feeser <joshlf@google.com>"]
 description = "Cryptography which is easy to use and hard to misuse"
 readme = "README.md"
diff --git a/boringssl/bindgen.sh b/boringssl/bindgen.sh
index 9f317aa..7409b01 100755
--- a/boringssl/bindgen.sh
+++ b/boringssl/bindgen.sh
@@ -170,7 +170,7 @@
 # changing the Rust types that are generated for particular C types). If a more
 # recent version of bindgen is available, "roll" bindgen by updating the
 # `BINDGEN_EXPECTED_VERSION` variable here.
-BINDGEN_EXPECTED_VERSION="bindgen 0.57.0"
+BINDGEN_EXPECTED_VERSION="bindgen 0.59.2"
 BINDGEN_GOT_VERSION="$(bindgen --version)"
 if [ "$BINDGEN_GOT_VERSION" != "$BINDGEN_EXPECTED_VERSION" ]; then
     echo "Unexpected version of bindgen: got $BINDGEN_GOT_VERSION; wanted $BINDGEN_EXPECTED_VERSION.
diff --git a/boringssl/boringssl b/boringssl/boringssl
index 215f4a0..9631bc1 160000
--- a/boringssl/boringssl
+++ b/boringssl/boringssl
@@ -1 +1 @@
-Subproject commit 215f4a0287a0eaa19da5de32c9f4745a28e518be
+Subproject commit 9631bc10418143610e7747b138ed57cd97bc3c5d
diff --git a/boringssl/boringssl.rs b/boringssl/boringssl.rs
index e7064b0..4a126f4 100644
--- a/boringssl/boringssl.rs
+++ b/boringssl/boringssl.rs
@@ -15,10 +15,10 @@
 #![allow(non_upper_case_globals)]
 #![allow(clippy::all)]
 
-#[link(name = "crypto_0_4_4")]
+#[link(name = "crypto_0_5_0")]
 extern "C" {}
 
-/* automatically generated by rust-bindgen 0.57.0 */
+/* automatically generated by rust-bindgen 0.59.2 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -104,7 +104,7 @@
 pub const SHA512_DIGEST_LENGTH: u32 = 64;
 pub type size_t = ::std::os::raw::c_ulong;
 #[repr(C)]
-#[derive(Copy, Clone)]
+#[derive(Debug, Copy, Clone)]
 pub struct _opaque_pthread_rwlock_t {
     pub __sig: ::std::os::raw::c_long,
     pub __opaque: [::std::os::raw::c_char; 192usize],
@@ -207,23 +207,23 @@
 pub type CRYPTO_MUTEX = pthread_rwlock_t;
 pub type CRYPTO_refcount_t = u32;
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_BN_init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_BN_init"]
     pub fn BN_init(bn: *mut BIGNUM);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_BN_free"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_BN_free"]
     pub fn BN_free(bn: *mut BIGNUM);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_BN_num_bytes"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_BN_num_bytes"]
     pub fn BN_num_bytes(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_BN_set_u64"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_BN_set_u64"]
     pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_BN_bn2bin_padded"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_BN_bn2bin_padded"]
     pub fn BN_bn2bin_padded(out: *mut u8, len: size_t, in_: *const BIGNUM)
         -> ::std::os::raw::c_int;
 }
@@ -370,11 +370,11 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_CBS_init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_CBS_init"]
     pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: size_t);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_CBS_len"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_CBS_len"]
     pub fn CBS_len(cbs: *const CBS) -> size_t;
 }
 #[repr(C)]
@@ -474,27 +474,27 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_CBB_init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_CBB_init"]
     pub fn CBB_init(cbb: *mut CBB, initial_capacity: size_t) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_CBB_cleanup"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_CBB_cleanup"]
     pub fn CBB_cleanup(cbb: *mut CBB);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_CBB_data"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_CBB_data"]
     pub fn CBB_data(cbb: *const CBB) -> *const u8;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_CBB_len"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_CBB_len"]
     pub fn CBB_len(cbb: *const CBB) -> size_t;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_ED25519_keypair"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_ED25519_keypair"]
     pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_ED25519_sign"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_ED25519_sign"]
     pub fn ED25519_sign(
         out_sig: *mut u8,
         message: *const u8,
@@ -503,7 +503,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_ED25519_verify"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_ED25519_verify"]
     pub fn ED25519_verify(
         message: *const u8,
         message_len: size_t,
@@ -512,7 +512,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_ED25519_keypair_from_seed"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_ED25519_keypair_from_seed"]
     pub fn ED25519_keypair_from_seed(
         out_public_key: *mut u8,
         out_private_key: *mut u8,
@@ -520,15 +520,15 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EC_GROUP_new_by_curve_name"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_EC_GROUP_get_curve_name"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_EC_curve_nid2nist"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EC_curve_nid2nist"]
     pub fn EC_curve_nid2nist(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
 }
 #[repr(C)]
@@ -604,35 +604,35 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EC_KEY_new"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EC_KEY_new"]
     pub fn EC_KEY_new() -> *mut EC_KEY;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EC_KEY_free"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EC_KEY_free"]
     pub fn EC_KEY_free(key: *mut EC_KEY);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EC_KEY_up_ref"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EC_KEY_up_ref"]
     pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EC_KEY_get0_group"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EC_KEY_get0_group"]
     pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EC_KEY_set_group"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_EC_KEY_generate_key"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EC_KEY_generate_key"]
     pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EC_KEY_parse_private_key"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_EC_KEY_marshal_private_key"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EC_KEY_marshal_private_key"]
     pub fn EC_KEY_marshal_private_key(
         cbb: *mut CBB,
         key: *const EC_KEY,
@@ -640,7 +640,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_ECDSA_sign"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_ECDSA_sign"]
     pub fn ECDSA_sign(
         type_: ::std::os::raw::c_int,
         digest: *const u8,
@@ -651,7 +651,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_ECDSA_verify"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_ECDSA_verify"]
     pub fn ECDSA_verify(
         type_: ::std::os::raw::c_int,
         digest: *const u8,
@@ -662,7 +662,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_ECDSA_size"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_ECDSA_size"]
     pub fn ECDSA_size(key: *const EC_KEY) -> size_t;
 }
 pub type ERR_print_errors_callback_t = ::std::option::Option<
@@ -673,30 +673,30 @@
     ) -> ::std::os::raw::c_int,
 >;
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_ERR_print_errors_cb"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_EVP_md5"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_md5"]
     pub fn EVP_md5() -> *const EVP_MD;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_sha1"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_sha1"]
     pub fn EVP_sha1() -> *const EVP_MD;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_sha256"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_sha256"]
     pub fn EVP_sha256() -> *const EVP_MD;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_sha384"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_sha384"]
     pub fn EVP_sha384() -> *const EVP_MD;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_sha512"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_sha512"]
     pub fn EVP_sha512() -> *const EVP_MD;
 }
 #[repr(C)]
@@ -746,43 +746,43 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_PKEY_new"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_PKEY_new"]
     pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_PKEY_free"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_PKEY_free"]
     pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_PKEY_up_ref"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_PKEY_up_ref"]
     pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_PKEY_assign_RSA"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_EVP_PKEY_get1_RSA"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_PKEY_get1_RSA"]
     pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_PKEY_assign_EC_KEY"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_EVP_PKEY_get1_EC_KEY"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_PKEY_get1_EC_KEY"]
     pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_parse_public_key"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_parse_public_key"]
     pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_marshal_public_key"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_PKCS5_PBKDF2_HMAC"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_PKCS5_PBKDF2_HMAC"]
     pub fn PKCS5_PBKDF2_HMAC(
         password: *const ::std::os::raw::c_char,
         password_len: size_t,
@@ -795,7 +795,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_EVP_PBE_scrypt"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_EVP_PBE_scrypt"]
     pub fn EVP_PBE_scrypt(
         password: *const ::std::os::raw::c_char,
         password_len: size_t,
@@ -825,7 +825,6 @@
     pub dsa: *mut DSA,
     pub dh: *mut DH,
     pub ec: *mut EC_KEY,
-    _bindgen_union_align: u64,
 }
 #[test]
 fn bindgen_test_layout_evp_pkey_st__bindgen_ty_1() {
@@ -899,15 +898,15 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_HMAC_CTX_init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_HMAC_CTX_init"]
     pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_HMAC_CTX_cleanup"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_HMAC_CTX_cleanup"]
     pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_HMAC_Init_ex"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_HMAC_Init_ex"]
     pub fn HMAC_Init_ex(
         ctx: *mut HMAC_CTX,
         key: *const ::std::os::raw::c_void,
@@ -917,7 +916,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_HMAC_Update"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_HMAC_Update"]
     pub fn HMAC_Update(
         ctx: *mut HMAC_CTX,
         data: *const u8,
@@ -925,7 +924,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_HMAC_Final"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_HMAC_Final"]
     pub fn HMAC_Final(
         ctx: *mut HMAC_CTX,
         out: *mut u8,
@@ -933,11 +932,11 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_HMAC_size"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_HMAC_size"]
     pub fn HMAC_size(ctx: *const HMAC_CTX) -> size_t;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_HMAC_CTX_copy"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_HMAC_CTX_copy"]
     pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
 }
 #[repr(C)]
@@ -982,11 +981,11 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_MD5_Init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_MD5_Init"]
     pub fn MD5_Init(md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_MD5_Update"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_MD5_Update"]
     pub fn MD5_Update(
         md5: *mut MD5_CTX,
         data: *const ::std::os::raw::c_void,
@@ -994,15 +993,15 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_MD5_Final"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_MD5_Final"]
     pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_MD5_Transform"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_MD5_Transform"]
     pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
 }
 #[repr(C)]
-#[derive(Copy, Clone)]
+#[derive(Debug, Copy, Clone)]
 pub struct md5_state_st {
     pub h: [u32; 4usize],
     pub Nl: u32,
@@ -1049,7 +1048,7 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_CRYPTO_memcmp"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_CRYPTO_memcmp"]
     pub fn CRYPTO_memcmp(
         a: *const ::std::os::raw::c_void,
         b: *const ::std::os::raw::c_void,
@@ -1057,11 +1056,11 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RAND_bytes"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RAND_bytes"]
     pub fn RAND_bytes(buf: *mut u8, len: size_t) -> ::std::os::raw::c_int;
 }
 #[repr(C)]
-#[derive(Copy, Clone)]
+#[derive(Debug, Copy, Clone)]
 pub struct rc4_key_st {
     pub x: u32,
     pub y: u32,
@@ -1096,39 +1095,39 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RC4_set_key"]
+    #[link_name = "__RUST_MUNDANE_0_5_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 = "__RUST_MUNDANE_0_4_4_RC4"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RC4"]
     pub fn RC4(key: *mut RC4_KEY, len: size_t, in_: *const u8, out: *mut u8);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_new"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_new"]
     pub fn RSA_new() -> *mut RSA;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_free"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_free"]
     pub fn RSA_free(rsa: *mut RSA);
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_up_ref"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_up_ref"]
     pub fn RSA_up_ref(rsa: *mut RSA) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_bits"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_bits"]
     pub fn RSA_bits(rsa: *const RSA) -> ::std::os::raw::c_uint;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_get0_n"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_get0_n"]
     pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_get0_e"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_get0_e"]
     pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_generate_key_ex"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_generate_key_ex"]
     pub fn RSA_generate_key_ex(
         rsa: *mut RSA,
         bits: ::std::os::raw::c_int,
@@ -1137,47 +1136,47 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_sign"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_sign"]
     pub fn RSA_sign(
         hash_nid: ::std::os::raw::c_int,
-        in_: *const u8,
-        in_len: ::std::os::raw::c_uint,
+        digest: *const u8,
+        digest_len: ::std::os::raw::c_uint,
         out: *mut u8,
         out_len: *mut ::std::os::raw::c_uint,
         rsa: *mut RSA,
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_sign_pss_mgf1"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_sign_pss_mgf1"]
     pub fn RSA_sign_pss_mgf1(
         rsa: *mut RSA,
         out_len: *mut size_t,
         out: *mut u8,
         max_out: size_t,
-        in_: *const u8,
-        in_len: size_t,
+        digest: *const u8,
+        digest_len: size_t,
         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 = "__RUST_MUNDANE_0_4_4_RSA_verify"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_verify"]
     pub fn RSA_verify(
         hash_nid: ::std::os::raw::c_int,
-        msg: *const u8,
-        msg_len: size_t,
+        digest: *const u8,
+        digest_len: size_t,
         sig: *const u8,
         sig_len: size_t,
         rsa: *mut RSA,
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_verify_pss_mgf1"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_verify_pss_mgf1"]
     pub fn RSA_verify_pss_mgf1(
         rsa: *mut RSA,
-        msg: *const u8,
-        msg_len: size_t,
+        digest: *const u8,
+        digest_len: size_t,
         md: *const EVP_MD,
         mgf1_md: *const EVP_MD,
         salt_len: ::std::os::raw::c_int,
@@ -1186,15 +1185,15 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_size"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_size"]
     pub fn RSA_size(rsa: *const RSA) -> ::std::os::raw::c_uint;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_parse_private_key"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_parse_private_key"]
     pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_RSA_marshal_private_key"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_RSA_marshal_private_key"]
     pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
 }
 #[repr(C)]
@@ -1317,7 +1316,7 @@
 }
 pub type BN_BLINDING = bn_blinding_st;
 #[repr(C)]
-#[derive(Copy, Clone)]
+#[derive(Debug, Copy, Clone)]
 pub struct rsa_st {
     pub meth: *mut RSA_METHOD,
     pub n: *mut BIGNUM,
@@ -1511,11 +1510,11 @@
     }
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA1_Init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA1_Init"]
     pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA1_Update"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA1_Update"]
     pub fn SHA1_Update(
         sha: *mut SHA_CTX,
         data: *const ::std::os::raw::c_void,
@@ -1523,7 +1522,7 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA1_Final"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA1_Final"]
     pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
 }
 #[repr(C)]
@@ -1540,7 +1539,6 @@
 pub union sha_state_st__bindgen_ty_1 {
     pub h: [u32; 5usize],
     pub __bindgen_anon_1: sha_state_st__bindgen_ty_1__bindgen_ty_1,
-    _bindgen_union_align: [u32; 5usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1681,11 +1679,11 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA256_Init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA256_Init"]
     pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA256_Update"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA256_Update"]
     pub fn SHA256_Update(
         sha: *mut SHA256_CTX,
         data: *const ::std::os::raw::c_void,
@@ -1693,11 +1691,11 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA256_Final"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA256_Final"]
     pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
 }
 #[repr(C)]
-#[derive(Copy, Clone)]
+#[derive(Debug, Copy, Clone)]
 pub struct sha256_state_st {
     pub h: [u32; 8usize],
     pub Nl: u32,
@@ -1750,11 +1748,11 @@
     );
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA384_Init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA384_Init"]
     pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA384_Update"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA384_Update"]
     pub fn SHA384_Update(
         sha: *mut SHA512_CTX,
         data: *const ::std::os::raw::c_void,
@@ -1762,15 +1760,15 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA384_Final"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA384_Final"]
     pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA512_Init"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA512_Init"]
     pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA512_Update"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA512_Update"]
     pub fn SHA512_Update(
         sha: *mut SHA512_CTX,
         data: *const ::std::os::raw::c_void,
@@ -1778,11 +1776,11 @@
     ) -> ::std::os::raw::c_int;
 }
 extern "C" {
-    #[link_name = "__RUST_MUNDANE_0_4_4_SHA512_Final"]
+    #[link_name = "__RUST_MUNDANE_0_5_0_SHA512_Final"]
     pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
 }
 #[repr(C)]
-#[derive(Copy, Clone)]
+#[derive(Debug, Copy, Clone)]
 pub struct sha512_state_st {
     pub h: [u64; 8usize],
     pub Nl: u64,