sign function

List<int> sign(
  1. List<int> secret,
  2. List<int> message, {
  3. ED448_XOF xof = shake_256,
})

Implementation

List<int> sign(List<int> secret, List<int> message, {ED448_XOF xof = shake_256}) {
  final expanded = _secretExpand(secret);
  final a = expanded[0];
  final prefix = expanded[1];
  final A = _pointCompress(_pointMultiply(a, _G));
  final r =  _xofModQ(xof, MARKER + [0] + [0] + prefix + message, 114);
  final R = _pointMultiply(r, _G);
  final Rs = _pointCompress(R);
  final h = _xofModQ(xof, MARKER + [0] + [0] + Rs + A + message, 114);
  final s = (r + h * a) % q;

  return UnmodifiableUint8ListView(Uint8List.fromList(Rs + _toLE(s, 57)));
}