diff options
Diffstat (limited to 'src/identity.rs')
-rw-r--r-- | src/identity.rs | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/src/identity.rs b/src/identity.rs index 602940f..90d4fad 100644 --- a/src/identity.rs +++ b/src/identity.rs @@ -19,35 +19,28 @@ impl Identity { keys.extend(std::iter::repeat(0).take(64)); let enc_key = &mut keys.data_mut()[0..32]; - ring::pbkdf2::derive( - ring::pbkdf2::PBKDF2_HMAC_SHA256, - iterations, - email.as_bytes(), + pbkdf2::pbkdf2::<hmac::Hmac<sha2::Sha256>>( password.password(), + email.as_bytes(), + iterations.get(), enc_key, ); let mut hash = crate::locked::Vec::new(); hash.extend(std::iter::repeat(0).take(32)); - ring::pbkdf2::derive( - ring::pbkdf2::PBKDF2_HMAC_SHA256, - std::num::NonZeroU32::new(1).unwrap(), - password.password(), + pbkdf2::pbkdf2::<hmac::Hmac<sha2::Sha256>>( enc_key, + password.password(), + 1, hash.data_mut(), ); - let hkdf = - ring::hkdf::Prk::new_less_safe(ring::hkdf::HKDF_SHA256, enc_key); - hkdf.expand(&[b"enc"], ring::hkdf::HKDF_SHA256) - .map_err(|_| Error::HkdfExpand)? - .fill(enc_key) + let hkdf = hkdf::Hkdf::<sha2::Sha256>::from_prk(enc_key) + .map_err(|_| Error::HkdfExpand)?; + hkdf.expand(b"enc", enc_key) .map_err(|_| Error::HkdfExpand)?; - let mac_key = &mut keys.data_mut()[32..64]; - hkdf.expand(&[b"mac"], ring::hkdf::HKDF_SHA256) - .map_err(|_| Error::HkdfExpand)? - .fill(mac_key) + hkdf.expand(b"mac", mac_key) .map_err(|_| Error::HkdfExpand)?; let keys = crate::locked::Keys::new(keys); |