signECDSADer method

List<int> signECDSADer(
  1. List<int> digest, {
  2. List<int>? extraEntropy,
})

Signs the given transaction digest using ECDSA (DER-encoded).

  • digest: The transaction digest (message) to sign.

Implementation

List<int> signECDSADer(List<int> digest, {List<int>? extraEntropy}) {
  List<int> signature =
      _signingKey.signDer(digest: digest, extraEntropy: extraEntropy);
  BigInt attempt = BigInt.one;
  int lengthR = signature[3];
  while (lengthR == 33) {
    signature = _signingKey.signDer(digest: digest, extraEntropy: [
      ...extraEntropy ?? [],
      ...BigintUtils.toBytes(attempt, length: 32)
    ]);
    attempt += BigInt.one;
    lengthR = signature[3];
  }
  return signature;
}