verify method

  1. @override
Future<bool> verify(
  1. List<int> message, {
  2. required Signature signature,
})

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