diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2024-12-24 15:35:30 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2024-12-24 15:29:49 +0100 |
commit | 20dadf1713424f157232b9aa4988ef05df751aaa (patch) | |
tree | ca771baa0b378c0abffca4a61a7a2b6b7669c1c9 /vcl/source | |
parent | 81f724c6fc87ff78270bceb7476e22c344e1993c (diff) |
pdf: fix PDF encryption and re-enable the test
Slightly wrong loop exit condition when calculating the R6 hash,
which caused that every now and then the document could not be
decrypted correctly. This happened at least 1 time in 100 tries
(usually it did not even take that much to encountered a test
failure), but with the fix it worked correctly for 500 tries, so
it seems this issue is now fixed.
Change-Id: I5fa046892f36dabc367aabed1295802e805ee6e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179299
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/pdf/PDFEncryptorR6.cxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/vcl/source/pdf/PDFEncryptorR6.cxx b/vcl/source/pdf/PDFEncryptorR6.cxx index 52dceddc9636..6363ace090a8 100644 --- a/vcl/source/pdf/PDFEncryptorR6.cxx +++ b/vcl/source/pdf/PDFEncryptorR6.cxx @@ -235,7 +235,7 @@ std::vector<sal_uInt8> computeHashR6(const sal_uInt8* pPassword, size_t nPasswor } // Step e) and f) // We stop iteration if we do at least 64 rounds and (the last element of E <= round number - 32) - while (nRound < 64 || E.back() > (nRound - 32)); + while (nRound <= 64 || E.back() > (nRound - 32)); // Output - first 32 bytes return std::vector<sal_uInt8>(K.begin(), K.begin() + 32); |