groupHash<SCALAR extends JubJubScalar<SCALAR> , E extends BaseJubJubPoint<SCALAR, E> > static method
E?
groupHash<SCALAR extends JubJubScalar<SCALAR> , E extends BaseJubJubPoint<SCALAR, E> >({})
Implementation
static E? groupHash<
SCALAR extends JubJubScalar<SCALAR>,
E extends BaseJubJubPoint<SCALAR, E>
>({
required List<int> tag,
required List<int> personalization,
required E Function(List<int> bytes) fromBytes,
}) {
assert(personalization.length == 8);
final hash = QuickCrypto.blake2s256Hash(
ghFirstBlock,
extraBlocks: [tag],
personalization: personalization,
);
try {
final p = fromBytes(hash).mulByCofactor();
if (p.isIdentity()) return null;
return p;
} catch (_) {}
return null;
}