From ccb7e903f983accdb24b95f0496d73c208bcd02e Mon Sep 17 00:00:00 2001 From: Tianjia Zhang Date: Mon, 21 Sep 2020 00:21:03 +0800 Subject: [PATCH 2133/2944] integrity: Asymmetric digsig supports SM2-with-SM3 algorithm to #31026859 commit 0b7e44d39c8aa7536352b57af2265e92fc253e4f upstream Asymmetric digsig supports SM2-with-SM3 algorithm combination, so that IMA can also verify SM2's signature data. Signed-off-by: Tianjia Zhang Tested-by: Xufeng Zhang Reviewed-by: Mimi Zohar Reviewed-by: Vitaly Chikunov Signed-off-by: Herbert Xu Signed-off-by: Tianjia Zhang Reviewed-by: Jia Zhang --- security/integrity/digsig_asymmetric.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/security/integrity/digsig_asymmetric.c b/security/integrity/digsig_asymmetric.c index 6dc0751..554b9f1 100644 --- a/security/integrity/digsig_asymmetric.c +++ b/security/integrity/digsig_asymmetric.c @@ -104,8 +104,16 @@ int asymmetric_verify(struct key *keyring, const char *sig, memset(&pks, 0, sizeof(pks)); - pks.pkey_algo = "rsa"; pks.hash_algo = hash_algo_name[hdr->hash_algo]; + switch (hdr->hash_algo) { + case HASH_ALGO_SM3_256: + /* SM2 and SM3 should go together. */ + pks.pkey_algo = "sm2"; + break; + default: + pks.pkey_algo = "rsa"; + break; + } pks.digest = (u8 *)data; pks.digest_size = datalen; pks.s = hdr->sig; -- 1.8.3.1