X.509: support OSCCA SM2-with-SM3 certificate verification
[sfrench/cifs-2.6.git] / crypto / asymmetric_keys / public_key.c
index d8410ffd7f129e4ddf0a79c6c31da6ab4e35a668..1d0492098bbd5832d2f69b8260349db26aae122a 100644 (file)
@@ -299,6 +299,12 @@ int public_key_verify_signature(const struct public_key *pkey,
        if (ret)
                goto error_free_key;
 
+       if (strcmp(sig->pkey_algo, "sm2") == 0 && sig->data_size) {
+               ret = cert_sig_digest_update(sig, tfm);
+               if (ret)
+                       goto error_free_key;
+       }
+
        sg_init_table(src_sg, 2);
        sg_set_buf(&src_sg[0], sig->s, sig->s_size);
        sg_set_buf(&src_sg[1], sig->digest, sig->digest_size);