X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmd5.h;h=661de4bba55374ecaae37b2ebf76ffd11a9b906f;hb=5b3ef25d51691462730b000864e0eb09ebd34013;hp=3a417c0d5b0c73cf3a03a6a8f2ca30c2001c5b67;hpb=b258c18a6f1cbb23ab21f55325ddaeccf9005cba;p=gnulib.git diff --git a/lib/md5.h b/lib/md5.h index 3a417c0d5..661de4bba 100644 --- a/lib/md5.h +++ b/lib/md5.h @@ -1,6 +1,9 @@ /* md5.h - Declaration of functions and data types used for MD5 sum computing library functions. - Copyright (C) 1995, 1996, 1999, 2000, 2003 Free Software Foundation, Inc. + + Copyright (C) 1995, 1996, 1999, 2000, 2003, 2004 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. @@ -22,42 +25,16 @@ #define _MD5_H 1 #include -#include - -/* The following contortions are an attempt to use the C preprocessor - to determine an unsigned integral type that is 32 bits wide. An - alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but - doing that would require that the configure script compile and *run* - the resulting executable. Locally running cross-compiled executables - is usually not possible. */ -#ifdef _LIBC +#if HAVE_INTTYPES_H +# include +#endif +#if HAVE_STDINT_H || _LIBC # include -typedef uint32_t md5_uint32; -typedef uintptr_t md5_uintptr; -#else -# define UINT_MAX_32_BITS 4294967295U - -# if UINT_MAX == UINT_MAX_32_BITS - typedef unsigned int md5_uint32; -# else -# if USHRT_MAX == UINT_MAX_32_BITS - typedef unsigned short md5_uint32; -# else -# if ULONG_MAX == UINT_MAX_32_BITS - typedef unsigned long md5_uint32; -# else - /* The following line is intended to evoke an error. - Using #error is not portable enough. */ - "Cannot determine unsigned 32-bit data type." -# endif -# endif -# endif -/* We have to make a guess about the integer type equivalent in size - to pointers which should always be correct. */ -typedef unsigned long int md5_uintptr; #endif +typedef uint32_t md5_uint32; + /* Structure to save state of computation between the single steps. */ struct md5_ctx { @@ -124,19 +101,6 @@ extern int md5_stream (FILE *stream, void *resblock); digest. */ extern void *md5_buffer (const char *buffer, size_t len, void *resblock); -/* The following is from gnupg-1.0.2's cipher/bithelp.h. */ -/* Rotate a 32 bit integer by n bytes */ -#if defined __GNUC__ && defined __i386__ -static inline md5_uint32 -rol(md5_uint32 x, int n) -{ - __asm__("roll %%cl,%0" - :"=r" (x) - :"0" (x),"c" (n)); - return x; -} -#else -# define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) ) -#endif +#define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) ) #endif