Patched md5 a bit more
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:55:01 +0000 (16:55 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:55:01 +0000 (16:55 +0000)
Author: jgg
Date: 1999-10-25 04:10:02 GMT
Patched md5 a bit more

apt-pkg/contrib/md5.cc
buildlib/config.h.in
configure.in

index e656f32..381c387 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: md5.cc,v 1.4 1999/10/25 03:36:41 jgg Exp $
+// $Id: md5.cc,v 1.5 1999/10/25 04:10:02 jgg Exp $
 /* ######################################################################
    
    MD5Sum - MD5 Message Digest Algorithm.
@@ -28,8 +28,9 @@
    Still in the public domain.
 
    The classes use arrays of char that are a specific size. We cast those
-   arrays to UINT32's and go from there. This allows us to advoid using
-   config.h in a public header or internally newing memory. 
+   arrays to uint8_t's and go from there. This allows us to advoid using
+   the uncommon inttypes.h in a public header or internally newing memory.
+   In theory if C9x becomes nicely accepted
    
    ##################################################################### */
                                                                        /*}}}*/
 #include <string.h>
 #include <system.h>
 #include <unistd.h>
-#include <config.h>
+#include <netinet/in.h>                          // For htonl
 #include <inttypes.h>
                                                                        /*}}}*/
 
 // byteSwap - Swap bytes in a buffer                                   /*{{{*/
 // ---------------------------------------------------------------------
-/* This byteswap function will swap byte in a buffer of data */
-#ifdef WORDS_BIGENDIAN
-static void byteSwap(uint32_t *buf, unsigned words)
+/* Swap n 32 bit longs in given buffer */
+inline static void byteSwap(uint32_t *buf, unsigned words)
 {
-   unsigned char *p = (unsigned char *)buf;
-   
-   do 
+   do
    {
-      *buf++ = (uint32_t)((unsigned)p[3] << 8 | p[2]) << 16 |
-        ((unsigned)p[1] << 8 | p[0]);
-      p += 4;
-   } while (--words);
+      *buf++ = htonl(*buf);
+   }
+   while (--words);   
 }
-#else
-#define byteSwap(buf,words)
-#endif
                                                                        /*}}}*/
 // MD5Transform - Alters an existing MD5 hash                          /*{{{*/
 // ---------------------------------------------------------------------
index f882ca2..c6b097c 100644 (file)
@@ -1,7 +1,3 @@
-/* Define if your processor stores words with the most significant
-   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
-#undef WORDS_BIGENDIAN
-
 /* The number of bytes in a usigned char.  */
 #undef SIZEOF_CHAR
 
index 66b9833..1525e96 100644 (file)
@@ -83,28 +83,29 @@ AC_CACHE_CHECK([for C9x integer types],c9x_ints,[
                    [uint8_t Foo1;uint16_t Foo2;uint32_t Foo3;uint64_t Foo],
                   c9x_ints=yes,c9x_ints=no)])
 
-dnl Check the sizes etc. of the architecture
-changequote(,)
-if archline="`sed -ne 's/^'$archset':[         ]\+\(.*\)/\1/gp' $srcdir/buildlib/sizetable`"; then
-   changequote([,])
-   set $archline
-   if test "$1" = "little"; then
-      ac_cv_c_bigendian=no
-   else
-      ac_cv_c_bigendian=yes
+dnl We do not need this if we have inttypes..
+   if test x"$c9x_ints" = x"no"; then
+   dnl Check the sizes etc. of the architecture
+   changequote(,)
+   if archline="`sed -ne 's/^'$archset':[      ]\+\(.*\)/\1/gp' $srcdir/buildlib/sizetable`"; then
+      changequote([,])
+      set $archline
+      if test "$1" = "little"; then
+         ac_cv_c_bigendian=no
+      else
+         ac_cv_c_bigendian=yes
+      fi
+      size_char=$2
+      size_int=$3
+      size_short=$4
+      size_long=$5
    fi
-   size_char=$2
-   size_int=$3
-   size_short=$4
-   size_long=$5
-fi
 
-if test "$cross_compiling" = "yes" -a "$archline" = ""; then
-  AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable)
-fi
-AC_C_BIGENDIAN
+   if test "$cross_compiling" = "yes" -a "$archline" = ""; then
+     AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable)
+   fi
+   AC_C_BIGENDIAN
    
-if test x"$c9x_ints" = x"no"; then
    AC_CHECK_SIZEOF(char,$size_char)
    AC_CHECK_SIZEOF(int,$size_int)
    AC_CHECK_SIZEOF(short,$size_short)