Uint8List sign(Uint8List message, Uint8List secretKey, Uint8List pubKey)

Creates signature for message message by using secret key secretKey and public key pubKey. Signature is Uint8List with size 64.

var m = new Uint8List(32);
var sk = new Uint8List(32);
var pk = new Uint8List(32);
sign(m, sk, pk); // [62, 244, 231, ..., 53, 213, 0]

Source

Uint8List sign(Uint8List message, Uint8List secretKey, Uint8List pubKey) {
  var secretHash = Hash(secretKey);
  var secretKeyAddMsg = new List<int>.from(secretHash.sublist(32, 64));
  secretKeyAddMsg.addAll(message);
  var msgSecretAsInt = bytesToInteger(Hash(bytesFromList(secretKeyAddMsg)));
  var scalar = encodePoint(scalarMult(basePoint, msgSecretAsInt));
  var preDigest = new List<int>.from(scalar);
  preDigest.addAll(pubKey);
  preDigest.addAll(message);
  var digest = bytesToInteger(Hash(bytesFromList(preDigest)));
  var signature = new List<int>.from(scalar);
  signature.addAll(integerToBytes(
      (msgSecretAsInt + digest * bytesToInteger(bitClamp(secretHash))).toInt() %
          primeL,
      32));
  return bytesFromList(signature);
}