diff options
author | metamuffin <metamuffin@disroot.org> | 2023-04-04 11:15:03 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-04-04 11:15:03 +0200 |
commit | 99d1ab55dfb1714d8f574060e618dc93c94f245c (patch) | |
tree | b01f6ccb6b4060f120a71145fbbded0131c9430e /client-native-lib/src/crypto.rs | |
parent | 84587df365c61297e08d00f28317b452681a4b84 (diff) | |
parent | fe36a0640f2e36baad1f08033f09b49bdd0f1062 (diff) | |
download | keks-meet-99d1ab55dfb1714d8f574060e618dc93c94f245c.tar keks-meet-99d1ab55dfb1714d8f574060e618dc93c94f245c.tar.bz2 keks-meet-99d1ab55dfb1714d8f574060e618dc93c94f245c.tar.zst |
Merge branch 'master' of codeberg.org:metamuffin/keks-meet
Diffstat (limited to 'client-native-lib/src/crypto.rs')
-rw-r--r-- | client-native-lib/src/crypto.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/client-native-lib/src/crypto.rs b/client-native-lib/src/crypto.rs index 239c9f3..0472ec7 100644 --- a/client-native-lib/src/crypto.rs +++ b/client-native-lib/src/crypto.rs @@ -7,6 +7,7 @@ use aes_gcm::{ aead::{generic_array::sequence::GenericSequence, Aead}, Aes256Gcm, KeyInit, Nonce, }; +use base64::Engine; use log::info; pub struct Key(Aes256Gcm); @@ -14,7 +15,9 @@ pub struct Key(Aes256Gcm); impl Key { pub fn derive(secret: &str) -> Self { info!("running key generation..."); - let salt = base64::decode("thisisagoodsaltAAAAAAA==").unwrap(); + let salt = base64::engine::general_purpose::STANDARD + .decode("thisisagoodsaltAAAAAAA==") + .unwrap(); let mut key = [0u8; 32]; fastpbkdf2::pbkdf2_hmac_sha256(secret.as_bytes(), salt.as_slice(), 250000, &mut key); @@ -28,10 +31,10 @@ impl Key { let ciphertext = self.0.encrypt(&iv, s.as_bytes()).unwrap(); let mut packet = iv.to_vec(); // TODO this could be doing less allocations packet.extend(ciphertext); - base64::encode(packet) + base64::engine::general_purpose::STANDARD.encode(packet) } pub fn decrypt(&self, s: &str) -> String { - let r = base64::decode(s).unwrap(); + let r = base64::engine::general_purpose::STANDARD.decode(s).unwrap(); let iv = &r[0..12]; let ciphertext = &r[12..]; let plaintext = self.0.decrypt(Nonce::from_slice(iv), ciphertext).unwrap(); |