verifyEd25519 function

bool verifyEd25519({
  1. required Uint8List signature,
  2. required Uint8List message,
  3. required Uint8List publicKey,
})

Implementation

bool verifyEd25519(
    {required Uint8List signature,
    required Uint8List message,
    required Uint8List publicKey}) {
  if (signature.length != TweetNaCl.signatureLength) {
    throw Exception(
        'Signature length (${signature.length}) is invalid, expected "${TweetNaCl.signatureLength}"');
  }
  final newmessage = signature + message;
  if (newmessage.length < TweetNaCl.signatureLength) {
    throw Exception(
        'Signature length (${newmessage.length}) is invalid, expected "${TweetNaCl.signatureLength}"');
  }
  var m = Uint8List(newmessage.length);

  final result = TweetNaCl.crypto_sign_open(
      m, -1, Uint8List.fromList(newmessage), 0, newmessage.length, publicKey);
  if (result != 0) {
    throw Exception(
        'The message is forged or malformed or the signature is invalid');
  }
  return true;
}