]> Savannah Git Hosting - gnulib.git/commitdiff
md5sum: use kernel crypto API
authorMatteo Croce <mcroce@redhat.com>
Sat, 28 Apr 2018 13:32:58 +0000 (15:32 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 5 May 2018 12:38:36 +0000 (14:38 +0200)
Use AF_ALG for md5 too

Signed-off-by: Matteo Croce <mcroce@redhat.com>
ChangeLog
lib/md5.c
modules/crypto/md5

index d267347b9d3709bf9144bf3054b3a42210656b31..00e809f9180bda458c8229209d9183dc3077db04 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2018-04-28  Matteo Croce  <mcroce@redhat.com>
+
+       md5sum: Use AF_ALG when available.
+       * lib/md5.c: Include af_alg.h.
+       (md5_stream): Use afalg_stream when available.
+       * modules/crypto/md5 (Files): Add the af_alg files.
+       (configure.ac): Invoke gl_LINUX_IF_ALG_H.
+       (Makefile.am): Add af_alg.c.
+
 2018-04-28  Matteo Croce  <mcroce@redhat.com>
 
        sha512sum: Use AF_ALG when available.
index 68d00a6c7e0c767465e259f31288ab9eb6254923..307abbbe7a3f9dff193250ebda2540b96061f19a 100644 (file)
--- a/lib/md5.c
+++ b/lib/md5.c
 #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;
 
index e5fb39cedf80e7802dd3d0ac03c28126ac8405bf..415cf0523a217d9362823b74524a74e05d3fb6f9 100644 (file)
@@ -5,8 +5,11 @@ Files:
 lib/gl_openssl.h
 lib/md5.h
 lib/md5.c
+lib/af_alg.h
+lib/af_alg.c
 m4/gl-openssl.m4
 m4/md5.m4
+m4/linux-if-alg.m4
 
 Depends-on:
 extern-inline
@@ -15,9 +18,10 @@ stdint
 
 configure.ac:
 gl_MD5
+gl_LINUX_IF_ALG_H
 
 Makefile.am:
-lib_SOURCES += md5.c
+lib_SOURCES += md5.c af_alg.c
 
 Include:
 "md5.h"