wnafExp<SCALAR extends CryptoField<SCALAR> , G extends CryptoGroupElement<G, SCALAR> > static method
G
wnafExp<SCALAR extends CryptoField<SCALAR> , G extends CryptoGroupElement<G, SCALAR> >()
Implementation
static G wnafExp<
SCALAR extends CryptoField<SCALAR>,
G extends CryptoGroupElement<G, SCALAR>
>(List<G> table, List<int> wnaf, G identity) {
G result = identity;
bool foundOne = false;
// Iterate in reverse over wnaf
for (final n in wnaf.reversed) {
if (foundOne) {
result = result.double();
}
if (n != 0) {
foundOne = true;
if (n > 0) {
result = result + table[(n ~/ 2)];
} else {
result = result - table[(-n) ~/ 2];
}
}
}
return result;
}