verify method

bool verify(
  1. Uint8List message,
  2. Uint8List sig
)

Implementation

bool verify(Uint8List message, Uint8List sig) {
  if (sig.length != PrivateKey.signatureSize || sig[63] & 224 != 0) {
    return false;
  }

  ExtendedGroupElement A = ExtendedGroupElement.fromBytes(bytes);
  A.X = -A.X;
  A.T = -A.T;

  Uint8List h = sha512Many([sig.sublist(0, 32), bytes, message]);
  final hReduced = curve25519.reduce(h);

  final s = sig.sublist(32);
  if (!curve25519.isLessThanOrder(s)) {
    return false;
  }
  final R = curve25519.scalarDualMultiply(hReduced, A, s);
  final Uint8List checkR = R.asBytes;
  return ListEquality().equals(sig.sublist(0, 32), checkR);
}