From d8169d7607b5084cdeceee3eaffca0ab16d2c14d Mon Sep 17 00:00:00 2001 From: Artem Strygin Date: Mon, 2 Oct 2017 19:19:28 +0300 Subject: Implement CPDF_CryptoHandler::DecryptObject Decryption logic has been extracted from CPDF_SyntaxParser::GetObjectBody into CPDF_CryptoHandler::DecryptObject Performance comparison results: https://pdfium-review.googlesource.com/c/pdfium/+/12970 Change-Id: Iaeaed56b7f96166bbbcf6db162192d2ba9af4698 Reviewed-on: https://pdfium-review.googlesource.com/12971 Commit-Queue: Art Snake Reviewed-by: dsinclair --- core/fpdfapi/parser/cpdf_syntax_parser.h | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) (limited to 'core/fpdfapi/parser/cpdf_syntax_parser.h') diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.h b/core/fpdfapi/parser/cpdf_syntax_parser.h index 2326362692..d025905858 100644 --- a/core/fpdfapi/parser/cpdf_syntax_parser.h +++ b/core/fpdfapi/parser/cpdf_syntax_parser.h @@ -40,21 +40,13 @@ class CPDF_SyntaxParser { void SetPos(FX_FILESIZE pos) { m_Pos = std::min(pos, m_FileLen); } std::unique_ptr GetObjectBody( - CPDF_IndirectObjectHolder* pObjList, - uint32_t objnum, - uint32_t gennum, - bool bDecrypt); + CPDF_IndirectObjectHolder* pObjList); std::unique_ptr GetObjectBodyForStrict( - CPDF_IndirectObjectHolder* pObjList, - uint32_t objnum, - uint32_t gennum, - bool bDecrypt); + CPDF_IndirectObjectHolder* pObjList); std::unique_ptr GetIndirectObject( CPDF_IndirectObjectHolder* pObjList, - uint32_t objnum, - bool bDecrypt, ParseType parse_type); ByteString GetKeyword(); @@ -62,7 +54,6 @@ class CPDF_SyntaxParser { void ToNextWord(); bool BackwardsSearchToWord(const ByteStringView& word, FX_FILESIZE limit); FX_FILESIZE FindTag(const ByteStringView& tag, FX_FILESIZE limit); - void SetEncrypt(const RetainPtr& pCryptoHandler); bool ReadBlock(uint8_t* pBuf, uint32_t size); bool GetCharAt(FX_FILESIZE pos, uint8_t& ch); ByteString GetNextWord(bool* bIsNumber); @@ -96,27 +87,20 @@ class CPDF_SyntaxParser { ByteString ReadHexString(); unsigned int ReadEOLMarkers(FX_FILESIZE pos); std::unique_ptr ReadStream( - std::unique_ptr pDict, - uint32_t objnum, - uint32_t gennum); + std::unique_ptr pDict); bool IsPositionRead(FX_FILESIZE pos) const; std::unique_ptr GetObjectBodyInternal( CPDF_IndirectObjectHolder* pObjList, - uint32_t objnum, - uint32_t gennum, - bool bDecrypt, ParseType parse_type); FX_FILESIZE m_Pos; - uint32_t m_MetadataObjnum; RetainPtr m_pFileAccess; FX_FILESIZE m_HeaderOffset; FX_FILESIZE m_FileLen; std::vector m_pFileBuf; FX_FILESIZE m_BufOffset; - RetainPtr m_pCryptoHandler; uint8_t m_WordBuffer[257]; uint32_t m_WordSize; WeakPtr m_pPool; -- cgit v1.2.3