Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1138)

Side by Side Diff: core/include/fpdfapi/fpdf_parser.h

Issue 1782673002: Split off IPDF_CryptoHandler into its own .cpp/.h files (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Stray include. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 PDFium Authors. All rights reserved. 1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_ 7 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_
8 #define CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_ 8 #define CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_
9 9
10 #include <map> 10 #include <map>
11 #include <memory> 11 #include <memory>
12 #include <set> 12 #include <set>
13 13
14 #include "core/include/fpdfapi/fpdf_objects.h" 14 #include "core/include/fpdfapi/fpdf_objects.h"
15 #include "core/include/fxcrt/fx_basic.h" 15 #include "core/include/fxcrt/fx_basic.h"
16 16
17 class CFX_Font; 17 class CFX_Font;
18 class CFX_Matrix; 18 class CFX_Matrix;
19 class CPDF_ColorSpace; 19 class CPDF_ColorSpace;
20 class CPDF_CryptoHandler; 20 class IPDF_CryptoHandler;
21 class CPDF_Document; 21 class CPDF_Document;
22 class CPDF_DocPageData; 22 class CPDF_DocPageData;
23 class CPDF_DocRenderData; 23 class CPDF_DocRenderData;
24 class CPDF_Font; 24 class CPDF_Font;
25 class CPDF_FontEncoding; 25 class CPDF_FontEncoding;
26 class CPDF_IccProfile; 26 class CPDF_IccProfile;
27 class CPDF_Image; 27 class CPDF_Image;
28 class CPDF_Object; 28 class CPDF_Object;
29 class CPDF_Parser; 29 class CPDF_Parser;
30 class CPDF_Pattern; 30 class CPDF_Pattern;
(...skipping 26 matching lines...) Expand all
57 ~ScopedSetInsertion() { m_Set->erase(m_Entry); } 57 ~ScopedSetInsertion() { m_Set->erase(m_Entry); }
58 58
59 private: 59 private:
60 std::set<T>* const m_Set; 60 std::set<T>* const m_Set;
61 const T m_Entry; 61 const T m_Entry;
62 }; 62 };
63 63
64 // Indexed by 8-bit char code, contains unicode code points. 64 // Indexed by 8-bit char code, contains unicode code points.
65 extern const FX_WORD PDFDocEncoding[256]; 65 extern const FX_WORD PDFDocEncoding[256];
66 66
67 class CPDF_CryptoHandler {
68 public:
69 virtual ~CPDF_CryptoHandler() {}
70
71 virtual FX_BOOL Init(CPDF_Dictionary* pEncryptDict,
72 IPDF_SecurityHandler* pSecurityHandler) = 0;
73
74 virtual FX_DWORD DecryptGetSize(FX_DWORD src_size) = 0;
75
76 virtual void* DecryptStart(FX_DWORD objnum, FX_DWORD gennum) = 0;
77
78 virtual FX_BOOL DecryptStream(void* context,
79 const uint8_t* src_buf,
80 FX_DWORD src_size,
81 CFX_BinaryBuf& dest_buf) = 0;
82
83 virtual FX_BOOL DecryptFinish(void* context, CFX_BinaryBuf& dest_buf) = 0;
84
85 virtual FX_DWORD EncryptGetSize(FX_DWORD objnum,
86 FX_DWORD version,
87 const uint8_t* src_buf,
88 FX_DWORD src_size) = 0;
89
90 virtual FX_BOOL EncryptContent(FX_DWORD objnum,
91 FX_DWORD version,
92 const uint8_t* src_buf,
93 FX_DWORD src_size,
94 uint8_t* dest_buf,
95 FX_DWORD& dest_size) = 0;
96
97 void Decrypt(FX_DWORD objnum, FX_DWORD version, CFX_ByteString& str);
98 };
99
100 class CPDF_StandardCryptoHandler : public CPDF_CryptoHandler {
101 public:
102 CPDF_StandardCryptoHandler();
103 ~CPDF_StandardCryptoHandler() override;
104
105 // CPDF_CryptoHandler
106 FX_BOOL Init(CPDF_Dictionary* pEncryptDict,
107 IPDF_SecurityHandler* pSecurityHandler) override;
108 FX_DWORD DecryptGetSize(FX_DWORD src_size) override;
109 void* DecryptStart(FX_DWORD objnum, FX_DWORD gennum) override;
110 FX_BOOL DecryptStream(void* context,
111 const uint8_t* src_buf,
112 FX_DWORD src_size,
113 CFX_BinaryBuf& dest_buf) override;
114 FX_BOOL DecryptFinish(void* context, CFX_BinaryBuf& dest_buf) override;
115 FX_DWORD EncryptGetSize(FX_DWORD objnum,
116 FX_DWORD version,
117 const uint8_t* src_buf,
118 FX_DWORD src_size) override;
119 FX_BOOL EncryptContent(FX_DWORD objnum,
120 FX_DWORD version,
121 const uint8_t* src_buf,
122 FX_DWORD src_size,
123 uint8_t* dest_buf,
124 FX_DWORD& dest_size) override;
125
126 FX_BOOL Init(int cipher, const uint8_t* key, int keylen);
127
128 protected:
129 virtual void CryptBlock(FX_BOOL bEncrypt,
130 FX_DWORD objnum,
131 FX_DWORD gennum,
132 const uint8_t* src_buf,
133 FX_DWORD src_size,
134 uint8_t* dest_buf,
135 FX_DWORD& dest_size);
136 virtual void* CryptStart(FX_DWORD objnum, FX_DWORD gennum, FX_BOOL bEncrypt);
137 virtual FX_BOOL CryptStream(void* context,
138 const uint8_t* src_buf,
139 FX_DWORD src_size,
140 CFX_BinaryBuf& dest_buf,
141 FX_BOOL bEncrypt);
142 virtual FX_BOOL CryptFinish(void* context,
143 CFX_BinaryBuf& dest_buf,
144 FX_BOOL bEncrypt);
145
146 uint8_t m_EncryptKey[32];
147 int m_KeyLen;
148 int m_Cipher;
149 uint8_t* m_pAESContext;
150 };
151 67
152 CFX_ByteString PDF_NameDecode(const CFX_ByteStringC& orig); 68 CFX_ByteString PDF_NameDecode(const CFX_ByteStringC& orig);
153 CFX_ByteString PDF_NameDecode(const CFX_ByteString& orig); 69 CFX_ByteString PDF_NameDecode(const CFX_ByteString& orig);
154 CFX_ByteString PDF_NameEncode(const CFX_ByteString& orig); 70 CFX_ByteString PDF_NameEncode(const CFX_ByteString& orig);
155 CFX_ByteString PDF_EncodeString(const CFX_ByteString& src, 71 CFX_ByteString PDF_EncodeString(const CFX_ByteString& src,
156 FX_BOOL bHex = FALSE); 72 FX_BOOL bHex = FALSE);
157 CFX_WideString PDF_DecodeText(const uint8_t* pData, FX_DWORD size); 73 CFX_WideString PDF_DecodeText(const uint8_t* pData, FX_DWORD size);
158 CFX_WideString PDF_DecodeText(const CFX_ByteString& bstr); 74 CFX_WideString PDF_DecodeText(const CFX_ByteString& bstr);
159 CFX_ByteString PDF_EncodeText(const FX_WCHAR* pString, int len = -1); 75 CFX_ByteString PDF_EncodeText(const FX_WCHAR* pString, int len = -1);
160 CFX_ByteString PDF_EncodeText(const CFX_WideString& str); 76 CFX_ByteString PDF_EncodeText(const CFX_WideString& str);
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 FX_DWORD src_size, 255 FX_DWORD src_size,
340 const CPDF_Dictionary* pDict, 256 const CPDF_Dictionary* pDict,
341 uint8_t*& dest_buf, 257 uint8_t*& dest_buf,
342 FX_DWORD& dest_size, 258 FX_DWORD& dest_size,
343 CFX_ByteString& ImageEncoding, 259 CFX_ByteString& ImageEncoding,
344 CPDF_Dictionary*& pImageParms, 260 CPDF_Dictionary*& pImageParms,
345 FX_DWORD estimated_size, 261 FX_DWORD estimated_size,
346 FX_BOOL bImageAcc); 262 FX_BOOL bImageAcc);
347 263
348 #endif // CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_ 264 #endif // CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698