summaryrefslogtreecommitdiff
path: root/core/fpdfapi/edit/cpdf_encryptor.cpp
diff options
context:
space:
mode:
authorArtem Strygin <art-snake@yandex-team.ru>2018-07-23 19:54:34 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-07-23 19:54:34 +0000
commit2bfa78540c375916ec9973f0ae11271b098180bd (patch)
tree4ec0b11e0014c95acda8a2e0b54e1bacd9f349d1 /core/fpdfapi/edit/cpdf_encryptor.cpp
parent9f53dc093a9d00342ea76ecc0b4c8c84357ffd6e (diff)
downloadpdfium-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.cpp32
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() {}