Added Self to Write After Approval
[deliverable/binutils-gdb.git] / libiberty / md5.c
index 0c0507dfeb153f46cf666d19156f10ec4037a146..9450586961f93c4fbd7370388586741d98c71d19 100644 (file)
@@ -1,8 +1,9 @@
 /* md5.c - Functions to compute MD5 message digest of files or memory blocks
    according to the definition of MD5 in RFC 1321 from April 1992.
    Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-   NOTE: The canonical source of this file is maintained with the GNU C
-   Library.  Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+   NOTE: This source is derived from an old version taken from the GNU C
+   Library (glibc).
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
@@ -64,10 +65,10 @@ void
 md5_init_ctx (ctx)
      struct md5_ctx *ctx;
 {
-  ctx->A = 0x67452301;
-  ctx->B = 0xefcdab89;
-  ctx->C = 0x98badcfe;
-  ctx->D = 0x10325476;
+  ctx->A = (md5_uint32) 0x67452301;
+  ctx->B = (md5_uint32) 0xefcdab89;
+  ctx->C = (md5_uint32) 0x98badcfe;
+  ctx->D = (md5_uint32) 0x10325476;
 
   ctx->total[0] = ctx->total[1] = 0;
   ctx->buflen = 0;
@@ -321,22 +322,22 @@ md5_process_block (buffer, len, ctx)
        */
 
       /* Round 1.  */
-      OP (A, B, C, D,  7, 0xd76aa478);
-      OP (D, A, B, C, 12, 0xe8c7b756);
-      OP (C, D, A, B, 17, 0x242070db);
-      OP (B, C, D, A, 22, 0xc1bdceee);
-      OP (A, B, C, D,  7, 0xf57c0faf);
-      OP (D, A, B, C, 12, 0x4787c62a);
-      OP (C, D, A, B, 17, 0xa8304613);
-      OP (B, C, D, A, 22, 0xfd469501);
-      OP (A, B, C, D,  7, 0x698098d8);
-      OP (D, A, B, C, 12, 0x8b44f7af);
-      OP (C, D, A, B, 17, 0xffff5bb1);
-      OP (B, C, D, A, 22, 0x895cd7be);
-      OP (A, B, C, D,  7, 0x6b901122);
-      OP (D, A, B, C, 12, 0xfd987193);
-      OP (C, D, A, B, 17, 0xa679438e);
-      OP (B, C, D, A, 22, 0x49b40821);
+      OP (A, B, C, D,  7, (md5_uint32) 0xd76aa478);
+      OP (D, A, B, C, 12, (md5_uint32) 0xe8c7b756);
+      OP (C, D, A, B, 17, (md5_uint32) 0x242070db);
+      OP (B, C, D, A, 22, (md5_uint32) 0xc1bdceee);
+      OP (A, B, C, D,  7, (md5_uint32) 0xf57c0faf);
+      OP (D, A, B, C, 12, (md5_uint32) 0x4787c62a);
+      OP (C, D, A, B, 17, (md5_uint32) 0xa8304613);
+      OP (B, C, D, A, 22, (md5_uint32) 0xfd469501);
+      OP (A, B, C, D,  7, (md5_uint32) 0x698098d8);
+      OP (D, A, B, C, 12, (md5_uint32) 0x8b44f7af);
+      OP (C, D, A, B, 17, (md5_uint32) 0xffff5bb1);
+      OP (B, C, D, A, 22, (md5_uint32) 0x895cd7be);
+      OP (A, B, C, D,  7, (md5_uint32) 0x6b901122);
+      OP (D, A, B, C, 12, (md5_uint32) 0xfd987193);
+      OP (C, D, A, B, 17, (md5_uint32) 0xa679438e);
+      OP (B, C, D, A, 22, (md5_uint32) 0x49b40821);
 
       /* For the second to fourth round we have the possibly swapped words
         in CORRECT_WORDS.  Redefine the macro to take an additional first
@@ -352,58 +353,58 @@ md5_process_block (buffer, len, ctx)
       while (0)
 
       /* Round 2.  */
-      OP (FG, A, B, C, D,  1,  5, 0xf61e2562);
-      OP (FG, D, A, B, C,  6,  9, 0xc040b340);
-      OP (FG, C, D, A, B, 11, 14, 0x265e5a51);
-      OP (FG, B, C, D, A,  0, 20, 0xe9b6c7aa);
-      OP (FG, A, B, C, D,  5,  5, 0xd62f105d);
-      OP (FG, D, A, B, C, 10,  9, 0x02441453);
-      OP (FG, C, D, A, B, 15, 14, 0xd8a1e681);
-      OP (FG, B, C, D, A,  4, 20, 0xe7d3fbc8);
-      OP (FG, A, B, C, D,  9,  5, 0x21e1cde6);
-      OP (FG, D, A, B, C, 14,  9, 0xc33707d6);
-      OP (FG, C, D, A, B,  3, 14, 0xf4d50d87);
-      OP (FG, B, C, D, A,  8, 20, 0x455a14ed);
-      OP (FG, A, B, C, D, 13,  5, 0xa9e3e905);
-      OP (FG, D, A, B, C,  2,  9, 0xfcefa3f8);
-      OP (FG, C, D, A, B,  7, 14, 0x676f02d9);
-      OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a);
+      OP (FG, A, B, C, D,  1,  5, (md5_uint32) 0xf61e2562);
+      OP (FG, D, A, B, C,  6,  9, (md5_uint32) 0xc040b340);
+      OP (FG, C, D, A, B, 11, 14, (md5_uint32) 0x265e5a51);
+      OP (FG, B, C, D, A,  0, 20, (md5_uint32) 0xe9b6c7aa);
+      OP (FG, A, B, C, D,  5,  5, (md5_uint32) 0xd62f105d);
+      OP (FG, D, A, B, C, 10,  9, (md5_uint32) 0x02441453);
+      OP (FG, C, D, A, B, 15, 14, (md5_uint32) 0xd8a1e681);
+      OP (FG, B, C, D, A,  4, 20, (md5_uint32) 0xe7d3fbc8);
+      OP (FG, A, B, C, D,  9,  5, (md5_uint32) 0x21e1cde6);
+      OP (FG, D, A, B, C, 14,  9, (md5_uint32) 0xc33707d6);
+      OP (FG, C, D, A, B,  3, 14, (md5_uint32) 0xf4d50d87);
+      OP (FG, B, C, D, A,  8, 20, (md5_uint32) 0x455a14ed);
+      OP (FG, A, B, C, D, 13,  5, (md5_uint32) 0xa9e3e905);
+      OP (FG, D, A, B, C,  2,  9, (md5_uint32) 0xfcefa3f8);
+      OP (FG, C, D, A, B,  7, 14, (md5_uint32) 0x676f02d9);
+      OP (FG, B, C, D, A, 12, 20, (md5_uint32) 0x8d2a4c8a);
 
       /* Round 3.  */
-      OP (FH, A, B, C, D,  5,  4, 0xfffa3942);
-      OP (FH, D, A, B, C,  8, 11, 0x8771f681);
-      OP (FH, C, D, A, B, 11, 16, 0x6d9d6122);
-      OP (FH, B, C, D, A, 14, 23, 0xfde5380c);
-      OP (FH, A, B, C, D,  1,  4, 0xa4beea44);
-      OP (FH, D, A, B, C,  4, 11, 0x4bdecfa9);
-      OP (FH, C, D, A, B,  7, 16, 0xf6bb4b60);
-      OP (FH, B, C, D, A, 10, 23, 0xbebfbc70);
-      OP (FH, A, B, C, D, 13,  4, 0x289b7ec6);
-      OP (FH, D, A, B, C,  0, 11, 0xeaa127fa);
-      OP (FH, C, D, A, B,  3, 16, 0xd4ef3085);
-      OP (FH, B, C, D, A,  6, 23, 0x04881d05);
-      OP (FH, A, B, C, D,  9,  4, 0xd9d4d039);
-      OP (FH, D, A, B, C, 12, 11, 0xe6db99e5);
-      OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8);
-      OP (FH, B, C, D, A,  2, 23, 0xc4ac5665);
+      OP (FH, A, B, C, D,  5,  4, (md5_uint32) 0xfffa3942);
+      OP (FH, D, A, B, C,  8, 11, (md5_uint32) 0x8771f681);
+      OP (FH, C, D, A, B, 11, 16, (md5_uint32) 0x6d9d6122);
+      OP (FH, B, C, D, A, 14, 23, (md5_uint32) 0xfde5380c);
+      OP (FH, A, B, C, D,  1,  4, (md5_uint32) 0xa4beea44);
+      OP (FH, D, A, B, C,  4, 11, (md5_uint32) 0x4bdecfa9);
+      OP (FH, C, D, A, B,  7, 16, (md5_uint32) 0xf6bb4b60);
+      OP (FH, B, C, D, A, 10, 23, (md5_uint32) 0xbebfbc70);
+      OP (FH, A, B, C, D, 13,  4, (md5_uint32) 0x289b7ec6);
+      OP (FH, D, A, B, C,  0, 11, (md5_uint32) 0xeaa127fa);
+      OP (FH, C, D, A, B,  3, 16, (md5_uint32) 0xd4ef3085);
+      OP (FH, B, C, D, A,  6, 23, (md5_uint32) 0x04881d05);
+      OP (FH, A, B, C, D,  9,  4, (md5_uint32) 0xd9d4d039);
+      OP (FH, D, A, B, C, 12, 11, (md5_uint32) 0xe6db99e5);
+      OP (FH, C, D, A, B, 15, 16, (md5_uint32) 0x1fa27cf8);
+      OP (FH, B, C, D, A,  2, 23, (md5_uint32) 0xc4ac5665);
 
       /* Round 4.  */
-      OP (FI, A, B, C, D,  0,  6, 0xf4292244);
-      OP (FI, D, A, B, C,  7, 10, 0x432aff97);
-      OP (FI, C, D, A, B, 14, 15, 0xab9423a7);
-      OP (FI, B, C, D, A,  5, 21, 0xfc93a039);
-      OP (FI, A, B, C, D, 12,  6, 0x655b59c3);
-      OP (FI, D, A, B, C,  3, 10, 0x8f0ccc92);
-      OP (FI, C, D, A, B, 10, 15, 0xffeff47d);
-      OP (FI, B, C, D, A,  1, 21, 0x85845dd1);
-      OP (FI, A, B, C, D,  8,  6, 0x6fa87e4f);
-      OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0);
-      OP (FI, C, D, A, B,  6, 15, 0xa3014314);
-      OP (FI, B, C, D, A, 13, 21, 0x4e0811a1);
-      OP (FI, A, B, C, D,  4,  6, 0xf7537e82);
-      OP (FI, D, A, B, C, 11, 10, 0xbd3af235);
-      OP (FI, C, D, A, B,  2, 15, 0x2ad7d2bb);
-      OP (FI, B, C, D, A,  9, 21, 0xeb86d391);
+      OP (FI, A, B, C, D,  0,  6, (md5_uint32) 0xf4292244);
+      OP (FI, D, A, B, C,  7, 10, (md5_uint32) 0x432aff97);
+      OP (FI, C, D, A, B, 14, 15, (md5_uint32) 0xab9423a7);
+      OP (FI, B, C, D, A,  5, 21, (md5_uint32) 0xfc93a039);
+      OP (FI, A, B, C, D, 12,  6, (md5_uint32) 0x655b59c3);
+      OP (FI, D, A, B, C,  3, 10, (md5_uint32) 0x8f0ccc92);
+      OP (FI, C, D, A, B, 10, 15, (md5_uint32) 0xffeff47d);
+      OP (FI, B, C, D, A,  1, 21, (md5_uint32) 0x85845dd1);
+      OP (FI, A, B, C, D,  8,  6, (md5_uint32) 0x6fa87e4f);
+      OP (FI, D, A, B, C, 15, 10, (md5_uint32) 0xfe2ce6e0);
+      OP (FI, C, D, A, B,  6, 15, (md5_uint32) 0xa3014314);
+      OP (FI, B, C, D, A, 13, 21, (md5_uint32) 0x4e0811a1);
+      OP (FI, A, B, C, D,  4,  6, (md5_uint32) 0xf7537e82);
+      OP (FI, D, A, B, C, 11, 10, (md5_uint32) 0xbd3af235);
+      OP (FI, C, D, A, B,  2, 15, (md5_uint32) 0x2ad7d2bb);
+      OP (FI, B, C, D, A,  9, 21, (md5_uint32) 0xeb86d391);
 
       /* Add the starting values of the context.  */
       A += A_save;
This page took 0.027377 seconds and 4 git commands to generate.