Skip to content

Commit fd22ded

Browse files
committed
Clean up KeyEncryptable or pin key
1 parent 375fd0d commit fd22ded

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

crates/bitwarden-crypto/src/keys/pin_key.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
use super::{
22
kdf::{Kdf, KdfDerivedKeyMaterial},
3-
master_key::{decrypt_user_key, encrypt_user_key},
3+
master_key::decrypt_user_key,
44
utils::stretch_key,
55
};
66
use crate::{
7-
keys::key_encryptable::CryptoKey, ContentFormat, EncString, KeyEncryptable,
8-
KeyEncryptableWithContentType, Result, SymmetricCryptoKey,
7+
keys::key_encryptable::CryptoKey, EncString, KeyEncryptable, Result, SymmetricCryptoKey,
98
};
109

1110
/// Pin Key.
@@ -21,7 +20,7 @@ impl PinKey {
2120

2221
/// Encrypt the users user key
2322
pub fn encrypt_user_key(&self, user_key: &SymmetricCryptoKey) -> Result<EncString> {
24-
encrypt_user_key(&self.0 .0, user_key)
23+
user_key.encrypt_with_key(&self)
2524
}
2625

2726
/// Decrypt the users user key
@@ -32,15 +31,18 @@ impl PinKey {
3231

3332
impl CryptoKey for PinKey {}
3433

35-
impl KeyEncryptableWithContentType<PinKey, EncString> for &[u8] {
36-
fn encrypt_with_key(self, key: &PinKey, content_format: ContentFormat) -> Result<EncString> {
34+
impl KeyEncryptable<PinKey, EncString> for &SymmetricCryptoKey {
35+
fn encrypt_with_key(self, key: &PinKey) -> Result<EncString> {
3736
let stretched_key = SymmetricCryptoKey::Aes256CbcHmacKey(stretch_key(&key.0 .0)?);
38-
self.encrypt_with_key(&stretched_key, content_format)
37+
// The (stretched) pin key is currently always an AES-256-CBC-HMAC key, and wraps a bitwarden legacy encoded symmetric key
38+
self.to_encoded().encrypt_with_key(&stretched_key)
3939
}
4040
}
4141

4242
impl KeyEncryptable<PinKey, EncString> for String {
4343
fn encrypt_with_key(self, key: &PinKey) -> Result<EncString> {
44-
self.as_bytes().encrypt_with_key(key, ContentFormat::Utf8)
44+
self.encrypt_with_key(&SymmetricCryptoKey::Aes256CbcHmacKey(stretch_key(
45+
&key.0 .0,
46+
)?))
4547
}
4648
}

0 commit comments

Comments
 (0)