verifyEd25519 function
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;
}