verify method
Verifies an ASN.1 DER signature over the SHA-256 hash of data, as
go-libp2p signs for every curve.
Implementation
@override
Future<bool> verify(Uint8List data, Uint8List signature) async {
try {
final parser = pc.ASN1Parser(signature);
final asn1Sequence = parser.nextObject() as pc.ASN1Sequence;
if (parser.hasNext() || asn1Sequence.elements!.length != 2) return false;
final r = (asn1Sequence.elements![0] as pc.ASN1Integer).integer!;
final s = (asn1Sequence.elements![1] as pc.ASN1Integer).integer!;
final signer = _signer();
signer.init(false, PublicKeyParameter<ECPublicKey>(_key));
return signer.verifySignature(data, ECSignature(r, s));
} catch (e) {
return false;
}
}