Whamcloud - gitweb
LU-14880 libcfs: Use crypto/sha2.h if available 73/44373/4
authorShaun Tancheff <shaun.tancheff@hpe.com>
Thu, 22 Jul 2021 07:45:37 +0000 (02:45 -0500)
committerOleg Drokin <green@whamcloud.com>
Sat, 31 Jul 2021 06:39:32 +0000 (06:39 +0000)
As of Linux commit a24d22b225ce158651378869a6b88105c4bdb887
   crypto: sha - split sha.h into sha1.h and sha2.h

sha.h is removed and sha2.h or sha3.h is preferred.

Test-Parameters: trivial
Fixes: a813e81870 ("LU-12275 sec: add llcrypt as file encryption library")
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Iead5e1cb23e79a400da3cbfeb4c35c834e821d62
Reviewed-on: https://review.whamcloud.com/44373
Reviewed-by: James Simmons <jsimmons@infradead.org>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
libcfs/autoconf/lustre-libcfs.m4
libcfs/libcfs/crypto/hkdf.c
libcfs/libcfs/crypto/keysetup.c

index 3f8c687..6b0755d 100644 (file)
@@ -1555,6 +1555,18 @@ kfree_sensitive_exists, [
 EXTRA_KCFLAGS="$tmp_flags"
 ]) # LIBCFS_HAVE_KFREE_SENSITIVE
 
+#
+# LIBCFS_HAVE_CRYPTO_SHA2_HEADER
+#
+# Kernel v5.10-rc1-114-ga24d22b225ce
+# crypto: sha - split sha.h into sha1.h and sha2.h
+#
+AC_DEFUN([LIBCFS_HAVE_CRYPTO_SHA2_HEADER], [
+LB_CHECK_LINUX_HEADER([crypto/sha2.h], [
+       AC_DEFINE(HAVE_CRYPTO_SHA2_HEADER, 1,
+               [crypto/sha2.h is present])])
+]) # LIBCFS_HAVE_CRYPTO_SHA2_HEADER
+
 AC_DEFUN([LIBCFS_PROG_LINUX_SRC], [
        LIBCFS_SRC_HAVE_PROC_OPS
 
@@ -1688,6 +1700,7 @@ LIBCFS_VMALLOC_2ARGS
 LIBCFS_SEC_RELEASE_SECCTX
 # 5.10
 LIBCFS_HAVE_KFREE_SENSITIVE
+LIBCFS_HAVE_CRYPTO_SHA2_HEADER
 ]) # LIBCFS_PROG_LINUX
 
 #
index 147f14b..8874bcb 100644 (file)
  */
 
 #include <crypto/hash.h>
+#ifdef HAVE_CRYPTO_SHA2_HEADER
+#include <crypto/sha2.h>
+#else
 #include <crypto/sha.h>
-
+#endif
 #include "llcrypt_private.h"
 
 /*
index 0beab0c..784eacc 100644 (file)
  */
 
 #include <crypto/aes.h>
+#ifdef HAVE_CRYPTO_SHA2_HEADER
+#include <crypto/sha2.h>
+#else
 #include <crypto/sha.h>
+#endif
 #include <crypto/skcipher.h>
 #include <linux/key.h>