Author: cazfi
Date: Sun Mar 16 02:17:46 2014
New Revision: 24682

URL: http://svn.gna.org/viewcvs/freeciv?rev=24682&view=rev
Log:
Updated md5.c to match upstream revision 1.13.

See patch #4505

Modified:
    trunk/utility/md5.c

Modified: trunk/utility/md5.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/utility/md5.c?rev=24682&r1=24681&r2=24682&view=diff
==============================================================================
--- trunk/utility/md5.c (original)
+++ trunk/utility/md5.c Sun Mar 16 02:17:46 2014
@@ -17,7 +17,6 @@
  *
  * Homepage:
  * 
http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
- * [This version is from the page revision dated 2011/02/04 14:10.]
  *
  * Author:
  * Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
@@ -56,6 +55,9 @@
  *  - Don't expose the init/update/final interface to the rest of Freeciv
  *    in md5.h; just expose a single high-level function which calculates
  *    the checksum on a buffer (with the result as an ASCII string).
+ *
+ * Upstream version is revision 1.13 from:
+ * 
http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/md5.c
  */
 
 #ifdef HAVE_CONFIG_H
@@ -86,7 +88,8 @@
  */
 #define F(x, y, z)                      ((z) ^ ((x) & ((y) ^ (z))))
 #define G(x, y, z)                      ((y) ^ ((z) & ((x) ^ (y))))
-#define H(x, y, z)                      ((x) ^ (y) ^ (z))
+#define H(x, y, z)                     (((x) ^ (y)) ^ (z))
+#define H2(x, y, z)                    ((x) ^ ((y) ^ (z)))
 #define I(x, y, z)                      ((y) ^ ((x) | ~(z)))
 
 /*
@@ -131,7 +134,7 @@
   MD5_u32plus a, b, c, d;
   MD5_u32plus saved_a, saved_b, saved_c, saved_d;
 
-  ptr = data;
+  ptr = (const unsigned char *)data;
 
   a = ctx->a;
   b = ctx->b;
@@ -182,21 +185,21 @@
 
 /* Round 3 */
     STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4)
-    STEP(H, d, a, b, c, GET(8), 0x8771f681, 11)
+    STEP(H2, d, a, b, c, GET(8), 0x8771f681, 11)
     STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16)
-    STEP(H, b, c, d, a, GET(14), 0xfde5380c, 23)
+    STEP(H2, b, c, d, a, GET(14), 0xfde5380c, 23)
     STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4)
-    STEP(H, d, a, b, c, GET(4), 0x4bdecfa9, 11)
+    STEP(H2, d, a, b, c, GET(4), 0x4bdecfa9, 11)
     STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16)
-    STEP(H, b, c, d, a, GET(10), 0xbebfbc70, 23)
+    STEP(H2, b, c, d, a, GET(10), 0xbebfbc70, 23)
     STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4)
-    STEP(H, d, a, b, c, GET(0), 0xeaa127fa, 11)
+    STEP(H2, d, a, b, c, GET(0), 0xeaa127fa, 11)
     STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16)
-    STEP(H, b, c, d, a, GET(6), 0x04881d05, 23)
+    STEP(H2, b, c, d, a, GET(6), 0x04881d05, 23)
     STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4)
-    STEP(H, d, a, b, c, GET(12), 0xe6db99e5, 11)
+    STEP(H2, d, a, b, c, GET(12), 0xe6db99e5, 11)
     STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16)
-    STEP(H, b, c, d, a, GET(2), 0xc4ac5665, 23)
+    STEP(H2, b, c, d, a, GET(2), 0xc4ac5665, 23)
 
 /* Round 4 */
     STEP(I, a, b, c, d, GET(0), 0xf4292244, 6)
@@ -246,7 +249,7 @@
 static void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size)
 {
   MD5_u32plus saved_lo;
-  unsigned long used, free;
+  unsigned long used, available;
 
   saved_lo = ctx->lo;
   if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
@@ -256,16 +259,16 @@
   used = saved_lo & 0x3f;
 
   if (used) {
-    free = 64 - used;
-
-    if (size < free) {
+    available = 64 - used;
+
+    if (size < available) {
       memcpy(&ctx->buffer[used], data, size);
       return;
     }
 
-    memcpy(&ctx->buffer[used], data, free);
-    data = (unsigned char *)data + free;
-    size -= free;
+    memcpy(&ctx->buffer[used], data, available);
+    data = (unsigned char *)data + available;
+    size -= available;
     body(ctx, ctx->buffer, 64);
   }
 
@@ -279,22 +282,22 @@
 
 static void MD5_Final(unsigned char *result, MD5_CTX *ctx)
 {
-  unsigned long used, free;
+  unsigned long used, available;
 
   used = ctx->lo & 0x3f;
 
   ctx->buffer[used++] = 0x80;
 
-  free = 64 - used;
-
-  if (free < 8) {
-    memset(&ctx->buffer[used], 0, free);
+  available = 64 - used;
+
+  if (available < 8) {
+    memset(&ctx->buffer[used], 0, available);
     body(ctx, ctx->buffer, 64);
     used = 0;
-    free = 64;
+    available = 64;
   }
 
-  memset(&ctx->buffer[used], 0, free - 8);
+  memset(&ctx->buffer[used], 0, available - 8);
 
   ctx->lo <<= 3;
   ctx->buffer[56] = ctx->lo;


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to