diff options
author | Artem Strygin <art-snake@yandex-team.ru> | 2018-07-23 19:54:34 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-23 19:54:34 +0000 |
commit | 2bfa78540c375916ec9973f0ae11271b098180bd (patch) | |
tree | 4ec0b11e0014c95acda8a2e0b54e1bacd9f349d1 /core/fpdfapi/edit/cpdf_encryptor.cpp | |
parent | 9f53dc093a9d00342ea76ecc0b4c8c84357ffd6e (diff) | |
download | pdfium-2bfa78540c375916ec9973f0ae11271b098180bd.tar.xz |
Rework of CPDF_Object writing.
Move writing logic into implementation of related clases.
Change-Id: If70dc418b352b562ee681ea34fa6595d6f52eee3
Reviewed-on: https://pdfium-review.googlesource.com/36350
Commit-Queue: Art Snake <art-snake@yandex-team.ru>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/edit/cpdf_encryptor.cpp')
-rw-r--r-- | core/fpdfapi/edit/cpdf_encryptor.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/core/fpdfapi/edit/cpdf_encryptor.cpp b/core/fpdfapi/edit/cpdf_encryptor.cpp index 8994b555ee..c74e53ed75 100644 --- a/core/fpdfapi/edit/cpdf_encryptor.cpp +++ b/core/fpdfapi/edit/cpdf_encryptor.cpp @@ -5,25 +5,27 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #include "core/fpdfapi/edit/cpdf_encryptor.h" + #include "core/fpdfapi/parser/cpdf_crypto_handler.h" +#include "third_party/base/ptr_util.h" -CPDF_Encryptor::CPDF_Encryptor(CPDF_CryptoHandler* pHandler, - int objnum, - pdfium::span<const uint8_t> src_data) { - if (src_data.empty()) - return; +CPDF_Encryptor::CPDF_Encryptor(CPDF_CryptoHandler* pHandler, int objnum) + : m_pHandler(pHandler), m_ObjNum(objnum) { + ASSERT(m_pHandler); +} - if (!pHandler) { - m_Span = src_data; - return; - } +std::vector<uint8_t> CPDF_Encryptor::Encrypt( + pdfium::span<const uint8_t> src_data) const { + if (src_data.empty()) + return std::vector<uint8_t>(); - uint32_t buf_size = pHandler->EncryptGetSize(src_data); - m_NewBuf.resize(buf_size); - pHandler->EncryptContent(objnum, 0, src_data, m_NewBuf.data(), - buf_size); // Updates |buf_size| with actual. - m_NewBuf.resize(buf_size); - m_Span = m_NewBuf; + std::vector<uint8_t> result; + uint32_t buf_size = m_pHandler->EncryptGetSize(src_data); + result.resize(buf_size); + m_pHandler->EncryptContent(m_ObjNum, 0, src_data, result.data(), + buf_size); // Updates |buf_size| with actual. + result.resize(buf_size); + return result; } CPDF_Encryptor::~CPDF_Encryptor() {} |