LibPDF: Fix calculation of encryption key

Before this patch, the generation of the encryption key was not working
correctly since the lifetime of the underlying data was too short,
same inputs would give random encryption keys.

Fixes #16668
This commit is contained in:
Simon Danner 2023-01-04 13:53:34 +01:00 committed by Tim Flynn
parent 51f41ea997
commit 5fa8068580
Notes: sideshowbarker 2024-07-17 04:49:48 +09:00

View file

@ -256,9 +256,9 @@ ByteBuffer StandardSecurityHandler::compute_encryption_key(ByteBuffer password_s
n_bytes.ensure_capacity(m_length); n_bytes.ensure_capacity(m_length);
while (n_bytes.size() < m_length) { while (n_bytes.size() < m_length) {
auto out = md5.peek().bytes(); auto out = md5.peek();
for (size_t j = 0; j < out.size() && n_bytes.size() < m_length; j++) for (size_t j = 0; j < out.data_length() && n_bytes.size() < m_length; j++)
n_bytes.append(out[j]); n_bytes.append(out.data[j]);
} }
VERIFY(n_bytes.size() == m_length); VERIFY(n_bytes.size() == m_length);