Fix release issues with 0.4.1
- In the 0.4.1 release, we forgot to update symbol names, resulting
in linker errors
- Fix bad interaction between `#[derive]` and `#[deprecated]`
- Update `RELEASING.md`
Change-Id: I10cd7910e21f01db60ae3992f54e45f5e725d8af
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 59446d5..af9a6f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,13 @@
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
+## [0.4.2] - 2019-10-04
+
+### Fixed
+- Fixed issue where 0.4.1 was released without updating BoringSSL symbols.
+- Fixed issue caused by a bad interaction between `#[derive(Clone)]` and
+ `#[deprecated]`.
+
## [0.4.1] - 2019-09-27
### Added
diff --git a/Cargo.toml b/Cargo.toml
index 9a4f4ba..d5e4ec4 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -6,7 +6,7 @@
[package]
name = "mundane"
-version = "0.4.1"
+version = "0.4.2"
authors = ["Joshua Liebow-Feeser <joshlf@google.com>"]
description = "Cryptography which is easy to use and hard to misuse"
readme = "README.md"
diff --git a/RELEASING.md b/RELEASING.md
index a3daada..2a4efde 100644
--- a/RELEASING.md
+++ b/RELEASING.md
@@ -10,11 +10,9 @@
This document describes steps to follow when releasing a new version of Mundane.
1. Update `Cargo.toml` with the new version number
-2. Update the `#![doc(html_root_url = ...)]` attribute in `src/lib.rs` to use
- the new version number
-3. Update `boringssl/boringssl` by running `git submodule foreach git pull
+2. Update `boringssl/boringssl` by running `git submodule foreach git pull
origin master`
-4. Update `boringssl/boringssl.rs`:
+3. Update `boringssl/boringssl.rs`:
- Run `boringssl/bindgen.sh <major> <minor> <patch>`
- Run `git diff` to verify that all of the version numbers have been updated
correctly (namely, the `link` attribute at the top of the file is of the
@@ -24,11 +22,9 @@
`link_name` attribute is attached to)
- Run `boringssl/test_symbol_version_name.sh <major> <minor> <patch>` to
verify that all of the version numbers have been updated correctly
-5. Run the `boringssl/test_symbol_conflict.sh` script, and ensure that it
- passes.
-6. Make sure `./test.sh` passes.
-7. Update `CHANGELOG.md` - move any unreleased changes into a new section for
+4. Make sure `./test.sh` passes.
+5. Update `CHANGELOG.md` - move any unreleased changes into a new section for
the new version.
-8. Dry run by running `cargo publish --dry-run --allow-dirty`.
-9. Commit the changes.
-10. Once the changes have been committed, publish by running `cargo publish`.
\ No newline at end of file
+6. Dry run by running `cargo publish --dry-run --allow-dirty`.
+7. Commit the changes.
+8. Once the changes have been committed, publish by running `cargo publish`.
\ No newline at end of file
diff --git a/boringssl/boringssl b/boringssl/boringssl
index 104306f..49de1fc 160000
--- a/boringssl/boringssl
+++ b/boringssl/boringssl
@@ -1 +1 @@
-Subproject commit 104306f587751f34852838915fb61ce5551c2332
+Subproject commit 49de1fc2910524c888866c7e2b0db1ba8af2a530
diff --git a/boringssl/boringssl.rs b/boringssl/boringssl.rs
index 30f904f..d8fd606 100644
--- a/boringssl/boringssl.rs
+++ b/boringssl/boringssl.rs
@@ -14,42 +14,53 @@
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
-#[link(name = "crypto_0_4_0")]
+#[link(name = "crypto_0_4_2")]
extern "C" {}
/* automatically generated by rust-bindgen */
#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
-pub struct __BindgenBitfieldUnit<Storage, Align> {
+pub struct __BindgenBitfieldUnit<Storage, Align>
+where
+ Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
storage: Storage,
align: [Align; 0],
}
-impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> {
- #[inline]
- pub const fn new(storage: Storage) -> Self {
- Self { storage, align: [] }
- }
-}
+
impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
where
Storage: AsRef<[u8]> + AsMut<[u8]>,
{
#[inline]
+ pub fn new(storage: Storage) -> Self {
+ Self { storage, align: [] }
+ }
+
+ #[inline]
pub fn get_bit(&self, index: usize) -> bool {
debug_assert!(index / 8 < self.storage.as_ref().len());
+
let byte_index = index / 8;
let byte = self.storage.as_ref()[byte_index];
+
let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
+
let 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;
@@ -57,12 +68,15 @@
*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 =
@@ -70,13 +84,16 @@
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;
@@ -100,9 +117,44 @@
pub const SHA256_DIGEST_LENGTH: u32 = 32;
pub const SHA384_DIGEST_LENGTH: u32 = 48;
pub const SHA512_DIGEST_LENGTH: u32 = 64;
-pub type __uint8_t = ::std::os::raw::c_uchar;
-pub type __uint32_t = ::std::os::raw::c_uint;
-pub type __uint64_t = ::std::os::raw::c_ulong;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct _opaque_pthread_rwlock_t {
+ pub __sig: ::std::os::raw::c_long,
+ pub __opaque: [::std::os::raw::c_char; 192usize],
+}
+#[test]
+fn bindgen_test_layout__opaque_pthread_rwlock_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_opaque_pthread_rwlock_t>(),
+ 200usize,
+ concat!("Size of: ", stringify!(_opaque_pthread_rwlock_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_opaque_pthread_rwlock_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_opaque_pthread_rwlock_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_opaque_pthread_rwlock_t>())).__sig as *const _ as usize },
+ 0usize,
+ concat!("Offset of field: ", stringify!(_opaque_pthread_rwlock_t), "::", stringify!(__sig))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_opaque_pthread_rwlock_t>())).__opaque as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_opaque_pthread_rwlock_t),
+ "::",
+ stringify!(__opaque)
+ )
+ );
+}
+pub type __darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t;
+pub type pthread_rwlock_t = __darwin_pthread_rwlock_t;
pub type BIGNUM = bignum_st;
pub type BN_GENCB = bn_gencb_st;
pub type BN_MONT_CTX = bn_mont_ctx_st;
@@ -164,48 +216,18 @@
pub type SHA256_CTX = sha256_state_st;
pub type SHA512_CTX = sha512_state_st;
pub type SHA_CTX = sha_state_st;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union crypto_mutex_st {
- pub alignment: f64,
- pub padding: [u8; 56usize],
- _bindgen_union_align: [u64; 7usize],
-}
-#[test]
-fn bindgen_test_layout_crypto_mutex_st() {
- assert_eq!(
- ::std::mem::size_of::<crypto_mutex_st>(),
- 56usize,
- concat!("Size of: ", stringify!(crypto_mutex_st))
- );
- assert_eq!(
- ::std::mem::align_of::<crypto_mutex_st>(),
- 8usize,
- concat!("Alignment of ", stringify!(crypto_mutex_st))
- );
- assert_eq!(
- unsafe { &(*(::std::ptr::null::<crypto_mutex_st>())).alignment as *const _ as usize },
- 0usize,
- concat!("Offset of field: ", stringify!(crypto_mutex_st), "::", stringify!(alignment))
- );
- assert_eq!(
- unsafe { &(*(::std::ptr::null::<crypto_mutex_st>())).padding as *const _ as usize },
- 0usize,
- concat!("Offset of field: ", stringify!(crypto_mutex_st), "::", stringify!(padding))
- );
-}
-pub type CRYPTO_MUTEX = crypto_mutex_st;
+pub type CRYPTO_MUTEX = pthread_rwlock_t;
pub type CRYPTO_refcount_t = u32;
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_BN_init"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_BN_init"]
pub fn BN_init(bn: *mut BIGNUM);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_BN_free"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_BN_free"]
pub fn BN_free(bn: *mut BIGNUM);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_BN_set_u64"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_BN_set_u64"]
pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
}
#[repr(C)]
@@ -351,11 +373,11 @@
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_CBS_init"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_CBS_init"]
pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_CBS_len"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_CBS_len"]
pub fn CBS_len(cbs: *const CBS) -> usize;
}
#[repr(C)]
@@ -413,7 +435,7 @@
pub offset: usize,
pub pending_len_len: u8,
pub pending_is_asn1: ::std::os::raw::c_char,
- pub is_top_level: ::std::os::raw::c_char,
+ pub is_child: ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_cbb_st() {
@@ -449,33 +471,33 @@
concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(pending_is_asn1))
);
assert_eq!(
- unsafe { &(*(::std::ptr::null::<cbb_st>())).is_top_level as *const _ as usize },
+ unsafe { &(*(::std::ptr::null::<cbb_st>())).is_child as *const _ as usize },
26usize,
- concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(is_top_level))
+ concat!("Offset of field: ", stringify!(cbb_st), "::", stringify!(is_child))
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_CBB_init"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_CBB_init"]
pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_CBB_cleanup"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_CBB_cleanup"]
pub fn CBB_cleanup(cbb: *mut CBB);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_CBB_data"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_CBB_data"]
pub fn CBB_data(cbb: *const CBB) -> *const u8;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_CBB_len"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_CBB_len"]
pub fn CBB_len(cbb: *const CBB) -> usize;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_ED25519_keypair"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_ED25519_keypair"]
pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_ED25519_sign"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_ED25519_sign"]
pub fn ED25519_sign(
out_sig: *mut u8,
message: *const u8,
@@ -484,7 +506,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_ED25519_verify"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_ED25519_verify"]
pub fn ED25519_verify(
message: *const u8,
message_len: usize,
@@ -493,7 +515,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_ED25519_keypair_from_seed"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_ED25519_keypair_from_seed"]
pub fn ED25519_keypair_from_seed(
out_public_key: *mut u8,
out_private_key: *mut u8,
@@ -501,15 +523,15 @@
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EC_GROUP_new_by_curve_name"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EC_GROUP_get_curve_name"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EC_curve_nid2nist"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EC_curve_nid2nist"]
pub fn EC_curve_nid2nist(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
#[repr(C)]
@@ -585,35 +607,35 @@
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EC_KEY_new"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EC_KEY_new"]
pub fn EC_KEY_new() -> *mut EC_KEY;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EC_KEY_free"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EC_KEY_free"]
pub fn EC_KEY_free(key: *mut EC_KEY);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EC_KEY_up_ref"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EC_KEY_get0_group"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EC_KEY_set_group"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EC_KEY_generate_key"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EC_KEY_parse_private_key"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EC_KEY_marshal_private_key"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EC_KEY_marshal_private_key"]
pub fn EC_KEY_marshal_private_key(
cbb: *mut CBB,
key: *const EC_KEY,
@@ -621,7 +643,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_ECDSA_sign"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_ECDSA_sign"]
pub fn ECDSA_sign(
type_: ::std::os::raw::c_int,
digest: *const u8,
@@ -632,7 +654,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_ECDSA_verify"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_ECDSA_verify"]
pub fn ECDSA_verify(
type_: ::std::os::raw::c_int,
digest: *const u8,
@@ -643,7 +665,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_ECDSA_size"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_ECDSA_size"]
pub fn ECDSA_size(key: *const EC_KEY) -> usize;
}
pub type ERR_print_errors_callback_t = ::std::option::Option<
@@ -654,26 +676,26 @@
) -> ::std::os::raw::c_int,
>;
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_ERR_print_errors_cb"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EVP_sha1"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_sha1"]
pub fn EVP_sha1() -> *const EVP_MD;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_sha256"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_sha256"]
pub fn EVP_sha256() -> *const EVP_MD;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_sha384"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_sha384"]
pub fn EVP_sha384() -> *const EVP_MD;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_sha512"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_sha512"]
pub fn EVP_sha512() -> *const EVP_MD;
}
#[repr(C)]
@@ -723,43 +745,43 @@
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_PKEY_new"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_PKEY_new"]
pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_PKEY_free"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_PKEY_free"]
pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_PKEY_up_ref"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EVP_PKEY_assign_RSA"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EVP_PKEY_get1_RSA"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_PKEY_get1_RSA"]
pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_PKEY_assign_EC_KEY"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EVP_PKEY_get1_EC_KEY"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_EVP_parse_public_key"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_parse_public_key"]
pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_marshal_public_key"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_PKCS5_PBKDF2_HMAC"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_PKCS5_PBKDF2_HMAC"]
pub fn PKCS5_PBKDF2_HMAC(
password: *const ::std::os::raw::c_char,
password_len: usize,
@@ -772,7 +794,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_EVP_PBE_scrypt"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_EVP_PBE_scrypt"]
pub fn EVP_PBE_scrypt(
password: *const ::std::os::raw::c_char,
password_len: usize,
@@ -876,15 +898,15 @@
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_HMAC_CTX_init"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_HMAC_CTX_init"]
pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_HMAC_CTX_cleanup"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_HMAC_CTX_cleanup"]
pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_HMAC_Init_ex"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_HMAC_Init_ex"]
pub fn HMAC_Init_ex(
ctx: *mut HMAC_CTX,
key: *const ::std::os::raw::c_void,
@@ -894,7 +916,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_HMAC_Update"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_HMAC_Update"]
pub fn HMAC_Update(
ctx: *mut HMAC_CTX,
data: *const u8,
@@ -902,7 +924,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_HMAC_Final"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_HMAC_Final"]
pub fn HMAC_Final(
ctx: *mut HMAC_CTX,
out: *mut u8,
@@ -910,11 +932,11 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_HMAC_size"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_HMAC_size"]
pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_HMAC_CTX_copy"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_HMAC_CTX_copy"]
pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
}
#[repr(C)]
@@ -959,7 +981,7 @@
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_CRYPTO_memcmp"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_CRYPTO_memcmp"]
pub fn CRYPTO_memcmp(
a: *const ::std::os::raw::c_void,
b: *const ::std::os::raw::c_void,
@@ -967,27 +989,27 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RAND_bytes"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RAND_bytes"]
pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_new"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_new"]
pub fn RSA_new() -> *mut RSA;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_free"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_free"]
pub fn RSA_free(rsa: *mut RSA);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_up_ref"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_up_ref"]
pub fn RSA_up_ref(rsa: *mut RSA) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_bits"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_bits"]
pub fn RSA_bits(rsa: *const RSA) -> ::std::os::raw::c_uint;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_generate_key_ex"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_generate_key_ex"]
pub fn RSA_generate_key_ex(
rsa: *mut RSA,
bits: ::std::os::raw::c_int,
@@ -996,7 +1018,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_sign"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_sign"]
pub fn RSA_sign(
hash_nid: ::std::os::raw::c_int,
in_: *const u8,
@@ -1007,7 +1029,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_sign_pss_mgf1"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_sign_pss_mgf1"]
pub fn RSA_sign_pss_mgf1(
rsa: *mut RSA,
out_len: *mut usize,
@@ -1021,7 +1043,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_verify"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_verify"]
pub fn RSA_verify(
hash_nid: ::std::os::raw::c_int,
msg: *const u8,
@@ -1032,7 +1054,7 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_verify_pss_mgf1"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_verify_pss_mgf1"]
pub fn RSA_verify_pss_mgf1(
rsa: *mut RSA,
msg: *const u8,
@@ -1045,15 +1067,15 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_size"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_size"]
pub fn RSA_size(rsa: *const RSA) -> ::std::os::raw::c_uint;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_parse_private_key"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_parse_private_key"]
pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_RSA_marshal_private_key"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_RSA_marshal_private_key"]
pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
}
#[repr(C)]
@@ -1206,7 +1228,7 @@
}
#[test]
fn bindgen_test_layout_rsa_st() {
- assert_eq!(::std::mem::size_of::<rsa_st>(), 232usize, concat!("Size of: ", stringify!(rsa_st)));
+ assert_eq!(::std::mem::size_of::<rsa_st>(), 376usize, concat!("Size of: ", stringify!(rsa_st)));
assert_eq!(
::std::mem::align_of::<rsa_st>(),
8usize,
@@ -1279,37 +1301,37 @@
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).mont_n as *const _ as usize },
- 144usize,
+ 288usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(mont_n))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).mont_p as *const _ as usize },
- 152usize,
+ 296usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(mont_p))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).mont_q as *const _ as usize },
- 160usize,
+ 304usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(mont_q))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).d_fixed as *const _ as usize },
- 168usize,
+ 312usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(d_fixed))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).dmp1_fixed as *const _ as usize },
- 176usize,
+ 320usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(dmp1_fixed))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).dmq1_fixed as *const _ as usize },
- 184usize,
+ 328usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(dmq1_fixed))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).inv_small_mod_large_mont as *const _ as usize },
- 192usize,
+ 336usize,
concat!(
"Offset of field: ",
stringify!(rsa_st),
@@ -1319,17 +1341,17 @@
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).num_blindings as *const _ as usize },
- 200usize,
+ 344usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(num_blindings))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).blindings as *const _ as usize },
- 208usize,
+ 352usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(blindings))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<rsa_st>())).blindings_inuse as *const _ as usize },
- 216usize,
+ 360usize,
concat!("Offset of field: ", stringify!(rsa_st), "::", stringify!(blindings_inuse))
);
}
@@ -1359,11 +1381,11 @@
}
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA1_Init"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA1_Init"]
pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA1_Update"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA1_Update"]
pub fn SHA1_Update(
sha: *mut SHA_CTX,
data: *const ::std::os::raw::c_void,
@@ -1371,8 +1393,8 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA1_Final"]
- pub fn SHA1_Final(md: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA1_Final"]
+ pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
@@ -1529,11 +1551,11 @@
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA256_Init"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA256_Init"]
pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA256_Update"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA256_Update"]
pub fn SHA256_Update(
sha: *mut SHA256_CTX,
data: *const ::std::os::raw::c_void,
@@ -1541,8 +1563,8 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA256_Final"]
- pub fn SHA256_Final(md: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA256_Final"]
+ pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
@@ -1598,11 +1620,11 @@
);
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA384_Init"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA384_Init"]
pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA384_Update"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA384_Update"]
pub fn SHA384_Update(
sha: *mut SHA512_CTX,
data: *const ::std::os::raw::c_void,
@@ -1610,15 +1632,15 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA384_Final"]
- pub fn SHA384_Final(md: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+ #[link_name = "__RUST_MUNDANE_0_4_2_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_0_SHA512_Init"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA512_Init"]
pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA512_Update"]
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA512_Update"]
pub fn SHA512_Update(
sha: *mut SHA512_CTX,
data: *const ::std::os::raw::c_void,
@@ -1626,8 +1648,8 @@
) -> ::std::os::raw::c_int;
}
extern "C" {
- #[link_name = "__RUST_MUNDANE_0_4_0_SHA512_Final"]
- pub fn SHA512_Final(md: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
+ #[link_name = "__RUST_MUNDANE_0_4_2_SHA512_Final"]
+ pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Copy, Clone)]
diff --git a/src/hash.rs b/src/hash.rs
index 664821d..02c8a31 100644
--- a/src/hash.rs
+++ b/src/hash.rs
@@ -104,6 +104,7 @@
// NOTE: InsecureSha1 is not publicly available; it is only used in HMAC-SHA1.
#[cfg(feature = "insecure")]
#[deprecated(note = "SHA-1 is considered insecure")]
+#[allow(deprecated)] // Work-around until Rust issue #56195 is resolved
#[derive(Clone, Default)]
pub(crate) struct InsecureSha1 {
ctx: CStackWrapper<boringssl::SHA_CTX>,