diff options
author | Tom Sepez <tsepez@chromium.org> | 2017-04-12 16:50:51 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-04-13 06:00:01 +0000 |
commit | e0b592236db902e3e8cbca7ec64f8e2b192e1935 (patch) | |
tree | c77a5264e2a2f35c454471941045d3ccb0fe1172 /core/fpdfapi/parser/cpdf_crypto_handler.h | |
parent | d20e3880234a35a558237316cac5d70fff4224bc (diff) | |
download | pdfium-e0b592236db902e3e8cbca7ec64f8e2b192e1935.tar.xz |
Refcount CPDF_CryptoHandlerchromium/3076chromium/3075chromium/3074chromium/3073chromium/3072
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.h | 16 |
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_ |