5#ifndef CORE_FPDFAPI_PARSER_CPDF_OBJECT_WALKER_H_
6#define CORE_FPDFAPI_PARSER_CPDF_OBJECT_WALKER_H_
11#include "core/fxcrt/bytestring.h"
12#include "core/fxcrt/retain_ptr.h"
36 bool is_started_ =
false;
50 static std::unique_ptr<SubobjectIterator> MakeIterator(
56 size_t current_depth_ = 0;
57 std::stack<std::unique_ptr<SubobjectIterator>> stack_;
bool DecryptObjectTree(RetainPtr< CPDF_Object > object)
static bool IsSignatureDictionary(const CPDF_Dictionary *dictionary)
CPDF_CryptoHandler(Cipher cipher, const uint8_t *key, size_t keylen)
size_t EncryptGetSize(pdfium::span< const uint8_t > source) const
void EncryptContent(uint32_t objnum, uint32_t gennum, pdfium::span< const uint8_t > source, uint8_t *dest_buf, size_t &dest_size) const
RetainPtr< const CPDF_Object > GetDirectObjectFor(const ByteString &key) const
RetainPtr< CPDF_Object > GetNext()
CPDF_NonConstObjectWalker(RetainPtr< CPDF_Object > root)
virtual bool IsFinished() const =0
virtual RetainPtr< const CPDF_Object > IncrementImpl()=0
const CPDF_Object * object() const
virtual ~SubobjectIterator()
SubobjectIterator(RetainPtr< const CPDF_Object > object)
RetainPtr< const CPDF_Object > Increment()
CPDF_ObjectWalker(RetainPtr< const CPDF_Object > root)
size_t current_depth() const
RetainPtr< const CPDF_Object > GetNext()
const CPDF_Object * GetParent() const
void SkipWalkIntoCurrentObject()
const ByteString & dictionary_key() const
void SetData(pdfium::span< const uint8_t > pData)
void SetString(const ByteString &str) override
ByteString GetString() const override
void AppendSpan(pdfium::span< const uint8_t > span)
pdfium::span< const uint8_t > GetSpan() const
pdfium::span< uint8_t > GetMutableSpan()
void CRYPT_AESSetIV(CRYPT_aes_context *context, const uint8_t *iv)
void CRYPT_AESSetKey(CRYPT_aes_context *context, const uint8_t *key, uint32_t keylen)
void CRYPT_AESDecrypt(CRYPT_aes_context *context, uint8_t *dest, const uint8_t *src, uint32_t size)
CRYPT_aes_context m_Context