OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 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_FDRM_CRYPTO_FX_CRYPT_H_ | 7 #ifndef CORE_FDRM_CRYPTO_FX_CRYPT_H_ |
8 #define CORE_FDRM_CRYPTO_FX_CRYPT_H_ | 8 #define CORE_FDRM_CRYPTO_FX_CRYPT_H_ |
9 | 9 |
10 #include "core/fxcrt/fx_system.h" | 10 #include "core/fxcrt/fx_system.h" |
11 | 11 |
12 #ifdef __cplusplus | 12 #ifdef __cplusplus |
13 extern "C" { | 13 extern "C" { |
14 #endif | 14 #endif |
15 | 15 |
16 struct CRYPT_rc4_context { | 16 typedef struct { |
17 int32_t x; | 17 int32_t x; |
18 int32_t y; | 18 int32_t y; |
19 int32_t m[256]; | 19 int32_t m[256]; |
20 }; | 20 } CRYPT_rc4_context; |
21 | 21 |
22 struct CRYPT_md5_context { | 22 typedef struct { |
23 uint32_t total[2]; | 23 uint32_t total[2]; |
24 uint32_t state[4]; | 24 uint32_t state[4]; |
25 uint8_t buffer[64]; | 25 uint8_t buffer[64]; |
26 }; | 26 } CRYPT_md5_context; |
| 27 |
| 28 typedef struct { |
| 29 unsigned int h[5]; |
| 30 unsigned char block[64]; |
| 31 int blkused; |
| 32 unsigned int lenhi; |
| 33 unsigned int lenlo; |
| 34 } CRYPT_sha1_context; |
| 35 |
| 36 typedef struct { |
| 37 uint32_t total[2]; |
| 38 uint32_t state[8]; |
| 39 uint8_t buffer[64]; |
| 40 } CRYPT_sha256_context; |
| 41 |
| 42 typedef struct { |
| 43 uint64_t total[2]; |
| 44 uint64_t state[8]; |
| 45 uint8_t buffer[128]; |
| 46 } CRYPT_sha384_context; |
27 | 47 |
28 void CRYPT_ArcFourCryptBlock(uint8_t* data, | 48 void CRYPT_ArcFourCryptBlock(uint8_t* data, |
29 uint32_t size, | 49 uint32_t size, |
30 const uint8_t* key, | 50 const uint8_t* key, |
31 uint32_t keylen); | 51 uint32_t keylen); |
32 void CRYPT_ArcFourSetup(CRYPT_rc4_context* context, | 52 void CRYPT_ArcFourSetup(CRYPT_rc4_context* context, |
33 const uint8_t* key, | 53 const uint8_t* key, |
34 uint32_t length); | 54 uint32_t length); |
35 void CRYPT_ArcFourCrypt(CRYPT_rc4_context* context, | 55 void CRYPT_ArcFourCrypt(CRYPT_rc4_context* context, |
36 uint8_t* data, | 56 uint8_t* data, |
37 uint32_t size); | 57 uint32_t size); |
| 58 |
38 void CRYPT_AESSetKey(void* context, | 59 void CRYPT_AESSetKey(void* context, |
39 uint32_t blocklen, | 60 uint32_t blocklen, |
40 const uint8_t* key, | 61 const uint8_t* key, |
41 uint32_t keylen, | 62 uint32_t keylen, |
42 bool bEncrypt); | 63 bool bEncrypt); |
43 void CRYPT_AESSetIV(void* context, const uint8_t* iv); | 64 void CRYPT_AESSetIV(void* context, const uint8_t* iv); |
44 void CRYPT_AESDecrypt(void* context, | 65 void CRYPT_AESDecrypt(void* context, |
45 uint8_t* dest, | 66 uint8_t* dest, |
46 const uint8_t* src, | 67 const uint8_t* src, |
47 uint32_t size); | 68 uint32_t size); |
48 void CRYPT_AESEncrypt(void* context, | 69 void CRYPT_AESEncrypt(void* context, |
49 uint8_t* dest, | 70 uint8_t* dest, |
50 const uint8_t* src, | 71 const uint8_t* src, |
51 uint32_t size); | 72 uint32_t size); |
52 void CRYPT_MD5Generate(const uint8_t* data, uint32_t size, uint8_t digest[16]); | 73 |
53 void CRYPT_MD5Start(CRYPT_md5_context* context); | 74 void CRYPT_MD5Start(CRYPT_md5_context* context); |
54 void CRYPT_MD5Update(CRYPT_md5_context* context, | 75 void CRYPT_MD5Update(CRYPT_md5_context* context, |
55 const uint8_t* data, | 76 const uint8_t* data, |
56 uint32_t size); | 77 uint32_t size); |
57 void CRYPT_MD5Finish(CRYPT_md5_context* context, uint8_t digest[16]); | 78 void CRYPT_MD5Finish(CRYPT_md5_context* context, uint8_t digest[16]); |
| 79 void CRYPT_MD5Generate(const uint8_t* data, uint32_t size, uint8_t digest[16]); |
| 80 |
| 81 void CRYPT_SHA1Start(CRYPT_sha1_context* context); |
| 82 void CRYPT_SHA1Update(CRYPT_sha1_context* context, |
| 83 const uint8_t* data, |
| 84 uint32_t size); |
| 85 void CRYPT_SHA1Finish(CRYPT_sha1_context* context, uint8_t digest[20]); |
58 void CRYPT_SHA1Generate(const uint8_t* data, uint32_t size, uint8_t digest[20]); | 86 void CRYPT_SHA1Generate(const uint8_t* data, uint32_t size, uint8_t digest[20]); |
59 void CRYPT_SHA1Start(void* context); | 87 |
60 void CRYPT_SHA1Update(void* context, const uint8_t* data, uint32_t size); | 88 void CRYPT_SHA256Start(CRYPT_sha256_context* context); |
61 void CRYPT_SHA1Finish(void* context, uint8_t digest[20]); | 89 void CRYPT_SHA256Update(CRYPT_sha256_context* context, |
| 90 const uint8_t* data, |
| 91 uint32_t size); |
| 92 void CRYPT_SHA256Finish(CRYPT_sha256_context* context, uint8_t digest[32]); |
62 void CRYPT_SHA256Generate(const uint8_t* data, | 93 void CRYPT_SHA256Generate(const uint8_t* data, |
63 uint32_t size, | 94 uint32_t size, |
64 uint8_t digest[32]); | 95 uint8_t digest[32]); |
65 void CRYPT_SHA256Start(void* context); | 96 |
66 void CRYPT_SHA256Update(void* context, const uint8_t* data, uint32_t size); | 97 void CRYPT_SHA384Start(CRYPT_sha384_context* context); |
67 void CRYPT_SHA256Finish(void* context, uint8_t digest[32]); | 98 void CRYPT_SHA384Update(CRYPT_sha384_context* context, |
68 void CRYPT_SHA384Start(void* context); | 99 const uint8_t* data, |
69 void CRYPT_SHA384Update(void* context, const uint8_t* data, uint32_t size); | 100 uint32_t size); |
70 void CRYPT_SHA384Finish(void* context, uint8_t digest[48]); | 101 void CRYPT_SHA384Finish(CRYPT_sha384_context* context, uint8_t digest[48]); |
71 void CRYPT_SHA384Generate(const uint8_t* data, | 102 void CRYPT_SHA384Generate(const uint8_t* data, |
72 uint32_t size, | 103 uint32_t size, |
73 uint8_t digest[48]); | 104 uint8_t digest[48]); |
| 105 |
74 void CRYPT_SHA512Start(void* context); | 106 void CRYPT_SHA512Start(void* context); |
75 void CRYPT_SHA512Update(void* context, const uint8_t* data, uint32_t size); | 107 void CRYPT_SHA512Update(void* context, const uint8_t* data, uint32_t size); |
76 void CRYPT_SHA512Finish(void* context, uint8_t digest[64]); | 108 void CRYPT_SHA512Finish(void* context, uint8_t digest[64]); |
77 void CRYPT_SHA512Generate(const uint8_t* data, | 109 void CRYPT_SHA512Generate(const uint8_t* data, |
78 uint32_t size, | 110 uint32_t size, |
79 uint8_t digest[64]); | 111 uint8_t digest[64]); |
80 #ifdef __cplusplus | 112 #ifdef __cplusplus |
81 }; | 113 }; |
82 #endif | 114 #endif |
83 | 115 |
84 #endif // CORE_FDRM_CRYPTO_FX_CRYPT_H_ | 116 #endif // CORE_FDRM_CRYPTO_FX_CRYPT_H_ |
OLD | NEW |