aboutsummaryrefslogtreecommitdiff
path: root/autotests/testfilecrypto.cpp
diff options
context:
space:
mode:
authorTobias Fella <fella@posteo.de>2022-05-20 12:41:06 +0200
committerTobias Fella <fella@posteo.de>2022-05-20 12:44:53 +0200
commit44f34c60fe1f1dde859655bbda86221b6cec4811 (patch)
treec295f816a4c81ef1a73f47ddbfad1f256d2cac65 /autotests/testfilecrypto.cpp
parenta8076b9a2394150e11381dc8fc2e3af2bbd03f39 (diff)
downloadlibquotient-44f34c60fe1f1dde859655bbda86221b6cec4811.tar.gz
libquotient-44f34c60fe1f1dde859655bbda86221b6cec4811.zip
Truncate ciphertext buffer to actual size during file encryption
The ciphertext for AES CTR is exactly as large as the plaintext (not necessarily a multiple of the blocksize!). By truncating the ciphertext, we do not send bytes that will be decrypted to gibberish. As a side node, we probably do not need to initialize the ciphertext buffer larger than the plaintext size at all, but the OpenSSL docs are a bit vague about that.
Diffstat (limited to 'autotests/testfilecrypto.cpp')
-rw-r--r--autotests/testfilecrypto.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/autotests/testfilecrypto.cpp b/autotests/testfilecrypto.cpp
index e6bec1fe..5d549b89 100644
--- a/autotests/testfilecrypto.cpp
+++ b/autotests/testfilecrypto.cpp
@@ -12,6 +12,8 @@ void TestFileCrypto::encryptDecryptData()
QByteArray data = "ABCDEF";
auto [file, cipherText] = EncryptedFile::encryptFile(data);
auto decrypted = file.decryptFile(cipherText);
- QCOMPARE(data, decrypted);
+ QCOMPARE(cipherText.size(), data.size());
+ QCOMPARE(decrypted.size(), data.size());
+ QCOMPARE(decrypted, data);
}
QTEST_APPLESS_MAIN(TestFileCrypto)