有很多用C编写的关于如何验证消息上的数字签名的例子,但是我的用例要求我只提供消息哈希。
那么我可以直接提供哈希来替换EVP_DigestVerifyUpdate(mdctx, msg, strlen(msg));
吗?
答案 0 :(得分:1)
这是你在找什么?
EVP_PKEY *public_key = ...;
EVP_PKEY_CTX *public_key_ctx = EVP_PKEY_CTX_new(public_key, NULL);
EVP_PKEY_verify_init(public_key_ctx);
if (1 != EVP_PKEY_verify(public_key_ctx, sig, siglen, hash, hashlen))
// invalid signature