From 4773da75a82e9a229424cc75f4f1d391bb2ce4e8 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 9 Aug 2004 17:58:46 +0000 Subject: [PATCH] Add uint32_t.m4, uintptr_t.m4, and finish renaming sha->sha1. --- ChangeLog | 12 +++++++ lib/ChangeLog | 16 ++++++++++ lib/sha.h | 75 ------------------------------------------- lib/{sha.c => sha1.c} | 86 +++++++++++++++++++++++++++---------------------- lib/sha1.h | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++ m4/ChangeLog | 6 ++++ m4/prereq.m4 | 4 +-- m4/{sha.m4 => sha1.m4} | 4 +-- m4/uint32_t.m4 | 60 ++++++++++++++++++++++++++++++++++ m4/uintptr_t.m4 | 65 +++++++++++++++++++++++++++++++++++++ modules/md5 | 1 + modules/{sha => sha1} | 14 ++++---- 12 files changed, 305 insertions(+), 125 deletions(-) delete mode 100644 lib/sha.h rename lib/{sha.c => sha1.c} (82%) create mode 100644 lib/sha1.h rename m4/{sha.m4 => sha1.m4} (92%) create mode 100644 m4/uint32_t.m4 create mode 100644 m4/uintptr_t.m4 rename modules/{sha => sha1} (53%) diff --git a/ChangeLog b/ChangeLog index 870c2c36c..755ce1669 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2004-08-09 Paul Eggert + + * modules/md5 (Files): Add m4/uint32_t.m4. + * modules/sha1: Renamed from modules/sha. + (Files): + Rename lib/sha.h to lib/sha1.h. + Rename lib/sha.c to lib/sha1.c. + Rename m4/sha.m4 to m4/sha1.m4. + (lib_SOURCES): Likewise. + (configure.ac): Rename gl_SHA to gl_SHA1. + (Include): sha.h -> sha1.h. + 2004-08-06 Paul Eggert More merge from coreutils. diff --git a/lib/ChangeLog b/lib/ChangeLog index 124e9a842..f4b2d0971 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,19 @@ +2004-08-09 Paul Eggert + + * sha1.h: Renamed from sha.h. + (SHA1_H): Renamed from _SHA_H. + (sha1_ctx): Renamed from sha_ctx. + (sha1_init_ctx): Renamed from sha_init_ctx. + (sha1_process_block): Renamed from sha_process_block. + (sha1_process_bytes): Renamed from sha_process_bytes. + (sha1_finish_ctx): Renamed from sha_finish_ctx. + (sha1_read_ctx): Renamed from sha_read_ctx. + (sha1_stream): Renamed from sha_stream. + (sha1_buffer): Renamed from sha_buffer. + * sha1.c: Likewise; renamed from sha.c. + Do not include . + Include rather than . + 2004-08-08 Bruno Haible * pathname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from diff --git a/lib/sha.h b/lib/sha.h deleted file mode 100644 index 238b0739c..000000000 --- a/lib/sha.h +++ /dev/null @@ -1,75 +0,0 @@ -/* sha.h - Declaration of functions and datatypes for SHA1 sum computing - library functions. - - Copyright (C) 1999, Scott G. Miller -*/ - -#ifndef _SHA_H -# define _SHA_H 1 - -# include -# include "md5.h" - -/* Structure to save state of computation between the single steps. */ -struct sha_ctx -{ - md5_uint32 A; - md5_uint32 B; - md5_uint32 C; - md5_uint32 D; - md5_uint32 E; - - md5_uint32 total[2]; - md5_uint32 buflen; - char buffer[128]; -}; - - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void sha_process_block (const void *buffer, size_t len, - struct sha_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void sha_process_bytes (const void *buffer, size_t len, - struct sha_ctx *ctx); - -/* Initialize structure containing state of computation. */ -extern void sha_init_ctx (struct sha_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 16 bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -extern void *sha_finish_ctx (struct sha_ctx *ctx, void *resbuf); - - -/* Put result from CTX in first 16 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -extern void *sha_read_ctx (const struct sha_ctx *ctx, void *resbuf); - - -/* Compute MD5 message digest for bytes read from STREAM. The - resulting message digest number will be written into the 16 bytes - beginning at RESBLOCK. */ -extern int sha_stream (FILE *stream, void *resblock); - -/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *sha_buffer (const char *buffer, size_t len, void *resblock); - -#endif diff --git a/lib/sha.c b/lib/sha1.c similarity index 82% rename from lib/sha.c rename to lib/sha1.c index b645bf402..c86140caa 100644 --- a/lib/sha.c +++ b/lib/sha1.c @@ -1,8 +1,23 @@ -/* sha.c - Functions to compute the SHA1 hash (message-digest) of files - or blocks of memory. Complies to the NIST specification FIPS-180-1. +/* sha1.c - Functions to compute SHA1 message digest of files or + memory blocks according to the NIST specification FIPS-180-1. - Copyright (C) 2000, 2001, 2003 Scott G. Miller + Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc. + 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 + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* Written by Scott G. Miller Credits: Robert Klep -- Expansion function fix */ @@ -11,18 +26,16 @@ # include #endif -#include "sha.h" - -#include +#include "sha1.h" -#include +#include #include #include "unlocked-io.h" /* Not-swap is a macro that does an endian swap on architectures that are - big-endian, as SHA needs some data in a little-endian format + big-endian, as SHA1 needs some data in a little-endian format */ #ifdef WORDS_BIGENDIAN @@ -50,10 +63,10 @@ static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; /* Takes a pointer to a 160 bit block of data (five 32 bit ints) and intializes it to the start constants of the SHA1 algorithm. This - must be called before using hash in the call to sha_hash + must be called before using hash in the call to sha1_hash. */ void -sha_init_ctx (struct sha_ctx *ctx) +sha1_init_ctx (struct sha1_ctx *ctx) { ctx->A = 0x67452301; ctx->B = 0xefcdab89; @@ -71,7 +84,7 @@ sha_init_ctx (struct sha_ctx *ctx) IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ void * -sha_read_ctx (const struct sha_ctx *ctx, void *resbuf) +sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf) { ((md5_uint32 *) resbuf)[0] = NOTSWAP (ctx->A); ((md5_uint32 *) resbuf)[1] = NOTSWAP (ctx->B); @@ -88,7 +101,7 @@ sha_read_ctx (const struct sha_ctx *ctx, void *resbuf) IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ void * -sha_finish_ctx (struct sha_ctx *ctx, void *resbuf) +sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf) { /* Take yet unprocessed bytes into account. */ md5_uint32 bytes = ctx->buflen; @@ -108,23 +121,23 @@ sha_finish_ctx (struct sha_ctx *ctx, void *resbuf) (ctx->total[0] >> 29)); /* Process last bytes. */ - sha_process_block (ctx->buffer, bytes + pad + 8, ctx); + sha1_process_block (ctx->buffer, bytes + pad + 8, ctx); - return sha_read_ctx (ctx, resbuf); + return sha1_read_ctx (ctx, resbuf); } /* Compute SHA1 message digest for bytes read from STREAM. The resulting message digest number will be written into the 16 bytes beginning at RESBLOCK. */ int -sha_stream (FILE *stream, void *resblock) +sha1_stream (FILE *stream, void *resblock) { - struct sha_ctx ctx; + struct sha1_ctx ctx; char buffer[BLOCKSIZE + 72]; size_t sum; /* Initialize the computation context. */ - sha_init_ctx (&ctx); + sha1_init_ctx (&ctx); /* Iterate over full file contents. */ while (1) @@ -165,17 +178,17 @@ sha_stream (FILE *stream, void *resblock) /* Process buffer with BLOCKSIZE bytes. Note that BLOCKSIZE % 64 == 0 */ - sha_process_block (buffer, BLOCKSIZE, &ctx); + sha1_process_block (buffer, BLOCKSIZE, &ctx); } process_partial_block:; /* Process any remaining bytes. */ if (sum > 0) - sha_process_bytes (buffer, sum, &ctx); + sha1_process_bytes (buffer, sum, &ctx); /* Construct result in desired memory. */ - sha_finish_ctx (&ctx, resblock); + sha1_finish_ctx (&ctx, resblock); return 0; } @@ -184,22 +197,22 @@ sha_stream (FILE *stream, void *resblock) output yields to the wanted ASCII representation of the message digest. */ void * -sha_buffer (const char *buffer, size_t len, void *resblock) +sha1_buffer (const char *buffer, size_t len, void *resblock) { - struct sha_ctx ctx; + struct sha1_ctx ctx; /* Initialize the computation context. */ - sha_init_ctx (&ctx); + sha1_init_ctx (&ctx); /* Process whole buffer but last len % 64 bytes. */ - sha_process_bytes (buffer, len, &ctx); + sha1_process_bytes (buffer, len, &ctx); /* Put result in desired memory area. */ - return sha_finish_ctx (&ctx, resblock); + return sha1_finish_ctx (&ctx, resblock); } void -sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx) +sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx) { /* When we already have some bits in our internal buffer concatenate both inputs first. */ @@ -213,7 +226,7 @@ sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx) if (ctx->buflen > 64) { - sha_process_block (ctx->buffer, ctx->buflen & ~63, ctx); + sha1_process_block (ctx->buffer, ctx->buflen & ~63, ctx); ctx->buflen &= 63; /* The regions in the following copy operation cannot overlap. */ @@ -229,24 +242,19 @@ sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx) if (len >= 64) { #if !_STRING_ARCH_unaligned -/* To check alignment gcc has an appropriate operator. Other - compilers don't. */ -# if __GNUC__ >= 2 -# define UNALIGNED_P(p) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0) -# else -# define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0) -# endif +# define alignof(type) offsetof (struct { char c; type x; }, x) +# define UNALIGNED_P(p) (((size_t) p) % alignof (md5_uint32) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { - sha_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); + sha1_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); buffer = (const char *) buffer + 64; len -= 64; } else #endif { - sha_process_block (buffer, len & ~63, ctx); + sha1_process_block (buffer, len & ~63, ctx); buffer = (const char *) buffer + (len & ~63); len &= 63; } @@ -261,7 +269,7 @@ sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx) left_over += len; if (left_over >= 64) { - sha_process_block (ctx->buffer, 64, ctx); + sha1_process_block (ctx->buffer, 64, ctx); left_over -= 64; memcpy (ctx->buffer, &ctx->buffer[64], left_over); } @@ -269,7 +277,7 @@ sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx) } } -/* --- Code below is the primary difference between md5.c and sha.c --- */ +/* --- Code below is the primary difference between md5.c and sha1.c --- */ /* SHA1 round constants */ #define K1 0x5a827999L @@ -288,7 +296,7 @@ sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx) Most of this code comes from GnuPG's cipher/sha1.c. */ void -sha_process_block (const void *buffer, size_t len, struct sha_ctx *ctx) +sha1_process_block (const void *buffer, size_t len, struct sha1_ctx *ctx) { const md5_uint32 *words = buffer; size_t nwords = len / sizeof (md5_uint32); diff --git a/lib/sha1.h b/lib/sha1.h new file mode 100644 index 000000000..fe470d401 --- /dev/null +++ b/lib/sha1.h @@ -0,0 +1,87 @@ +/* Declarations of functions and data types used for SHA1 sum + library functions. + Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. + + 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 + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef SHA1_H +# define SHA1_H 1 + +# include +# include "md5.h" + +/* Structure to save state of computation between the single steps. */ +struct sha1_ctx +{ + md5_uint32 A; + md5_uint32 B; + md5_uint32 C; + md5_uint32 D; + md5_uint32 E; + + md5_uint32 total[2]; + md5_uint32 buflen; + char buffer[128]; +}; + + +/* Initialize structure containing state of computation. */ +extern void sha1_init_ctx (struct sha1_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is necessary that LEN is a multiple of 64!!! */ +extern void sha1_process_block (const void *buffer, size_t len, + struct sha1_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is NOT required that LEN is a multiple of 64. */ +extern void sha1_process_bytes (const void *buffer, size_t len, + struct sha1_ctx *ctx); + +/* Process the remaining bytes in the buffer and put result from CTX + in first 20 bytes following RESBUF. The result is always in little + endian byte order, so that a byte-wise output yields to the wanted + ASCII representation of the message digest. + + IMPORTANT: On some systems it is required that RESBUF be correctly + aligned for a 32 bits value. */ +extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf); + + +/* Put result from CTX in first 20 bytes following RESBUF. The result is + always in little endian byte order, so that a byte-wise output yields + to the wanted ASCII representation of the message digest. + + IMPORTANT: On some systems it is required that RESBUF is correctly + aligned for a 32 bits value. */ +extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf); + + +/* Compute SHA1 message digest for bytes read from STREAM. The + resulting message digest number will be written into the 20 bytes + beginning at RESBLOCK. */ +extern int sha1_stream (FILE *stream, void *resblock); + +/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +extern void *sha1_buffer (const char *buffer, size_t len, void *resblock); + +#endif diff --git a/m4/ChangeLog b/m4/ChangeLog index 439d7cfc6..4fb98b875 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,9 @@ +2004-08-09 Paul Eggert + + * uint32_t.m4, uintptr_t.m4: New files. + * sha1.m4: Renamed from sha.m4. + (gl_SHA1): Renamed from gl_SHA. All uses changed. + 2004-08-06 Paul Eggert More merge from coreutils. diff --git a/m4/prereq.m4 b/m4/prereq.m4 index 79b7586f7..0602ff11f 100644 --- a/m4/prereq.m4 +++ b/m4/prereq.m4 @@ -1,4 +1,4 @@ -#serial 44 +#serial 45 dnl We use gl_ for non Autoconf macros. m4_pattern_forbid([^gl_[ABCDEFGHIJKLMNOPQRSTUVXYZ]])dnl @@ -101,7 +101,7 @@ AC_DEFUN([gl_PREREQ], AC_REQUIRE([gl_SAVEDIR]) AC_REQUIRE([gl_SAVE_CWD]) AC_REQUIRE([gl_SETTIME]) - AC_REQUIRE([gl_SHA]) + AC_REQUIRE([gl_SHA1]) AC_REQUIRE([gl_STDIO_SAFER]) AC_REQUIRE([gl_STRCASE]) AC_REQUIRE([gl_TIMESPEC]) diff --git a/m4/sha.m4 b/m4/sha1.m4 similarity index 92% rename from m4/sha.m4 rename to m4/sha1.m4 index 34ef6ac63..a3725db8f 100644 --- a/m4/sha.m4 +++ b/m4/sha1.m4 @@ -1,4 +1,4 @@ -# sha.m4 serial 3 +# sha1.m4 serial 4 dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General @@ -6,7 +6,7 @@ dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. -AC_DEFUN([gl_SHA], +AC_DEFUN([gl_SHA1], [ dnl Prerequisites of lib/sha1.c. AC_REQUIRE([AC_C_BIGENDIAN]) diff --git a/m4/uint32_t.m4 b/m4/uint32_t.m4 new file mode 100644 index 000000000..cfa515034 --- /dev/null +++ b/m4/uint32_t.m4 @@ -0,0 +1,60 @@ +# uint32_t.m4 serial 2 + +# Copyright (C) 2004 Free Software Foundation, Inc. + +# 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 Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Written by Paul Eggert. + +AC_DEFUN([gl_AC_TYPE_UINT32_T], +[ + AC_CACHE_CHECK([for uint32_t], gl_cv_c_uint32_t, + [gl_cv_c_uint32_t=no + for ac_type in "uint32_t" "unsigned int" \ + "unsigned long int" "unsigned short int"; do + AC_COMPILE_IFELSE( + [AC_LANG_BOOL_COMPILE_TRY( + [AC_INCLUDES_DEFAULT], + [[(uint32_t) -1 == 4294967295U]])], + [gl_cv_c_uint32_t=$ac_type]) + test $gl_cv_c_uint32_t != no && break + done]) + case $gl_cv_c_uint32_t in + no|uint32_t) ;; + *) + AC_DEFINE_UNQUOTED(uint32_t, $gl_cv_c_uint32_t, + [Define to the type of a unsigned integer type of width exactly 32 bits + if such a type exists and the standard includes do not define it.]) + ;; + esac + + AC_CACHE_CHECK([for UINT32_MAX], gl_cv_c_uint32_max, + [AC_COMPILE_IFELSE( + [AC_LANG_BOOL_COMPILE_TRY( + [AC_INCLUDES_DEFAULT], + [[UINT32_MAX == 4294967295U]])], + [gl_cv_c_uint32_max=yes], + [gl_cv_c_uint32_max=no])]) + case $gl_cv_c_uint32_max,$gl_cv_c_uint32_t in + yes,*) ;; + *,no) ;; + *) + AC_DEFINE(UINT32_MAX, 4294967295U, + [Define to its maximum value if an unsigned integer type of width + exactly 32 bits exists and the standard includes do not define + UINT32_MAX.]) + ;; + esac +]) diff --git a/m4/uintptr_t.m4 b/m4/uintptr_t.m4 new file mode 100644 index 000000000..ea5ea4e53 --- /dev/null +++ b/m4/uintptr_t.m4 @@ -0,0 +1,65 @@ +# uintptr_t.m4 serial 2 + +# Copyright (C) 2004 Free Software Foundation, Inc. + +# 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 Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Written by Paul Eggert. + +AC_DEFUN([gl_AC_TYPE_UINTPTR_T], +[ + AC_CACHE_CHECK([for uintptr_t], gl_cv_c_uintptr_t, + [gl_cv_c_uintptr_t=no + for ac_type in "uintptr_t" "unsigned int" \ + "unsigned long int" "unsigned long long int"; do + AC_COMPILE_IFELSE( + [AC_LANG_BOOL_COMPILE_TRY( + [AC_INCLUDES_DEFAULT], + [[sizeof (void *) <= sizeof (uintptr_t)]])], + [gl_cv_c_uintptr_t=$ac_type]) + test $gl_cv_c_uintptr_t != no && break + done]) + case $gl_cv_c_uintptr_t in + no|uintptr_t) ;; + *) + AC_DEFINE_UNQUOTED(uintptr_t, $gl_cv_c_uintptr_t, + [Define to the type of a unsigned integer type wide enough to + hold a pointer, if such a type exists.]) + ;; + esac + + dnl Check whether UINTPTR_MAX is defined, not whether it has the + dnl right value. Alas, Solaris 8 defines it to empty! + dnl Applications should use (uintptr_t) -1 rather than UINTPTR_MAX. + AC_CACHE_CHECK([for UINTPTR_MAX], gl_cv_c_uintptr_max, + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [AC_INCLUDES_DEFAULT], + [[#ifndef UINTPTR_MAX + error: UINTPTR_MAX is not defined. + #endif]])], + [gl_cv_c_uintptr_max=yes], + [gl_cv_c_uintptr_max=no])]) + case $gl_cv_c_uintptr_max,$gl_cv_c_uintptr_t in + yes,*) ;; + *,no) ;; + *) + AC_DEFINE(UINTPTR_MAX, ((uintptr_t) -1), + [Define to its maximum value if an unsigned integer type wide enough + to hold a pointer exists and the standard includes do not define + UINTPTR_MAX.]) + ;; + esac +]) diff --git a/modules/md5 b/modules/md5 index 95a666f32..2d173914c 100644 --- a/modules/md5 +++ b/modules/md5 @@ -5,6 +5,7 @@ Files: lib/md5.h lib/md5.c m4/md5.m4 +m4/uint32_t.m4 Depends-on: unlocked-io diff --git a/modules/sha b/modules/sha1 similarity index 53% rename from modules/sha rename to modules/sha1 index 0ebcb3a30..5ed694d02 100644 --- a/modules/sha +++ b/modules/sha1 @@ -1,23 +1,23 @@ Description: -Compute SHA checksum. +Compute SHA1 checksum. Files: -lib/sha.h -lib/sha.c -m4/sha.m4 +lib/sha1.h +lib/sha1.c +m4/sha1.m4 Depends-on: unlocked-io md5 configure.ac: -gl_SHA +gl_SHA1 Makefile.am: -lib_SOURCES += sha.h sha.c +lib_SOURCES += sha1.h sha1.c Include: -"sha.h" +"sha1.h" Maintainer: Jim Meyering -- 2.11.0