diff options
author | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2022-05-20 21:32:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-20 21:32:57 +0200 |
commit | 729ba7da174eacc88bf9bd4e2e80eeab3fc92716 (patch) | |
tree | af15b8c6ea09cfd8a6640be4af634d32d3a78552 /lib/events | |
parent | 004cbef8c2fb138310a12439f4b5907862df5654 (diff) | |
parent | 59f2b60835752fc87e75f456145d21cc5f77a433 (diff) | |
download | libquotient-729ba7da174eacc88bf9bd4e2e80eeab3fc92716.tar.gz libquotient-729ba7da174eacc88bf9bd4e2e80eeab3fc92716.zip |
Merge pull request #553 from TobiasFella/work/fixencryption
Truncate ciphertext buffer to actual size during file encryption
Diffstat (limited to 'lib/events')
-rw-r--r-- | lib/events/encryptedfile.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/events/encryptedfile.cpp b/lib/events/encryptedfile.cpp index 9cc3a0c8..33ebb514 100644 --- a/lib/events/encryptedfile.cpp +++ b/lib/events/encryptedfile.cpp @@ -64,8 +64,9 @@ std::pair<EncryptedFile, QByteArray> EncryptedFile::encryptFile(const QByteArray int length; auto* ctx = EVP_CIPHER_CTX_new(); - QByteArray cipherText(plainText.size() + EVP_MAX_BLOCK_LENGTH - 1, '\0'); EVP_EncryptInit_ex(ctx, EVP_aes_256_ctr(), nullptr, reinterpret_cast<const unsigned char*>(k.data()),reinterpret_cast<const unsigned char*>(iv.data())); + const auto blockSize = EVP_CIPHER_CTX_block_size(ctx); + QByteArray cipherText(plainText.size() + blockSize - 1, '\0'); EVP_EncryptUpdate(ctx, reinterpret_cast<unsigned char*>(cipherText.data()), &length, reinterpret_cast<const unsigned char*>(plainText.data()), plainText.size()); EVP_EncryptFinal_ex(ctx, reinterpret_cast<unsigned char*>(cipherText.data()) + length, &length); EVP_CIPHER_CTX_free(ctx); |