From 8ecc55af1fc3a0331e48cca70ab5b7b36596f051 Mon Sep 17 00:00:00 2001 From: Ugljesa Jovanovic Date: Sat, 21 Sep 2019 22:39:59 +0200 Subject: [PATCH] Fix decryption --- .../kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbc.kt | 3 ++- .../com/ionspin/kotlin/crypto/symmetric/AesCbcTest.kt | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/multiplatform-crypto/src/commonMain/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbc.kt b/multiplatform-crypto/src/commonMain/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbc.kt index 01a1597..b0f1fc0 100644 --- a/multiplatform-crypto/src/commonMain/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbc.kt +++ b/multiplatform-crypto/src/commonMain/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbc.kt @@ -18,6 +18,7 @@ package com.ionspin.kotlin.crypto.symmetric import com.ionspin.kotlin.crypto.SRNG import com.ionspin.kotlin.crypto.chunked +import com.ionspin.kotlin.crypto.toHexString import com.ionspin.kotlin.crypto.xor /** @@ -145,10 +146,10 @@ class AesCbc internal constructor(val aesKey: AesKey, val mode: Mode, initializa Mode.DECRYPT -> { if (currentOutput.isEmpty()) { currentOutput = Aes.decrypt(aesKey, data) xor iv - previousEncrypted = data } else { currentOutput = Aes.decrypt(aesKey, data) xor previousEncrypted } + previousEncrypted = data currentOutput } } diff --git a/multiplatform-crypto/src/commonTest/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbcTest.kt b/multiplatform-crypto/src/commonTest/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbcTest.kt index 0c676c9..442df8d 100644 --- a/multiplatform-crypto/src/commonTest/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbcTest.kt +++ b/multiplatform-crypto/src/commonTest/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbcTest.kt @@ -38,7 +38,7 @@ class AesCbcTest { val aesCbc = AesCbc(AesKey.Aes128Key(key), mode = Mode.ENCRYPT, initializationVector = iv.hexStringToUByteArray()) aesCbc.addData(plaintext.hexStringToUByteArray()) val encrypted = aesCbc.encrypt() - println("Decrypted: ${encrypted.toHexString()}") + println("Encrypted: ${encrypted.toHexString()}") assertTrue { expectedCipherText == encrypted.toHexString() } @@ -54,7 +54,7 @@ class AesCbcTest { val aesCbc = AesCbc(AesKey.Aes128Key(key), mode = Mode.DECRYPT, initializationVector = iv.hexStringToUByteArray()) aesCbc.addData(cipherText.hexStringToUByteArray()) val decrypted = aesCbc.decrypt() - println("Encrypted: ${decrypted.toHexString()}") + println("Decrypted: ${decrypted.toHexString()}") assertTrue { expectedPlainText == decrypted.toHexString() } @@ -64,4 +64,6 @@ class AesCbcTest { + + } \ No newline at end of file