Changeset 609 for branches/GNU/src/binutils/libiberty/md5.c
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/libiberty/md5.c
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 66 66 struct md5_ctx *ctx; 67 67 { 68 ctx->A = 0x67452301;69 ctx->B = 0xefcdab89;70 ctx->C = 0x98badcfe;71 ctx->D = 0x10325476;68 ctx->A = (md5_uint32) 0x67452301; 69 ctx->B = (md5_uint32) 0xefcdab89; 70 ctx->C = (md5_uint32) 0x98badcfe; 71 ctx->D = (md5_uint32) 0x10325476; 72 72 73 73 ctx->total[0] = ctx->total[1] = 0; … … 230 230 } 231 231 232 buffer = (const char *) buffer + add;232 buffer = (const void *) ((const char *) buffer + add); 233 233 len -= add; 234 234 } … … 238 238 { 239 239 md5_process_block (buffer, len & ~63, ctx); 240 buffer = (const char *) buffer + (len & ~63);240 buffer = (const void *) ((const char *) buffer + (len & ~63)); 241 241 len &= 63; 242 242 } … … 270 270 { 271 271 md5_uint32 correct_words[16]; 272 const md5_uint32 *words = buffer;272 const md5_uint32 *words = (const md5_uint32 *) buffer; 273 273 size_t nwords = len / sizeof (md5_uint32); 274 274 const md5_uint32 *endp = words + nwords; … … 323 323 324 324 /* Round 1. */ 325 OP (A, B, C, D, 7, 0xd76aa478);326 OP (D, A, B, C, 12, 0xe8c7b756);327 OP (C, D, A, B, 17, 0x242070db);328 OP (B, C, D, A, 22, 0xc1bdceee);329 OP (A, B, C, D, 7, 0xf57c0faf);330 OP (D, A, B, C, 12, 0x4787c62a);331 OP (C, D, A, B, 17, 0xa8304613);332 OP (B, C, D, A, 22, 0xfd469501);333 OP (A, B, C, D, 7, 0x698098d8);334 OP (D, A, B, C, 12, 0x8b44f7af);335 OP (C, D, A, B, 17, 0xffff5bb1);336 OP (B, C, D, A, 22, 0x895cd7be);337 OP (A, B, C, D, 7, 0x6b901122);338 OP (D, A, B, C, 12, 0xfd987193);339 OP (C, D, A, B, 17, 0xa679438e);340 OP (B, C, D, A, 22, 0x49b40821);325 OP (A, B, C, D, 7, (md5_uint32) 0xd76aa478); 326 OP (D, A, B, C, 12, (md5_uint32) 0xe8c7b756); 327 OP (C, D, A, B, 17, (md5_uint32) 0x242070db); 328 OP (B, C, D, A, 22, (md5_uint32) 0xc1bdceee); 329 OP (A, B, C, D, 7, (md5_uint32) 0xf57c0faf); 330 OP (D, A, B, C, 12, (md5_uint32) 0x4787c62a); 331 OP (C, D, A, B, 17, (md5_uint32) 0xa8304613); 332 OP (B, C, D, A, 22, (md5_uint32) 0xfd469501); 333 OP (A, B, C, D, 7, (md5_uint32) 0x698098d8); 334 OP (D, A, B, C, 12, (md5_uint32) 0x8b44f7af); 335 OP (C, D, A, B, 17, (md5_uint32) 0xffff5bb1); 336 OP (B, C, D, A, 22, (md5_uint32) 0x895cd7be); 337 OP (A, B, C, D, 7, (md5_uint32) 0x6b901122); 338 OP (D, A, B, C, 12, (md5_uint32) 0xfd987193); 339 OP (C, D, A, B, 17, (md5_uint32) 0xa679438e); 340 OP (B, C, D, A, 22, (md5_uint32) 0x49b40821); 341 341 342 342 /* For the second to fourth round we have the possibly swapped words … … 344 344 argument specifying the function to use. */ 345 345 #undef OP 346 #define OP( f, a, b, c, d, k, s, T)\346 #define OP(a, b, c, d, k, s, T) \ 347 347 do \ 348 348 { \ 349 a += f(b, c, d) + correct_words[k] + T; \349 a += FX (b, c, d) + correct_words[k] + T; \ 350 350 CYCLIC (a, s); \ 351 351 a += b; \ … … 353 353 while (0) 354 354 355 #define FX(b, c, d) FG (b, c, d) 356 355 357 /* Round 2. */ 356 OP (FG, A, B, C, D, 1, 5, 0xf61e2562); 357 OP (FG, D, A, B, C, 6, 9, 0xc040b340); 358 OP (FG, C, D, A, B, 11, 14, 0x265e5a51); 359 OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa); 360 OP (FG, A, B, C, D, 5, 5, 0xd62f105d); 361 OP (FG, D, A, B, C, 10, 9, 0x02441453); 362 OP (FG, C, D, A, B, 15, 14, 0xd8a1e681); 363 OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8); 364 OP (FG, A, B, C, D, 9, 5, 0x21e1cde6); 365 OP (FG, D, A, B, C, 14, 9, 0xc33707d6); 366 OP (FG, C, D, A, B, 3, 14, 0xf4d50d87); 367 OP (FG, B, C, D, A, 8, 20, 0x455a14ed); 368 OP (FG, A, B, C, D, 13, 5, 0xa9e3e905); 369 OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8); 370 OP (FG, C, D, A, B, 7, 14, 0x676f02d9); 371 OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a); 358 OP (A, B, C, D, 1, 5, (md5_uint32) 0xf61e2562); 359 OP (D, A, B, C, 6, 9, (md5_uint32) 0xc040b340); 360 OP (C, D, A, B, 11, 14, (md5_uint32) 0x265e5a51); 361 OP (B, C, D, A, 0, 20, (md5_uint32) 0xe9b6c7aa); 362 OP (A, B, C, D, 5, 5, (md5_uint32) 0xd62f105d); 363 OP (D, A, B, C, 10, 9, (md5_uint32) 0x02441453); 364 OP (C, D, A, B, 15, 14, (md5_uint32) 0xd8a1e681); 365 OP (B, C, D, A, 4, 20, (md5_uint32) 0xe7d3fbc8); 366 OP (A, B, C, D, 9, 5, (md5_uint32) 0x21e1cde6); 367 OP (D, A, B, C, 14, 9, (md5_uint32) 0xc33707d6); 368 OP (C, D, A, B, 3, 14, (md5_uint32) 0xf4d50d87); 369 OP (B, C, D, A, 8, 20, (md5_uint32) 0x455a14ed); 370 OP (A, B, C, D, 13, 5, (md5_uint32) 0xa9e3e905); 371 OP (D, A, B, C, 2, 9, (md5_uint32) 0xfcefa3f8); 372 OP (C, D, A, B, 7, 14, (md5_uint32) 0x676f02d9); 373 OP (B, C, D, A, 12, 20, (md5_uint32) 0x8d2a4c8a); 374 375 #undef FX 376 #define FX(b, c, d) FH (b, c, d) 372 377 373 378 /* Round 3. */ 374 OP (FH, A, B, C, D, 5, 4, 0xfffa3942); 375 OP (FH, D, A, B, C, 8, 11, 0x8771f681); 376 OP (FH, C, D, A, B, 11, 16, 0x6d9d6122); 377 OP (FH, B, C, D, A, 14, 23, 0xfde5380c); 378 OP (FH, A, B, C, D, 1, 4, 0xa4beea44); 379 OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9); 380 OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60); 381 OP (FH, B, C, D, A, 10, 23, 0xbebfbc70); 382 OP (FH, A, B, C, D, 13, 4, 0x289b7ec6); 383 OP (FH, D, A, B, C, 0, 11, 0xeaa127fa); 384 OP (FH, C, D, A, B, 3, 16, 0xd4ef3085); 385 OP (FH, B, C, D, A, 6, 23, 0x04881d05); 386 OP (FH, A, B, C, D, 9, 4, 0xd9d4d039); 387 OP (FH, D, A, B, C, 12, 11, 0xe6db99e5); 388 OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8); 389 OP (FH, B, C, D, A, 2, 23, 0xc4ac5665); 379 OP (A, B, C, D, 5, 4, (md5_uint32) 0xfffa3942); 380 OP (D, A, B, C, 8, 11, (md5_uint32) 0x8771f681); 381 OP (C, D, A, B, 11, 16, (md5_uint32) 0x6d9d6122); 382 OP (B, C, D, A, 14, 23, (md5_uint32) 0xfde5380c); 383 OP (A, B, C, D, 1, 4, (md5_uint32) 0xa4beea44); 384 OP (D, A, B, C, 4, 11, (md5_uint32) 0x4bdecfa9); 385 OP (C, D, A, B, 7, 16, (md5_uint32) 0xf6bb4b60); 386 OP (B, C, D, A, 10, 23, (md5_uint32) 0xbebfbc70); 387 OP (A, B, C, D, 13, 4, (md5_uint32) 0x289b7ec6); 388 OP (D, A, B, C, 0, 11, (md5_uint32) 0xeaa127fa); 389 OP (C, D, A, B, 3, 16, (md5_uint32) 0xd4ef3085); 390 OP (B, C, D, A, 6, 23, (md5_uint32) 0x04881d05); 391 OP (A, B, C, D, 9, 4, (md5_uint32) 0xd9d4d039); 392 OP (D, A, B, C, 12, 11, (md5_uint32) 0xe6db99e5); 393 OP (C, D, A, B, 15, 16, (md5_uint32) 0x1fa27cf8); 394 OP (B, C, D, A, 2, 23, (md5_uint32) 0xc4ac5665); 395 396 #undef FX 397 #define FX(b, c, d) FI (b, c, d) 390 398 391 399 /* Round 4. */ 392 OP ( FI, A, B, C, D, 0, 6,0xf4292244);393 OP ( FI, D, A, B, C, 7, 10,0x432aff97);394 OP ( FI, C, D, A, B, 14, 15,0xab9423a7);395 OP ( FI, B, C, D, A, 5, 21,0xfc93a039);396 OP ( FI, A, B, C, D, 12, 6,0x655b59c3);397 OP ( FI, D, A, B, C, 3, 10,0x8f0ccc92);398 OP ( FI, C, D, A, B, 10, 15,0xffeff47d);399 OP ( FI, B, C, D, A, 1, 21,0x85845dd1);400 OP ( FI, A, B, C, D, 8, 6,0x6fa87e4f);401 OP ( FI, D, A, B, C, 15, 10,0xfe2ce6e0);402 OP ( FI, C, D, A, B, 6, 15,0xa3014314);403 OP ( FI, B, C, D, A, 13, 21,0x4e0811a1);404 OP ( FI, A, B, C, D, 4, 6,0xf7537e82);405 OP ( FI, D, A, B, C, 11, 10,0xbd3af235);406 OP ( FI, C, D, A, B, 2, 15,0x2ad7d2bb);407 OP ( FI, B, C, D, A, 9, 21,0xeb86d391);400 OP (A, B, C, D, 0, 6, (md5_uint32) 0xf4292244); 401 OP (D, A, B, C, 7, 10, (md5_uint32) 0x432aff97); 402 OP (C, D, A, B, 14, 15, (md5_uint32) 0xab9423a7); 403 OP (B, C, D, A, 5, 21, (md5_uint32) 0xfc93a039); 404 OP (A, B, C, D, 12, 6, (md5_uint32) 0x655b59c3); 405 OP (D, A, B, C, 3, 10, (md5_uint32) 0x8f0ccc92); 406 OP (C, D, A, B, 10, 15, (md5_uint32) 0xffeff47d); 407 OP (B, C, D, A, 1, 21, (md5_uint32) 0x85845dd1); 408 OP (A, B, C, D, 8, 6, (md5_uint32) 0x6fa87e4f); 409 OP (D, A, B, C, 15, 10, (md5_uint32) 0xfe2ce6e0); 410 OP (C, D, A, B, 6, 15, (md5_uint32) 0xa3014314); 411 OP (B, C, D, A, 13, 21, (md5_uint32) 0x4e0811a1); 412 OP (A, B, C, D, 4, 6, (md5_uint32) 0xf7537e82); 413 OP (D, A, B, C, 11, 10, (md5_uint32) 0xbd3af235); 414 OP (C, D, A, B, 2, 15, (md5_uint32) 0x2ad7d2bb); 415 OP (B, C, D, A, 9, 21, (md5_uint32) 0xeb86d391); 408 416 409 417 /* Add the starting values of the context. */ -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.