summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuaxinLu <luhuaxin1@huawei.com>2022-06-30 14:36:05 +0800
committerLucas De Marchi <lucas.de.marchi@gmail.com>2022-06-30 07:44:32 -0700
commitf609cb5185acb0955d66795cb297e9fe9d83405a (patch)
tree3ff14972fb126354cfbd2012719e0938e0ebe8f1
parentedc7f3a2d3e1bed358c64ff0ba9276c2610eac02 (diff)
downloadkmod-f609cb5185acb0955d66795cb297e9fe9d83405a.tar.gz
libkmod: Support SM3 hash algorithm
SM3 has been supported in kernel and cryptographic libraries like openssl. This patch adds support for the SM3 algorithm of kmod. Signed-off-by: HuaxinLu <luhuaxin1@huawei.com>
-rw-r--r--libkmod/libkmod-signature.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libkmod/libkmod-signature.c b/libkmod/libkmod-signature.c
index 4e8748c..4ae5af6 100644
--- a/libkmod/libkmod-signature.c
+++ b/libkmod/libkmod-signature.c
@@ -56,6 +56,7 @@ enum pkey_hash_algo {
PKEY_HASH_SHA384,
PKEY_HASH_SHA512,
PKEY_HASH_SHA224,
+ PKEY_HASH_SM3,
PKEY_HASH__LAST
};
@@ -68,6 +69,7 @@ const char *const pkey_hash_algo[PKEY_HASH__LAST] = {
[PKEY_HASH_SHA384] = "sha384",
[PKEY_HASH_SHA512] = "sha512",
[PKEY_HASH_SHA224] = "sha224",
+ [PKEY_HASH_SM3] = "sm3",
};
enum pkey_id_type {
@@ -161,6 +163,10 @@ static int obj_to_hash_algo(const ASN1_OBJECT *o)
return PKEY_HASH_SHA512;
case NID_sha224:
return PKEY_HASH_SHA224;
+# ifndef OPENSSL_NO_SM3
+ case NID_sm3:
+ return PKEY_HASH_SM3;
+# endif
default:
return -1;
}