signDigestDeterminstic method

ECDSASignature signDigestDeterminstic({
  1. required List<int> digest,
  2. required HashFunc<HashState> hashFunc,
  3. List<int>? extraEntropy,
  4. bool truncate = false,
  5. int retry = 0,
})

Generates a deterministic signature for a given digest using the private key.

Uses RFC 6979 for 'k' value generation to mitigate certain vulnerabilities associated with random 'k' generation.

Implementation

ECDSASignature signDigestDeterminstic({
  required List<int> digest,
  required HashFunc hashFunc,
  List<int>? extraEntropy,
  bool truncate = false,
  int retry = 0,
}) {
  final k = RFC6979.generateK(
    order: generator.order!,
    secexp: privateKey.secretMultiplier,
    hashFunc: hashFunc,
    data: digest,
    extraEntropy: extraEntropy,
    retryGn: retry,
  );
  return signDigest(digest: digest, k: k, truncate: truncate);
}