scalarReduceConst static method

List<int> scalarReduceConst(
  1. List<int> scalar
)

reduce scalar constant-time

Implementation

static List<int> scalarReduceConst(List<int> scalar) {
  List<int> r = List<int>.filled(Ed25519KeysConst.privKeyByteLen, 0);
  if (scalar.length == Ed25519KeysConst.privKeyByteLen) {
    CryptoOps.scReduce32Copy(r, scalar);
  } else if (scalar.length == Ed25519KeysConst.privKeyByteLen * 2) {
    CryptoOps.scReduce(r, scalar);
  } else {
    throw ArgumentException.invalidOperationArguments(
      "scalarReduceConst",
      name: "scalar",
      reason: "Incorrect scalar length.",
    );
  }
  return r;
}