shake128generator function
Creates a SHAKE-128 based infinite hash generator.
If seed
is provided it will be used as an input to the algorithm.
With a proper seed, this can work as a random number generator.
Example:
final hash = shake128generator().take(500).toList();
Warning: This is an infinite Iterable
. Do not call toList
directly!
Implementation
Iterable<int> shake128generator([List<int>? seed]) sync* {
int i;
final sink = Shake128Hash(0);
if (seed != null && seed.isNotEmpty) {
sink.$process(seed, 0, seed.length);
}
sink.$finalize();
while (true) {
for (i = 0; i < sink.blockLength; ++i) {
yield sink.buffer[i];
}
sink.$update();
}
}