summaryrefslogtreecommitdiff
path: root/lib/md5.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2018-05-05 19:39:37 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2018-05-05 19:40:03 -0700
commit7cdcfaad536a02b90be6c2104ac4a38bf620bbd1 (patch)
treefeea4aed3e319c18463233a51da102e77da3ce71 /lib/md5.c
parenta80d295ef2b25462b36c1c401653a0fe33cb3a0d (diff)
downloadgnulib-7cdcfaad536a02b90be6c2104ac4a38bf620bbd1.tar.gz
crypto/{md5,sha1,sha256,sha512}: simplify
* lib/md5.c (md5_stream): * lib/sha1.c (sha1_stream): * lib/sha256.c (shaxxx_stream): Simplify, partly by assuming C99. * lib/sha256.c (shaxxx_stream): New function, which implements both sha256 and sha224. Simplify, partly by assuming C99. (sha256_stream, sha224_stream): Use it to avoid code duplication, removing a FIXME. * lib/sha512.c (shaxxx_stream, sha512_stream, sha384_stream): Likewise.
Diffstat (limited to 'lib/md5.c')
-rw-r--r--lib/md5.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/lib/md5.c b/lib/md5.c
index 2bf2f0c75e..9b414aaf8b 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -142,25 +142,19 @@ md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
int
md5_stream (FILE *stream, void *resblock)
{
- struct md5_ctx ctx;
- size_t sum;
- char *buffer;
-
- {
- int ret = afalg_stream (stream, "md5", resblock, MD5_DIGEST_SIZE);
- if (!ret)
- return 0;
-
- if (ret == -EIO)
- return 1;
- }
+ switch (afalg_stream (stream, "md5", resblock, MD5_DIGEST_SIZE))
+ {
+ case 0: return 0;
+ case -EIO: return 1;
+ }
- buffer = malloc (BLOCKSIZE + 72);
+ char *buffer = malloc (BLOCKSIZE + 72);
if (!buffer)
return 1;
- /* Initialize the computation context. */
+ struct md5_ctx ctx;
md5_init_ctx (&ctx);
+ size_t sum;
/* Iterate over full file contents. */
while (1)