| Index: core/include/fpdfapi/fpdf_parser.h
|
| diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h
|
| index 06030701b4ecfc3d251ac1f29207a23ff3cfa765..2134d0159b94b3ed96492f040cf8a87a0d03933f 100644
|
| --- a/core/include/fpdfapi/fpdf_parser.h
|
| +++ b/core/include/fpdfapi/fpdf_parser.h
|
| @@ -64,125 +64,6 @@ class ScopedSetInsertion {
|
| // Indexed by 8-bit char code, contains unicode code points.
|
| extern const FX_WORD PDFDocEncoding[256];
|
|
|
| -#define FXCIPHER_NONE 0
|
| -#define FXCIPHER_RC4 1
|
| -#define FXCIPHER_AES 2
|
| -#define FXCIPHER_AES2 3
|
| -
|
| -class IPDF_SecurityHandler {
|
| - public:
|
| - virtual ~IPDF_SecurityHandler() {}
|
| -
|
| - virtual FX_BOOL OnInit(CPDF_Parser* pParser,
|
| - CPDF_Dictionary* pEncryptDict) = 0;
|
| -
|
| - virtual FX_DWORD GetPermissions() = 0;
|
| - virtual FX_BOOL GetCryptInfo(int& cipher,
|
| - const uint8_t*& buffer,
|
| - int& keylen) = 0;
|
| -
|
| - virtual FX_BOOL IsMetadataEncrypted() = 0;
|
| - virtual CPDF_CryptoHandler* CreateCryptoHandler() = 0;
|
| -};
|
| -
|
| -#define PDF_ENCRYPT_CONTENT 0
|
| -
|
| -class CPDF_StandardSecurityHandler : public IPDF_SecurityHandler {
|
| - public:
|
| - CPDF_StandardSecurityHandler();
|
| - ~CPDF_StandardSecurityHandler() override;
|
| -
|
| - // IPDF_SecurityHandler:
|
| - FX_BOOL OnInit(CPDF_Parser* pParser, CPDF_Dictionary* pEncryptDict) override;
|
| - FX_DWORD GetPermissions() override;
|
| - FX_BOOL GetCryptInfo(int& cipher,
|
| - const uint8_t*& buffer,
|
| - int& keylen) override;
|
| - FX_BOOL IsMetadataEncrypted() override;
|
| - CPDF_CryptoHandler* CreateCryptoHandler() override;
|
| -
|
| - void OnCreate(CPDF_Dictionary* pEncryptDict,
|
| - CPDF_Array* pIdArray,
|
| - const uint8_t* user_pass,
|
| - FX_DWORD user_size,
|
| - const uint8_t* owner_pass,
|
| - FX_DWORD owner_size,
|
| - FX_DWORD type = PDF_ENCRYPT_CONTENT);
|
| -
|
| - void OnCreate(CPDF_Dictionary* pEncryptDict,
|
| - CPDF_Array* pIdArray,
|
| - const uint8_t* user_pass,
|
| - FX_DWORD user_size,
|
| - FX_DWORD type = PDF_ENCRYPT_CONTENT);
|
| -
|
| - CFX_ByteString GetUserPassword(const uint8_t* owner_pass,
|
| - FX_DWORD pass_size,
|
| - int32_t key_len);
|
| - int CheckPassword(const uint8_t* password,
|
| - FX_DWORD pass_size,
|
| - FX_BOOL bOwner,
|
| - uint8_t* key,
|
| - int key_len);
|
| -
|
| - private:
|
| - int m_Version;
|
| -
|
| - int m_Revision;
|
| -
|
| - CPDF_Parser* m_pParser;
|
| -
|
| - CPDF_Dictionary* m_pEncryptDict;
|
| -
|
| - FX_BOOL LoadDict(CPDF_Dictionary* pEncryptDict);
|
| - FX_BOOL LoadDict(CPDF_Dictionary* pEncryptDict,
|
| - FX_DWORD type,
|
| - int& cipher,
|
| - int& key_len);
|
| -
|
| - FX_BOOL CheckUserPassword(const uint8_t* password,
|
| - FX_DWORD pass_size,
|
| - FX_BOOL bIgnoreEncryptMeta,
|
| - uint8_t* key,
|
| - int32_t key_len);
|
| -
|
| - FX_BOOL CheckOwnerPassword(const uint8_t* password,
|
| - FX_DWORD pass_size,
|
| - uint8_t* key,
|
| - int32_t key_len);
|
| - FX_BOOL AES256_CheckPassword(const uint8_t* password,
|
| - FX_DWORD size,
|
| - FX_BOOL bOwner,
|
| - uint8_t* key);
|
| - void AES256_SetPassword(CPDF_Dictionary* pEncryptDict,
|
| - const uint8_t* password,
|
| - FX_DWORD size,
|
| - FX_BOOL bOwner,
|
| - const uint8_t* key);
|
| - void AES256_SetPerms(CPDF_Dictionary* pEncryptDict,
|
| - FX_DWORD permission,
|
| - FX_BOOL bEncryptMetadata,
|
| - const uint8_t* key);
|
| - void OnCreate(CPDF_Dictionary* pEncryptDict,
|
| - CPDF_Array* pIdArray,
|
| - const uint8_t* user_pass,
|
| - FX_DWORD user_size,
|
| - const uint8_t* owner_pass,
|
| - FX_DWORD owner_size,
|
| - FX_BOOL bDefault,
|
| - FX_DWORD type);
|
| - FX_BOOL CheckSecurity(int32_t key_len);
|
| -
|
| - FX_DWORD m_Permissions;
|
| -
|
| - int m_Cipher;
|
| -
|
| - uint8_t m_EncryptKey[32];
|
| -
|
| - int m_KeyLen;
|
| -};
|
| -
|
| -IPDF_SecurityHandler* FPDF_CreateStandardSecurityHandler();
|
| -
|
| class CPDF_CryptoHandler {
|
| public:
|
| virtual ~CPDF_CryptoHandler() {}
|
| @@ -215,6 +96,7 @@ class CPDF_CryptoHandler {
|
|
|
| void Decrypt(FX_DWORD objnum, FX_DWORD version, CFX_ByteString& str);
|
| };
|
| +
|
| class CPDF_StandardCryptoHandler : public CPDF_CryptoHandler {
|
| public:
|
| CPDF_StandardCryptoHandler();
|
|
|