aboutsummaryrefslogtreecommitdiffstats
path: root/lib/md5.c
diff options
context:
space:
mode:
authorPaul Eggert2018-05-21 11:42:18 -0700
committerPaul Eggert2018-05-21 11:43:07 -0700
commit79f15092b9d16631840cd42db034b787fae762ac (patch)
tree86f3e4917944af36516547d4d19d5dda758684f1 /lib/md5.c
parentf21db9e1206f830ee5e991a26f9e30056f68efb8 (diff)
downloademacs-79f15092b9d16631840cd42db034b787fae762ac.tar.gz
emacs-79f15092b9d16631840cd42db034b787fae762ac.zip
Update from Gnulib
This incorporates: 2018-05-21 crypto: omit stream ops Emacs doesn’t need 2018-05-13 truncate: Fix compilation error on Android 2018-05-13 imaxdiv: Fix compilation error on Android 2018-05-13 Support selective inclusion of recent mingw.org headers 2018-05-13 Add cross-compilation guesses for Linux systems sans glibc 2018-05-13 stdioext: Fix compilation errors with newer Android headers 2018-05-07 af_alg: Pacify --enable-gcc-warnings 2018-05-06 af_alg: Fix bug with streams that are not at position 0 2018-05-06 Followup to 'af_alg: New module' 2018-05-05 crypto/{md5,sha1,sha256,sha512}: simplify 2018-05-05 af_alg: New module 2018-05-05 af_alg: Improve function signature 2018-04-28 md5sum: Use AF_ALG when available 2018-04-28 sha512sum: Use AF_ALG when available 2018-04-28 sha256sum: Use AF_ALG when available 2018-04-28 sha1sum: Use AF_ALG when available 2018-05-05 all: Replace more http URLs by https URLs 2018-05-03 maint: port more modules to GCC 8 2018-05-03 Simplify code; drop support for Borland C++ on Windows * admin/merge-gnulib (GNULIB_MODULES): Use crypto/md5-buffer rather than crypto/md5, since Emacs doesn’t use the stream operations that in recent Gnulib pull in other stuff Emacs doesn’t need. Similarly for crypto/sha1-buffer, crypto/sha256-buffer, crypto/sha512-buffer. * build-aux/config.guess, build-aux/config.sub, lib/dosname.h: * lib/dup2.c, lib/errno.in.h, lib/euidaccess.c, lib/fcntl.c: * lib/fcntl.in.h, lib/fpending.c, lib/fsync.c, lib/getdtablesize.c: * lib/getopt.c, lib/gettimeofday.c, lib/inttypes.in.h, lib/md5.c: * lib/md5.h, lib/open.c, lib/pipe2.c, lib/putenv.c, lib/sha1.c: * lib/sha1.h, lib/sha256.c, lib/sha256.h, lib/sha512.c: * lib/sha512.h, lib/stat-time.h, lib/stdio-impl.h, lib/stdio.in.h: * lib/stdlib.in.h, lib/sys_stat.in.h, lib/sys_types.in.h: * lib/timespec.h, lib/unistd.in.h, lib/utimens.c, m4/c-strtod.m4: * m4/gnulib-common.m4, m4/inttypes.m4, m4/lstat.m4, m4/nocrash.m4: * m4/pselect.m4, m4/readlink.m4, m4/stdio_h.m4, m4/symlink.m4: * m4/unistd_h.m4, m4/utimens.m4: Copy from Gnulib. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
Diffstat (limited to 'lib/md5.c')
-rw-r--r--lib/md5.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/md5.c b/lib/md5.c
index 9dc915e2cf0..577aab46d7a 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -134,21 +134,29 @@ md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
134} 134}
135#endif 135#endif
136 136
137#if defined _LIBC || defined GL_COMPILE_CRYPTO_STREAM
138
139#include "af_alg.h"
140
137/* Compute MD5 message digest for bytes read from STREAM. The 141/* Compute MD5 message digest for bytes read from STREAM. The
138 resulting message digest number will be written into the 16 bytes 142 resulting message digest number will be written into the 16 bytes
139 beginning at RESBLOCK. */ 143 beginning at RESBLOCK. */
140int 144int
141md5_stream (FILE *stream, void *resblock) 145md5_stream (FILE *stream, void *resblock)
142{ 146{
143 struct md5_ctx ctx; 147 switch (afalg_stream (stream, "md5", resblock, MD5_DIGEST_SIZE))
144 size_t sum; 148 {
149 case 0: return 0;
150 case -EIO: return 1;
151 }
145 152
146 char *buffer = malloc (BLOCKSIZE + 72); 153 char *buffer = malloc (BLOCKSIZE + 72);
147 if (!buffer) 154 if (!buffer)
148 return 1; 155 return 1;
149 156
150 /* Initialize the computation context. */ 157 struct md5_ctx ctx;
151 md5_init_ctx (&ctx); 158 md5_init_ctx (&ctx);
159 size_t sum;
152 160
153 /* Iterate over full file contents. */ 161 /* Iterate over full file contents. */
154 while (1) 162 while (1)
@@ -206,6 +214,7 @@ process_partial_block:
206 free (buffer); 214 free (buffer);
207 return 0; 215 return 0;
208} 216}
217#endif
209 218
210#if ! HAVE_OPENSSL_MD5 219#if ! HAVE_OPENSSL_MD5
211/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The 220/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The