verify method
Verifies whether bytes was signed with signature
.
Example
In this example, we use Ed25519
:
import 'package:cryptography/cryptography.dart';
Future<void> main() async {
final signedMessage = [1,2,3];
final ed25519 = Ed25519();
final keyPair = await ed25519.newKeyPair();
final signature = await ed25519.sign(
signedMessage,
keyPair: keyPair,
);
// ...
final isRealSignature = await ed25519.verify(
signedMessage,
signature: signature,
);
print('Signature verification result: $isRealSignature');
}
Implementation
@override
Future<bool> verify(
List<int> message, {
required Signature signature,
}) async {
if (isSupportedPlatform) {
final publicKey = signature.publicKey;
if (publicKey is SimplePublicKey && isSupportedPlatform) {
final result = await invokeMethod(
'Ed25519.verify',
{
'data': asUint8List(message),
'signature': asUint8List(signature.bytes),
'publicKey': asUint8List(publicKey.bytes),
},
);
final error = result['error'];
if (error is String) {
throw StateError('error in "package:cryptography_flutter": $error');
}
return result['ok'] as bool;
}
}
return await fallback.verify(
message,
signature: signature,
);
}