From 3c4b7ce4825031736a04542103ac490d34f9dae2 Mon Sep 17 00:00:00 2001 From: Kevin Lewi Date: Fri, 4 Jun 2021 17:01:49 -0700 Subject: [PATCH] Ensuring mac operations are constant-time (cherry picked from commit 940d1dcdb29e9de45a5123adab578b3446502b72) --- src/key_exchange/tripledh.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/key_exchange/tripledh.rs b/src/key_exchange/tripledh.rs index 2c504f5..c3b483d 100644 --- a/src/key_exchange/tripledh.rs +++ b/src/key_exchange/tripledh.rs @@ -182,7 +182,7 @@ impl KeyExchange for TripleDH { Hmac::::new_varkey(&km2).map_err(|_| InternalPakeError::HmacError)?; server_mac.update(&transcript_hasher.clone().finalize()); - if ke2_message.mac != server_mac.finalize().into_bytes() { + if server_mac.verify(&ke2_message.mac).is_err() { return Err(ProtocolError::VerificationError( PakeError::KeyExchangeMacValidationError, )); @@ -223,7 +223,7 @@ impl KeyExchange for TripleDH { Hmac::::new_varkey(&ke2_state.km3).map_err(|_| InternalPakeError::HmacError)?; client_mac.update(&ke2_state.hashed_transcript); - if ke3_message.mac != client_mac.finalize().into_bytes() { + if client_mac.verify(&ke3_message.mac).is_err() { return Err(ProtocolError::VerificationError( PakeError::KeyExchangeMacValidationError, ));