diff --git a/src/lib.rs b/src/lib.rs index 19a4d4b..49b1ff4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -127,6 +127,7 @@ fn encrypt_inner( let mut cipher = ChaCha20::new(&keys.encryption().into(), &keys.nonce().into()); cipher.apply_keystream(&mut buffer); let mut mac = Hmac::::new_from_slice(&keys.auth())?; + mac.update(&nonce); mac.update(&buffer); let mac_bytes = mac.finalize().into_bytes(); @@ -155,6 +156,7 @@ pub fn decrypt(conversation_key: &[u8; 32], base64_ciphertext: &str) -> Result::new_from_slice(&keys.auth())?; + calculated_mac.update(&nonce); calculated_mac.update(&buffer); let calculated_mac_bytes = calculated_mac.finalize().into_bytes(); if !constant_time_eq::constant_time_eq(mac, calculated_mac_bytes.as_slice()) {