From de584ccb7dfa519851de179ffa9398d1091e4088 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 9 Apr 2026 22:10:20 -0400 Subject: [PATCH] Use message digest for faster comparison. --- .../java/org/signal/archive/stream/EncryptedBackupReader.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/archive/src/main/java/org/signal/archive/stream/EncryptedBackupReader.kt b/lib/archive/src/main/java/org/signal/archive/stream/EncryptedBackupReader.kt index 914dce2d8a..06c9c8440a 100644 --- a/lib/archive/src/main/java/org/signal/archive/stream/EncryptedBackupReader.kt +++ b/lib/archive/src/main/java/org/signal/archive/stream/EncryptedBackupReader.kt @@ -23,6 +23,7 @@ import java.io.ByteArrayOutputStream import java.io.EOFException import java.io.IOException import java.io.InputStream +import java.security.MessageDigest import java.util.zip.GZIPInputStream import javax.crypto.Cipher import javax.crypto.CipherInputStream @@ -145,7 +146,7 @@ class EncryptedBackupReader private constructor( val calculatedMac = macStream.mac.doFinal() val expectedMac = dataStream.readNBytesOrThrow(MAC_SIZE) - if (!calculatedMac.contentEquals(expectedMac)) { + if (!MessageDigest.isEqual(calculatedMac, expectedMac)) { throw IOException("Invalid MAC!") } }