From aa3540a8bbaff568d75abc41160c81348e9add8c Mon Sep 17 00:00:00 2001 From: nathan Date: Thu, 3 Sep 2020 11:37:27 +0200 Subject: [PATCH] Fixed GCM reuse error --- src/dorkbox/network/connection/CryptoManagement.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dorkbox/network/connection/CryptoManagement.kt b/src/dorkbox/network/connection/CryptoManagement.kt index 05dc0a48..9e58ec5d 100644 --- a/src/dorkbox/network/connection/CryptoManagement.kt +++ b/src/dorkbox/network/connection/CryptoManagement.kt @@ -70,7 +70,6 @@ internal class CryptoManagement(val logger: KLogger, val secureRandom = SecureRandom(settingsStore.getSalt()) private val iv = ByteArray(GCM_IV_LENGTH) - private val gcmParameterSpec = GCMParameterSpec(GCM_TAG_LENGTH * 8, iv) val cryptOutput = AeronOutput() val cryptInput = AeronInput() @@ -192,6 +191,7 @@ internal class CryptoManagement(val logger: KLogger, val secretKeySpec = generateAesKey(clientPublicKeyBytes, clientPublicKeyBytes, publicKeyBytes) secureRandom.nextBytes(iv) + val gcmParameterSpec = GCMParameterSpec(GCM_TAG_LENGTH * 8, iv) aesCipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, gcmParameterSpec) // now create the byte array that holds all our data @@ -224,6 +224,7 @@ internal class CryptoManagement(val logger: KLogger, // now decrypt the data + val gcmParameterSpec = GCMParameterSpec(GCM_TAG_LENGTH * 8, iv) aesCipher.init(Cipher.DECRYPT_MODE, secretKeySpec, gcmParameterSpec) cryptInput.buffer = aesCipher.doFinal(secretBytes)