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

Side by Side Diff: core/src/fdrm/crypto/fx_crypt.cpp

Issue 1172793002: Merge to XFA: Use stdint.h types throughout PDFium. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 6 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
« no previous file with comments | « core/include/reflow/reflowengine.h ('k') | core/src/fdrm/crypto/fx_crypt_sha.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "../../../include/fdrm/fx_crypt.h" 7 #include "../../../include/fdrm/fx_crypt.h"
8 #include "../../../include/fxcrt/fx_basic.h" 8 #include "../../../include/fxcrt/fx_basic.h"
9 #include "../../../include/fxcrt/fx_safe_types.h" 9 #include "../../../include/fxcrt/fx_safe_types.h"
10 10
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 } 55 }
56 void CRYPT_ArcFourCryptBlock(FX_LPBYTE pData, FX_DWORD size, FX_LPCBYTE key, FX_ DWORD keylen) 56 void CRYPT_ArcFourCryptBlock(FX_LPBYTE pData, FX_DWORD size, FX_LPCBYTE key, FX_ DWORD keylen)
57 { 57 {
58 rc4_state s; 58 rc4_state s;
59 CRYPT_ArcFourSetup(&s, key, keylen); 59 CRYPT_ArcFourSetup(&s, key, keylen);
60 CRYPT_ArcFourCrypt(&s, pData, size); 60 CRYPT_ArcFourCrypt(&s, pData, size);
61 } 61 }
62 struct md5_context { 62 struct md5_context {
63 FX_DWORD total[2]; 63 FX_DWORD total[2];
64 FX_DWORD state[4]; 64 FX_DWORD state[4];
65 FX_BYTE buffer[64]; 65 uint8_t buffer[64];
66 }; 66 };
67 #define GET_FX_DWORD(n,b,i) \ 67 #define GET_FX_DWORD(n,b,i) \
68 { \ 68 { \
69 (n) = (FX_DWORD) ((FX_BYTE *) b)[(i)] \ 69 (n) = (FX_DWORD) ((uint8_t *) b)[(i)] \
70 | (((FX_DWORD) ((FX_BYTE *) b)[(i)+1]) << 8) \ 70 | (((FX_DWORD) ((uint8_t *) b)[(i)+1]) << 8) \
71 | (((FX_DWORD) ((FX_BYTE *) b)[(i)+2]) << 16) \ 71 | (((FX_DWORD) ((uint8_t *) b)[(i)+2]) << 16) \
72 | (((FX_DWORD) ((FX_BYTE *) b)[(i)+3]) << 24); \ 72 | (((FX_DWORD) ((uint8_t *) b)[(i)+3]) << 24); \
73 } 73 }
74 #define PUT_FX_DWORD(n,b,i) \ 74 #define PUT_FX_DWORD(n,b,i) \
75 { \ 75 { \
76 (((FX_BYTE *) b)[(i)] ) = (FX_BYTE) (((n) ) & 0xFF); \ 76 (((uint8_t *) b)[(i)] ) = (uint8_t) (((n) ) & 0xFF); \
77 (((FX_BYTE *) b)[(i)+1]) = (FX_BYTE) (((n) >> 8) & 0xFF); \ 77 (((uint8_t *) b)[(i)+1]) = (uint8_t) (((n) >> 8) & 0xFF); \
78 (((FX_BYTE *) b)[(i)+2]) = (FX_BYTE) (((n) >> 16) & 0xFF); \ 78 (((uint8_t *) b)[(i)+2]) = (uint8_t) (((n) >> 16) & 0xFF); \
79 (((FX_BYTE *) b)[(i)+3]) = (FX_BYTE) (((n) >> 24) & 0xFF); \ 79 (((uint8_t *) b)[(i)+3]) = (uint8_t) (((n) >> 24) & 0xFF); \
80 } 80 }
81 void md5_process( struct md5_context *ctx, const FX_BYTE data[64] ) 81 void md5_process( struct md5_context *ctx, const uint8_t data[64] )
82 { 82 {
83 FX_DWORD A, B, C, D, X[16]; 83 FX_DWORD A, B, C, D, X[16];
84 GET_FX_DWORD( X[0], data, 0 ); 84 GET_FX_DWORD( X[0], data, 0 );
85 GET_FX_DWORD( X[1], data, 4 ); 85 GET_FX_DWORD( X[1], data, 4 );
86 GET_FX_DWORD( X[2], data, 8 ); 86 GET_FX_DWORD( X[2], data, 8 );
87 GET_FX_DWORD( X[3], data, 12 ); 87 GET_FX_DWORD( X[3], data, 12 );
88 GET_FX_DWORD( X[4], data, 16 ); 88 GET_FX_DWORD( X[4], data, 16 );
89 GET_FX_DWORD( X[5], data, 20 ); 89 GET_FX_DWORD( X[5], data, 20 );
90 GET_FX_DWORD( X[6], data, 24 ); 90 GET_FX_DWORD( X[6], data, 24 );
91 GET_FX_DWORD( X[7], data, 28 ); 91 GET_FX_DWORD( X[7], data, 28 );
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 } 215 }
216 while( length >= 64 ) { 216 while( length >= 64 ) {
217 md5_process( ctx, input ); 217 md5_process( ctx, input );
218 length -= 64; 218 length -= 64;
219 input += 64; 219 input += 64;
220 } 220 }
221 if( length ) { 221 if( length ) {
222 FXSYS_memcpy32( (void *) (ctx->buffer + left), (void *) input, length ); 222 FXSYS_memcpy32( (void *) (ctx->buffer + left), (void *) input, length );
223 } 223 }
224 } 224 }
225 const FX_BYTE md5_padding[64] = { 225 const uint8_t md5_padding[64] = {
226 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
230 }; 230 };
231 void CRYPT_MD5Finish(FX_LPVOID pctx, FX_BYTE digest[16] ) 231 void CRYPT_MD5Finish(FX_LPVOID pctx, uint8_t digest[16] )
232 { 232 {
233 struct md5_context *ctx = (struct md5_context *)pctx; 233 struct md5_context *ctx = (struct md5_context *)pctx;
234 FX_DWORD last, padn; 234 FX_DWORD last, padn;
235 FX_BYTE msglen[8]; 235 uint8_t msglen[8];
236 PUT_FX_DWORD( ctx->total[0], msglen, 0 ); 236 PUT_FX_DWORD( ctx->total[0], msglen, 0 );
237 PUT_FX_DWORD( ctx->total[1], msglen, 4 ); 237 PUT_FX_DWORD( ctx->total[1], msglen, 4 );
238 last = ( ctx->total[0] >> 3 ) & 0x3F; 238 last = ( ctx->total[0] >> 3 ) & 0x3F;
239 padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last ); 239 padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last );
240 CRYPT_MD5Update( ctx, md5_padding, padn ); 240 CRYPT_MD5Update( ctx, md5_padding, padn );
241 CRYPT_MD5Update( ctx, msglen, 8 ); 241 CRYPT_MD5Update( ctx, msglen, 8 );
242 PUT_FX_DWORD( ctx->state[0], digest, 0 ); 242 PUT_FX_DWORD( ctx->state[0], digest, 0 );
243 PUT_FX_DWORD( ctx->state[1], digest, 4 ); 243 PUT_FX_DWORD( ctx->state[1], digest, 4 );
244 PUT_FX_DWORD( ctx->state[2], digest, 8 ); 244 PUT_FX_DWORD( ctx->state[2], digest, 8 );
245 PUT_FX_DWORD( ctx->state[3], digest, 12 ); 245 PUT_FX_DWORD( ctx->state[3], digest, 12 );
246 } 246 }
247 void CRYPT_MD5Generate(FX_LPCBYTE input, FX_DWORD length, FX_BYTE digest[16]) 247 void CRYPT_MD5Generate(FX_LPCBYTE input, FX_DWORD length, uint8_t digest[16])
248 { 248 {
249 md5_context ctx; 249 md5_context ctx;
250 CRYPT_MD5Start(&ctx); 250 CRYPT_MD5Start(&ctx);
251 CRYPT_MD5Update(&ctx, input, length); 251 CRYPT_MD5Update(&ctx, input, length);
252 CRYPT_MD5Finish(&ctx, digest); 252 CRYPT_MD5Finish(&ctx, digest);
253 } 253 }
254 static FX_BOOL (*g_PubKeyDecryptor)(FX_LPCBYTE pData, FX_DWORD size, FX_LPBYTE d ata_buf, FX_DWORD& data_len) = NULL; 254 static FX_BOOL (*g_PubKeyDecryptor)(FX_LPCBYTE pData, FX_DWORD size, FX_LPBYTE d ata_buf, FX_DWORD& data_len) = NULL;
255 void CRYPT_SetPubKeyDecryptor(FX_BOOL (*func)(FX_LPCBYTE pData, FX_DWORD size, F X_LPBYTE data_buf, FX_DWORD& data_len)) 255 void CRYPT_SetPubKeyDecryptor(FX_BOOL (*func)(FX_LPCBYTE pData, FX_DWORD size, F X_LPBYTE data_buf, FX_DWORD& data_len))
256 { 256 {
257 g_PubKeyDecryptor = func; 257 g_PubKeyDecryptor = func;
258 } 258 }
259 #ifdef __cplusplus 259 #ifdef __cplusplus
260 }; 260 };
261 #endif 261 #endif
OLDNEW
« no previous file with comments | « core/include/reflow/reflowengine.h ('k') | core/src/fdrm/crypto/fx_crypt_sha.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698