Ignore:
Timestamp:
Aug 16, 2003, 6:59:22 PM (22 years ago)
Author:
bird
Message:

binutils v2.14 - offical sources.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/binutils/libiberty/md5.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    6666     struct md5_ctx *ctx;
    6767{
    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;
    7272
    7373  ctx->total[0] = ctx->total[1] = 0;
     
    230230        }
    231231
    232       buffer = (const char *) buffer + add;
     232      buffer = (const void *) ((const char *) buffer + add);
    233233      len -= add;
    234234    }
     
    238238    {
    239239      md5_process_block (buffer, len & ~63, ctx);
    240       buffer = (const char *) buffer + (len & ~63);
     240      buffer = (const void *) ((const char *) buffer + (len & ~63));
    241241      len &= 63;
    242242    }
     
    270270{
    271271  md5_uint32 correct_words[16];
    272   const md5_uint32 *words = buffer;
     272  const md5_uint32 *words = (const md5_uint32 *) buffer;
    273273  size_t nwords = len / sizeof (md5_uint32);
    274274  const md5_uint32 *endp = words + nwords;
     
    323323
    324324      /* 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);
    341341
    342342      /* For the second to fourth round we have the possibly swapped words
     
    344344         argument specifying the function to use.  */
    345345#undef OP
    346 #define OP(f, a, b, c, d, k, s, T)                                      \
     346#define OP(a, b, c, d, k, s, T)                                         \
    347347      do                                                                \
    348348        {                                                               \
    349           a += f (b, c, d) + correct_words[k] + T;                      \
     349          a += FX (b, c, d) + correct_words[k] + T;                     \
    350350          CYCLIC (a, s);                                                \
    351351          a += b;                                                       \
     
    353353      while (0)
    354354
     355#define FX(b, c, d) FG (b, c, d)
     356
    355357      /* 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)
    372377
    373378      /* 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)
    390398
    391399      /* 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);
    408416
    409417      /* Add the starting values of the context.  */
Note: See TracChangeset for help on using the changeset viewer.