1

有很多用 C 语言编写的关于如何验证消息上的数字签名的示例,但我的用例要求我只提供消息哈希。

那么有没有替代EVP_DigestVerifyUpdate(mdctx, msg, strlen(msg));我可以直接提供哈希的地方?

4

1 回答 1

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
于 2017-01-28T20:42:14.517 回答