multiply method

  1. @override
JubJubNativePoint multiply(
  1. List<int> by
)
override

Scalar multiplication from raw bytes.

Implementation

@override
JubJubNativePoint multiply(List<int> by) {
  assert(by.length == 32);
  final zero = JubJubNielsNativePoint.identity();
  JubJubNativePoint acc = JubJubNativePoint.identity();
  final bits = BytesUtils.bytesToBits(by); // length = 256
  final iterableBits = bits.reversed.skip(4);
  for (final bit in iterableBits) {
    acc = acc.double();
    acc += JubJubNielsNativePoint.conditionalSelect(zero, this, bit);
  }
  return acc;
}