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,
