aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sha1.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/sha1.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/sha1.c')
-rw-r--r--lib/sha1.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/sha1.c b/lib/sha1.c
index ce0f0b2e71f..8306d887da5 100644
--- a/lib/sha1.c
+++ b/lib/sha1.c
@@ -122,21 +122,29 @@ sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf)
122} 122}
123#endif 123#endif
124 124
125#ifdef GL_COMPILE_CRYPTO_STREAM
126
127#include "af_alg.h"
128
125/* Compute SHA1 message digest for bytes read from STREAM. The 129/* Compute SHA1 message digest for bytes read from STREAM. The
126 resulting message digest number will be written into the 16 bytes 130 resulting message digest number will be written into the 20 bytes
127 beginning at RESBLOCK. */ 131 beginning at RESBLOCK. */
128int 132int
129sha1_stream (FILE *stream, void *resblock) 133sha1_stream (FILE *stream, void *resblock)
130{ 134{
131 struct sha1_ctx ctx; 135 switch (afalg_stream (stream, "sha1", resblock, SHA1_DIGEST_SIZE))
132 size_t sum; 136 {
137 case 0: return 0;
138 case -EIO: return 1;
139 }
133 140
134 char *buffer = malloc (BLOCKSIZE + 72); 141 char *buffer = malloc (BLOCKSIZE + 72);
135 if (!buffer) 142 if (!buffer)
136 return 1; 143 return 1;
137 144
138 /* Initialize the computation context. */ 145 struct sha1_ctx ctx;
139 sha1_init_ctx (&ctx); 146 sha1_init_ctx (&ctx);
147 size_t sum;
140 148
141 /* Iterate over full file contents. */ 149 /* Iterate over full file contents. */
142 while (1) 150 while (1)
@@ -194,6 +202,7 @@ sha1_stream (FILE *stream, void *resblock)
194 free (buffer); 202 free (buffer);
195 return 0; 203 return 0;
196} 204}
205#endif
197 206
198#if ! HAVE_OPENSSL_SHA1 207#if ! HAVE_OPENSSL_SHA1
199/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The 208/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The