Frank Denis 51a3d0603c std.rand: set DefaultCsprng to Gimli, and require a larger seed
`DefaultCsprng` is documented as a cryptographically secure RNG.

While `ISAAC` is a CSPRNG, the variant we have, `ISAAC64` is not.
A 64 bit seed is a bit small to satisfy that claim.

We also saw it being used with the current date as a seed, that
also defeats the point of a CSPRNG.

Set `DefaultCsprng` to `Gimli` instead of `ISAAC64`, rename
the parameter from `init_s` to `secret_seed` + add a comment to
clarify what kind of seed is expected here.

Instead of directly touching the internals of the Gimli implementation
(which can change/be architecture-specific), add an `init()` function
to the state.

Our Gimli-based CSPRNG was also not backtracking resistant. Gimli
is a permutation; it can be reverted. So, if the state was ever leaked,
future secrets, but also all the previously generated ones could be
recovered. Clear the rate after a squeeze in order to prevent this.

Finally, a dumb test was added just to exercise `DefaultCsprng` since
we don't use it anywhere.
2020-10-15 20:57:16 -04:00
..
2020-09-11 20:02:41 -04:00
2020-10-09 22:16:48 -04:00
2020-10-13 20:06:03 +02:00
2020-10-12 18:56:25 -04:00
2020-09-04 05:15:03 +03:00
2020-09-11 20:02:41 -04:00
2020-10-12 18:56:25 -04:00
2020-10-12 18:56:25 -04:00
2020-10-07 04:34:09 -04:00
2020-10-15 12:21:19 +02:00
2020-10-12 18:56:25 -04:00
2020-09-24 22:06:41 +02:00
2020-10-12 18:56:25 -04:00
2020-10-12 18:56:25 -04:00
2020-09-04 22:49:14 +03:00
2020-10-12 18:56:25 -04:00