verify static method

bool verify(
  1. List<int> publicKey,
  2. List<int> message,
  3. List<int> signature
)

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;
});