diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2018-05-05 19:39:37 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2018-05-05 19:40:03 -0700 |
commit | 7cdcfaad536a02b90be6c2104ac4a38bf620bbd1 (patch) | |
tree | feea4aed3e319c18463233a51da102e77da3ce71 /lib/md5.c | |
parent | a80d295ef2b25462b36c1c401653a0fe33cb3a0d (diff) | |
download | gnulib-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.c | 22 |
1 files changed, 8 insertions, 14 deletions
@@ -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) |