Как проверить цифровую подпись с заданным хешем и открытым ключом?

На C написано множество примеров того, как проверить цифровую подпись в сообщении, но мой вариант использования требует, чтобы я предоставил только хеш сообщения.

Так есть ли альтернатива EVP_DigestVerifyUpdate(mdctx, msg, strlen(msg)); где я мог напрямую предоставить хеш?

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
Другие вопросы по тегам