verify method
Implementation
Future<bool> verify(
Map<String, Object?> record, {
List<int>? trustedPublicKey,
}) async {
final signer = (record['signer'] as Map?)?.cast<String, Object?>();
final signatureText = record['signature'];
final expectedDigest = record['recordDigest'];
if (signer == null ||
signatureText is! String ||
expectedDigest is! String) {
return false;
}
final unsigned = <String, Object?>{
'kind': record['kind'],
'signer': signer,
'body': record['body'],
};
final bytes = releaseSigningPayload(unsigned);
if (sha256.convert(bytes).toString() != expectedDigest) return false;
if (trustedPublicKey == null) return false;
final signature = Signature(
base64Decode(signatureText),
publicKey: SimplePublicKey(trustedPublicKey, type: KeyPairType.ed25519),
);
return algorithm.verify(bytes, signature: signature);
}