/[gcl]/gcl/binutils/libiberty/md5.c
ViewVC logotype

Diff of /gcl/binutils/libiberty/md5.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by camm, Fri Aug 9 05:36:28 2002 UTC revision 1.2 by camm, Fri Sep 9 23:32:58 2005 UTC
# Line 229  md5_process_bytes (buffer, len, ctx) Line 229  md5_process_bytes (buffer, len, ctx)
229            ctx->buflen = (left_over + add) & 63;            ctx->buflen = (left_over + add) & 63;
230          }          }
231    
232        buffer = (const char *) buffer + add;        buffer = (const void *) ((const char *) buffer + add);
233        len -= add;        len -= add;
234      }      }
235    
# Line 237  md5_process_bytes (buffer, len, ctx) Line 237  md5_process_bytes (buffer, len, ctx)
237    if (len > 64)    if (len > 64)
238      {      {
239        md5_process_block (buffer, len & ~63, ctx);        md5_process_block (buffer, len & ~63, ctx);
240        buffer = (const char *) buffer + (len & ~63);        buffer = (const void *) ((const char *) buffer + (len & ~63));
241        len &= 63;        len &= 63;
242      }      }
243    
# Line 269  md5_process_block (buffer, len, ctx) Line 269  md5_process_block (buffer, len, ctx)
269       struct md5_ctx *ctx;       struct md5_ctx *ctx;
270  {  {
271    md5_uint32 correct_words[16];    md5_uint32 correct_words[16];
272    const md5_uint32 *words = buffer;    const md5_uint32 *words = (const md5_uint32 *) buffer;
273    size_t nwords = len / sizeof (md5_uint32);    size_t nwords = len / sizeof (md5_uint32);
274    const md5_uint32 *endp = words + nwords;    const md5_uint32 *endp = words + nwords;
275    md5_uint32 A = ctx->A;    md5_uint32 A = ctx->A;
# Line 343  md5_process_block (buffer, len, ctx) Line 343  md5_process_block (buffer, len, ctx)
343           in CORRECT_WORDS.  Redefine the macro to take an additional first           in CORRECT_WORDS.  Redefine the macro to take an additional first
344           argument specifying the function to use.  */           argument specifying the function to use.  */
345  #undef OP  #undef OP
346  #define OP(f, a, b, c, d, k, s, T)                                      \  #define OP(a, b, c, d, k, s, T)                                         \
347        do                                                                \        do                                                                \
348          {                                                               \          {                                                               \
349            a += f (b, c, d) + correct_words[k] + T;                      \            a += FX (b, c, d) + correct_words[k] + T;                     \
350            CYCLIC (a, s);                                                \            CYCLIC (a, s);                                                \
351            a += b;                                                       \            a += b;                                                       \
352          }                                                               \          }                                                               \
353        while (0)        while (0)
354    
355    #define FX(b, c, d) FG (b, c, d)
356    
357        /* Round 2.  */        /* Round 2.  */
358        OP (FG, A, B, C, D,  1,  5, (md5_uint32) 0xf61e2562);        OP (A, B, C, D,  1,  5, (md5_uint32) 0xf61e2562);
359        OP (FG, D, A, B, C,  6,  9, (md5_uint32) 0xc040b340);        OP (D, A, B, C,  6,  9, (md5_uint32) 0xc040b340);
360        OP (FG, C, D, A, B, 11, 14, (md5_uint32) 0x265e5a51);        OP (C, D, A, B, 11, 14, (md5_uint32) 0x265e5a51);
361        OP (FG, B, C, D, A,  0, 20, (md5_uint32) 0xe9b6c7aa);        OP (B, C, D, A,  0, 20, (md5_uint32) 0xe9b6c7aa);
362        OP (FG, A, B, C, D,  5,  5, (md5_uint32) 0xd62f105d);        OP (A, B, C, D,  5,  5, (md5_uint32) 0xd62f105d);
363        OP (FG, D, A, B, C, 10,  9, (md5_uint32) 0x02441453);        OP (D, A, B, C, 10,  9, (md5_uint32) 0x02441453);
364        OP (FG, C, D, A, B, 15, 14, (md5_uint32) 0xd8a1e681);        OP (C, D, A, B, 15, 14, (md5_uint32) 0xd8a1e681);
365        OP (FG, B, C, D, A,  4, 20, (md5_uint32) 0xe7d3fbc8);        OP (B, C, D, A,  4, 20, (md5_uint32) 0xe7d3fbc8);
366        OP (FG, A, B, C, D,  9,  5, (md5_uint32) 0x21e1cde6);        OP (A, B, C, D,  9,  5, (md5_uint32) 0x21e1cde6);
367        OP (FG, D, A, B, C, 14,  9, (md5_uint32) 0xc33707d6);        OP (D, A, B, C, 14,  9, (md5_uint32) 0xc33707d6);
368        OP (FG, C, D, A, B,  3, 14, (md5_uint32) 0xf4d50d87);        OP (C, D, A, B,  3, 14, (md5_uint32) 0xf4d50d87);
369        OP (FG, B, C, D, A,  8, 20, (md5_uint32) 0x455a14ed);        OP (B, C, D, A,  8, 20, (md5_uint32) 0x455a14ed);
370        OP (FG, A, B, C, D, 13,  5, (md5_uint32) 0xa9e3e905);        OP (A, B, C, D, 13,  5, (md5_uint32) 0xa9e3e905);
371        OP (FG, D, A, B, C,  2,  9, (md5_uint32) 0xfcefa3f8);        OP (D, A, B, C,  2,  9, (md5_uint32) 0xfcefa3f8);
372        OP (FG, C, D, A, B,  7, 14, (md5_uint32) 0x676f02d9);        OP (C, D, A, B,  7, 14, (md5_uint32) 0x676f02d9);
373        OP (FG, B, C, D, A, 12, 20, (md5_uint32) 0x8d2a4c8a);        OP (B, C, D, A, 12, 20, (md5_uint32) 0x8d2a4c8a);
374    
375    #undef FX
376    #define FX(b, c, d) FH (b, c, d)
377    
378        /* Round 3.  */        /* Round 3.  */
379        OP (FH, A, B, C, D,  5,  4, (md5_uint32) 0xfffa3942);        OP (A, B, C, D,  5,  4, (md5_uint32) 0xfffa3942);
380        OP (FH, D, A, B, C,  8, 11, (md5_uint32) 0x8771f681);        OP (D, A, B, C,  8, 11, (md5_uint32) 0x8771f681);
381        OP (FH, C, D, A, B, 11, 16, (md5_uint32) 0x6d9d6122);        OP (C, D, A, B, 11, 16, (md5_uint32) 0x6d9d6122);
382        OP (FH, B, C, D, A, 14, 23, (md5_uint32) 0xfde5380c);        OP (B, C, D, A, 14, 23, (md5_uint32) 0xfde5380c);
383        OP (FH, A, B, C, D,  1,  4, (md5_uint32) 0xa4beea44);        OP (A, B, C, D,  1,  4, (md5_uint32) 0xa4beea44);
384        OP (FH, D, A, B, C,  4, 11, (md5_uint32) 0x4bdecfa9);        OP (D, A, B, C,  4, 11, (md5_uint32) 0x4bdecfa9);
385        OP (FH, C, D, A, B,  7, 16, (md5_uint32) 0xf6bb4b60);        OP (C, D, A, B,  7, 16, (md5_uint32) 0xf6bb4b60);
386        OP (FH, B, C, D, A, 10, 23, (md5_uint32) 0xbebfbc70);        OP (B, C, D, A, 10, 23, (md5_uint32) 0xbebfbc70);
387        OP (FH, A, B, C, D, 13,  4, (md5_uint32) 0x289b7ec6);        OP (A, B, C, D, 13,  4, (md5_uint32) 0x289b7ec6);
388        OP (FH, D, A, B, C,  0, 11, (md5_uint32) 0xeaa127fa);        OP (D, A, B, C,  0, 11, (md5_uint32) 0xeaa127fa);
389        OP (FH, C, D, A, B,  3, 16, (md5_uint32) 0xd4ef3085);        OP (C, D, A, B,  3, 16, (md5_uint32) 0xd4ef3085);
390        OP (FH, B, C, D, A,  6, 23, (md5_uint32) 0x04881d05);        OP (B, C, D, A,  6, 23, (md5_uint32) 0x04881d05);
391        OP (FH, A, B, C, D,  9,  4, (md5_uint32) 0xd9d4d039);        OP (A, B, C, D,  9,  4, (md5_uint32) 0xd9d4d039);
392        OP (FH, D, A, B, C, 12, 11, (md5_uint32) 0xe6db99e5);        OP (D, A, B, C, 12, 11, (md5_uint32) 0xe6db99e5);
393        OP (FH, C, D, A, B, 15, 16, (md5_uint32) 0x1fa27cf8);        OP (C, D, A, B, 15, 16, (md5_uint32) 0x1fa27cf8);
394        OP (FH, B, C, D, A,  2, 23, (md5_uint32) 0xc4ac5665);        OP (B, C, D, A,  2, 23, (md5_uint32) 0xc4ac5665);
395    
396    #undef FX
397    #define FX(b, c, d) FI (b, c, d)
398    
399        /* Round 4.  */        /* Round 4.  */
400        OP (FI, A, B, C, D,  0,  6, (md5_uint32) 0xf4292244);        OP (A, B, C, D,  0,  6, (md5_uint32) 0xf4292244);
401        OP (FI, D, A, B, C,  7, 10, (md5_uint32) 0x432aff97);        OP (D, A, B, C,  7, 10, (md5_uint32) 0x432aff97);
402        OP (FI, C, D, A, B, 14, 15, (md5_uint32) 0xab9423a7);        OP (C, D, A, B, 14, 15, (md5_uint32) 0xab9423a7);
403        OP (FI, B, C, D, A,  5, 21, (md5_uint32) 0xfc93a039);        OP (B, C, D, A,  5, 21, (md5_uint32) 0xfc93a039);
404        OP (FI, A, B, C, D, 12,  6, (md5_uint32) 0x655b59c3);        OP (A, B, C, D, 12,  6, (md5_uint32) 0x655b59c3);
405        OP (FI, D, A, B, C,  3, 10, (md5_uint32) 0x8f0ccc92);        OP (D, A, B, C,  3, 10, (md5_uint32) 0x8f0ccc92);
406        OP (FI, C, D, A, B, 10, 15, (md5_uint32) 0xffeff47d);        OP (C, D, A, B, 10, 15, (md5_uint32) 0xffeff47d);
407        OP (FI, B, C, D, A,  1, 21, (md5_uint32) 0x85845dd1);        OP (B, C, D, A,  1, 21, (md5_uint32) 0x85845dd1);
408        OP (FI, A, B, C, D,  8,  6, (md5_uint32) 0x6fa87e4f);        OP (A, B, C, D,  8,  6, (md5_uint32) 0x6fa87e4f);
409        OP (FI, D, A, B, C, 15, 10, (md5_uint32) 0xfe2ce6e0);        OP (D, A, B, C, 15, 10, (md5_uint32) 0xfe2ce6e0);
410        OP (FI, C, D, A, B,  6, 15, (md5_uint32) 0xa3014314);        OP (C, D, A, B,  6, 15, (md5_uint32) 0xa3014314);
411        OP (FI, B, C, D, A, 13, 21, (md5_uint32) 0x4e0811a1);        OP (B, C, D, A, 13, 21, (md5_uint32) 0x4e0811a1);
412        OP (FI, A, B, C, D,  4,  6, (md5_uint32) 0xf7537e82);        OP (A, B, C, D,  4,  6, (md5_uint32) 0xf7537e82);
413        OP (FI, D, A, B, C, 11, 10, (md5_uint32) 0xbd3af235);        OP (D, A, B, C, 11, 10, (md5_uint32) 0xbd3af235);
414        OP (FI, C, D, A, B,  2, 15, (md5_uint32) 0x2ad7d2bb);        OP (C, D, A, B,  2, 15, (md5_uint32) 0x2ad7d2bb);
415        OP (FI, B, C, D, A,  9, 21, (md5_uint32) 0xeb86d391);        OP (B, C, D, A,  9, 21, (md5_uint32) 0xeb86d391);
416    
417        /* Add the starting values of the context.  */        /* Add the starting values of the context.  */
418        A += A_save;        A += A_save;

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26