diff options
author | Matteo Croce <mcroce@redhat.com> | 2018-04-28 15:32:58 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2018-05-05 14:38:36 +0200 |
commit | a720fab2ad613883a2b877b3c81c38e0ae6aca24 (patch) | |
tree | 9d6fc13895a75f53adbe9dec058a51ccdb1e2577 /lib/md5.c | |
parent | 833bb2f5a5acc8d0958051acfe102f771ba89fc9 (diff) | |
download | gnulib-a720fab2ad613883a2b877b3c81c38e0ae6aca24.tar.gz |
md5sum: use kernel crypto API
Use AF_ALG for md5 too
Signed-off-by: Matteo Croce <mcroce@redhat.com>
Diffstat (limited to 'lib/md5.c')
-rw-r--r-- | lib/md5.c | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -32,6 +32,10 @@ #include <string.h> #include <sys/types.h> +#ifdef HAVE_LINUX_IF_ALG_H +# include "af_alg.h" +#endif + #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif @@ -142,8 +146,20 @@ md5_stream (FILE *stream, void *resblock) { struct md5_ctx ctx; size_t sum; + char *buffer; + +#ifdef HAVE_LINUX_IF_ALG_H + int ret; + + ret = afalg_stream(stream, resblock, "md5", MD5_DIGEST_SIZE); + if (!ret) + return 0; + + if (ret == -EIO) + return 1; +#endif - char *buffer = malloc (BLOCKSIZE + 72); + buffer = malloc (BLOCKSIZE + 72); if (!buffer) return 1; |