signEd25519Extended function

Uint8List signEd25519Extended({
  1. required Uint8List message,
  2. required Uint8List privateKey,
  3. required Uint8List publicKey,
})

Sign a message with a ed25519 expanded private key and return signature

Implementation

Uint8List signEd25519Extended(
    {required Uint8List message,
    required Uint8List privateKey,
    required Uint8List publicKey}) {
  List<int> hash = blake2bHash256(message);
  var sm = Uint8List(hash.length + TweetNaCl.signatureLength);
  final kb = Uint8List.fromList(privateKey + publicKey);
  final result = TweetNaCl.crypto_sign(sm, -1, message, 0, message.length, kb,
      extended: true);
  if (result != 0) {
    throw Exception('Signing the massage is failed');
  }
  //print("sm: ${sm.length}, result: $result");
  return sm.length > 64 ? sm.sublist(0, 64) : sm;
}