From f1a82fde2a50b242ee73a0b573d633ef3caca343 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Wed, 29 Jan 2020 10:31:43 +1100 Subject: [PATCH] Fix crash --- SignalServiceKit/src/Loki/API/LokiSnodeProxy.swift | 2 +- SignalServiceKit/src/Loki/Crypto/DiffieHellman.swift | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/SignalServiceKit/src/Loki/API/LokiSnodeProxy.swift b/SignalServiceKit/src/Loki/API/LokiSnodeProxy.swift index 0298bfde3..84af884ed 100644 --- a/SignalServiceKit/src/Loki/API/LokiSnodeProxy.swift +++ b/SignalServiceKit/src/Loki/API/LokiSnodeProxy.swift @@ -79,7 +79,7 @@ internal class LokiSnodeProxy : LokiHTTPClient { task.resume() return promise }.map { rawResponse in - guard let data = rawResponse as? Data, let cipherText = Data(base64Encoded: data) else { + guard let data = rawResponse as? Data, !data.isEmpty, let cipherText = Data(base64Encoded: data) else { print("[Loki] Received a non-string encoded response.") return rawResponse } diff --git a/SignalServiceKit/src/Loki/Crypto/DiffieHellman.swift b/SignalServiceKit/src/Loki/Crypto/DiffieHellman.swift index 874a698e3..41198b063 100644 --- a/SignalServiceKit/src/Loki/Crypto/DiffieHellman.swift +++ b/SignalServiceKit/src/Loki/Crypto/DiffieHellman.swift @@ -24,6 +24,7 @@ public enum DiffieHellman { public static func decrypt(_ encryptedData: Data, using symmetricKey: Data) throws -> Data { let symmetricKeyBytes = [UInt8](symmetricKey) + guard encryptedData.count >= ivLength else { throw "Couldn't decrypt data." } let ivBytes = [UInt8](encryptedData[..