edScalarMult function

EdPoint edScalarMult(
  1. BigInt k,
  2. EdPoint point
)

Implementation

EdPoint edScalarMult(BigInt k, EdPoint point) {
  if (k == BigInt.zero) return EdPoint.infinity();
  if (k == BigInt.one) return point;

  var result = EdPoint.infinity();
  var addend = point;
  var tempK = k % ed25519L;

  while (tempK > BigInt.zero) {
    if (tempK.isOdd) {
      result = edPointAdd(result, addend);
    }
    addend = edPointAdd(addend, addend);
    tempK >>= 1;
  }
  return result;
}