summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_crypto_handler.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2017-04-12 16:50:51 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-04-13 06:00:01 +0000
commite0b592236db902e3e8cbca7ec64f8e2b192e1935 (patch)
treec77a5264e2a2f35c454471941045d3ccb0fe1172 /core/fpdfapi/parser/cpdf_crypto_handler.h
parentd20e3880234a35a558237316cac5d70fff4224bc (diff)
downloadpdfium-chromium/3074.tar.xz
Avoid tracking ownership via m_bLocalCryptoHandler. Also remove m_bEncryptCloned, as it is always false. Replace some methods with direct calls to underlying code. Change-Id: Ifa9d6f721c59d07e3b8e258f76832ca9f2ea0fc9 Reviewed-on: https://pdfium-review.googlesource.com/4111 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_crypto_handler.h')
-rw-r--r--core/fpdfapi/parser/cpdf_crypto_handler.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/core/fpdfapi/parser/cpdf_crypto_handler.h b/core/fpdfapi/parser/cpdf_crypto_handler.h
index 1e3890a55b..24caff7081 100644
--- a/core/fpdfapi/parser/cpdf_crypto_handler.h
+++ b/core/fpdfapi/parser/cpdf_crypto_handler.h
@@ -7,6 +7,7 @@
#ifndef CORE_FPDFAPI_PARSER_CPDF_CRYPTO_HANDLER_H_
#define CORE_FPDFAPI_PARSER_CPDF_CRYPTO_HANDLER_H_
+#include "core/fxcrt/cfx_retain_ptr.h"
#include "core/fxcrt/fx_basic.h"
#include "core/fxcrt/fx_string.h"
#include "core/fxcrt/fx_system.h"
@@ -14,10 +15,10 @@
class CPDF_Dictionary;
class CPDF_SecurityHandler;
-class CPDF_CryptoHandler {
+class CPDF_CryptoHandler : public CFX_Retainable {
public:
- CPDF_CryptoHandler();
- ~CPDF_CryptoHandler();
+ template <typename T, typename... Args>
+ friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
bool Init(CPDF_Dictionary* pEncryptDict,
CPDF_SecurityHandler* pSecurityHandler);
@@ -44,7 +45,11 @@ class CPDF_CryptoHandler {
bool Init(int cipher, const uint8_t* key, int keylen);
- protected:
+ private:
+ CPDF_CryptoHandler();
+ ~CPDF_CryptoHandler() override;
+
+ void PopulateKey(uint32_t objnum, uint32_t gennum, uint8_t* key);
void CryptBlock(bool bEncrypt,
uint32_t objnum,
uint32_t gennum,
@@ -64,9 +69,6 @@ class CPDF_CryptoHandler {
int m_KeyLen;
int m_Cipher;
uint8_t* m_pAESContext;
-
- private:
- void PopulateKey(uint32_t objnum, uint32_t gennum, uint8_t* key);
};
#endif // CORE_FPDFAPI_PARSER_CPDF_CRYPTO_HANDLER_H_