verify static method
Verifies signature over message with publicKey. Returns false on
a bad signature; throws OpenSSLException only for malformed inputs.
Implementation
static bool verify(
List<int> publicKey,
List<int> message,
List<int> signature,
) => using((arena) {
final pkey = rawPublicKey(arena, algorithm, publicKey);
final md = checkNotNull(ssl.EVP_MD_CTX_new(), 'EVP_MD_CTX_new');
arena.using(md, ssl.EVP_MD_CTX_free);
checkOne(
ssl.EVP_DigestVerifyInit(md, nullptr, nullptr, nullptr, pkey),
'EVP_DigestVerifyInit',
);
final ok = ssl.EVP_DigestVerify(
md,
toNative(arena, signature),
signature.length,
toNative(arena, message),
message.length,
);
if (ok == 1) return true;
ssl.ERR_clear_error();
return false;
});