summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:55:01 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:55:01 +0000
commit67a51bcc96e3e09528ce0b5841f93f511ed1e44f (patch)
tree8fd58f689749f7f6d26a60324e38b12d9d13b94e
parent021988eaf4dd67c73dbbb26302e8466836fc7566 (diff)
Patched md5 a bit more
Author: jgg Date: 1999-10-25 04:10:02 GMT Patched md5 a bit more
-rw-r--r--apt-pkg/contrib/md5.cc28
-rw-r--r--buildlib/config.h.in4
-rw-r--r--configure.in39
3 files changed, 31 insertions, 40 deletions
diff --git a/apt-pkg/contrib/md5.cc b/apt-pkg/contrib/md5.cc
index e656f3221..381c38753 100644
--- a/apt-pkg/contrib/md5.cc
+++ b/apt-pkg/contrib/md5.cc
@@ -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
##################################################################### */
/*}}}*/
@@ -44,28 +45,21 @@
#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 /*{{{*/
// ---------------------------------------------------------------------
diff --git a/buildlib/config.h.in b/buildlib/config.h.in
index f882ca25d..c6b097ca8 100644
--- a/buildlib/config.h.in
+++ b/buildlib/config.h.in
@@ -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
diff --git a/configure.in b/configure.in
index 66b98337d..1525e961b 100644
--- a/configure.in
+++ b/configure.in
@@ -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)