mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
constTimeIsEqual
This commit is contained in:
parent
09d3f7386b
commit
466de70edd
1 changed files with 14 additions and 1 deletions
|
|
@ -119,6 +119,19 @@ private func messageKey(key: SecretChatKey, msgKey: UnsafeRawPointer, mode: Secr
|
|||
}
|
||||
}
|
||||
|
||||
private func constTimeIsEqual(data1: Data, data2: Data) -> Bool {
|
||||
if data1.count != data2.count {
|
||||
return false
|
||||
}
|
||||
var isEqual = true
|
||||
for i in 0 ..< data1.count {
|
||||
if data1[i] != data2[i] {
|
||||
isEqual = false
|
||||
}
|
||||
}
|
||||
return isEqual
|
||||
}
|
||||
|
||||
func withDecryptedMessageContents(parameters: SecretChatEncryptionParameters, data: MemoryBuffer) -> MemoryBuffer? {
|
||||
assert(parameters.key.key.length == 256)
|
||||
|
||||
|
|
@ -211,7 +224,7 @@ func withDecryptedMessageContents(parameters: SecretChatEncryptionParameters, da
|
|||
|
||||
if Int(payloadLength) <= 0 || Int(payloadLength) > decryptedData.count - 4 || paddingLength < 12 || paddingLength > 1024 {
|
||||
|
||||
if localMessageKey != msgKeyData {
|
||||
if !constTimeIsEqual(data1: localMessageKey, data2: msgKeyData) {
|
||||
Logger.shared.log("SecretChatEncryption", "message key doesn't match (length check)")
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue