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

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

Issue 2392603004: Move core/fpdfapi/fpdf_parser to core/fpdfapi/parser (Closed)
Patch Set: Rebase to master Created 4 years, 2 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
(Empty)
1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef CORE_FPDFAPI_FPDF_PARSER_CPDF_SECURITY_HANDLER_H_
8 #define CORE_FPDFAPI_FPDF_PARSER_CPDF_SECURITY_HANDLER_H_
9
10 #include "core/fxcrt/fx_string.h"
11 #include "core/fxcrt/fx_system.h"
12
13 #define FXCIPHER_NONE 0
14 #define FXCIPHER_RC4 1
15 #define FXCIPHER_AES 2
16 #define FXCIPHER_AES2 3
17
18 #define PDF_ENCRYPT_CONTENT 0
19
20 class CPDF_Array;
21 class CPDF_CryptoHandler;
22 class CPDF_Dictionary;
23 class CPDF_Parser;
24
25 class CPDF_SecurityHandler {
26 public:
27 CPDF_SecurityHandler();
28 ~CPDF_SecurityHandler();
29
30 FX_BOOL OnInit(CPDF_Parser* pParser, CPDF_Dictionary* pEncryptDict);
31 uint32_t GetPermissions();
32 FX_BOOL GetCryptInfo(int& cipher, const uint8_t*& buffer, int& keylen);
33 bool IsMetadataEncrypted() const;
34 CPDF_CryptoHandler* CreateCryptoHandler();
35
36 void OnCreate(CPDF_Dictionary* pEncryptDict,
37 CPDF_Array* pIdArray,
38 const uint8_t* user_pass,
39 uint32_t user_size,
40 const uint8_t* owner_pass,
41 uint32_t owner_size,
42 uint32_t type = PDF_ENCRYPT_CONTENT);
43
44 void OnCreate(CPDF_Dictionary* pEncryptDict,
45 CPDF_Array* pIdArray,
46 const uint8_t* user_pass,
47 uint32_t user_size,
48 uint32_t type = PDF_ENCRYPT_CONTENT);
49
50 CFX_ByteString GetUserPassword(const uint8_t* owner_pass,
51 uint32_t pass_size,
52 int32_t key_len);
53 int CheckPassword(const uint8_t* password,
54 uint32_t pass_size,
55 FX_BOOL bOwner,
56 uint8_t* key,
57 int key_len);
58
59 private:
60 FX_BOOL LoadDict(CPDF_Dictionary* pEncryptDict);
61 FX_BOOL LoadDict(CPDF_Dictionary* pEncryptDict,
62 uint32_t type,
63 int& cipher,
64 int& key_len);
65
66 FX_BOOL CheckUserPassword(const uint8_t* password,
67 uint32_t pass_size,
68 FX_BOOL bIgnoreEncryptMeta,
69 uint8_t* key,
70 int32_t key_len);
71
72 FX_BOOL CheckOwnerPassword(const uint8_t* password,
73 uint32_t pass_size,
74 uint8_t* key,
75 int32_t key_len);
76 FX_BOOL AES256_CheckPassword(const uint8_t* password,
77 uint32_t size,
78 FX_BOOL bOwner,
79 uint8_t* key);
80 void AES256_SetPassword(CPDF_Dictionary* pEncryptDict,
81 const uint8_t* password,
82 uint32_t size,
83 FX_BOOL bOwner,
84 const uint8_t* key);
85 void AES256_SetPerms(CPDF_Dictionary* pEncryptDict,
86 uint32_t permission,
87 FX_BOOL bEncryptMetadata,
88 const uint8_t* key);
89 void OnCreate(CPDF_Dictionary* pEncryptDict,
90 CPDF_Array* pIdArray,
91 const uint8_t* user_pass,
92 uint32_t user_size,
93 const uint8_t* owner_pass,
94 uint32_t owner_size,
95 FX_BOOL bDefault,
96 uint32_t type);
97 FX_BOOL CheckSecurity(int32_t key_len);
98
99 int m_Version;
100 int m_Revision;
101 CPDF_Parser* m_pParser;
102 CPDF_Dictionary* m_pEncryptDict;
103 uint32_t m_Permissions;
104 int m_Cipher;
105 uint8_t m_EncryptKey[32];
106 int m_KeyLen;
107 bool m_bOwnerUnlocked;
108 };
109
110 #endif // CORE_FPDFAPI_FPDF_PARSER_CPDF_SECURITY_HANDLER_H_
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_parser/cpdf_reference.cpp ('k') | core/fpdfapi/fpdf_parser/cpdf_security_handler.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698