julia
856025e8 - Random: make a new "strong" RNG using SHA

Commit
362 days ago
Random: make a new "strong" RNG using SHA The most convenient way to define `seed!` for new RNGs is via an another RNG, with `seed!(rng::AbstractRNG, seeder::AbstractRNG)`. But RNGs want to also support more usual seeds. In order to allow them to only define the method above, a new `SeedHasher` RNG is implemented, whose purpose is to convert an initial given seed into a stream of random numbers. Given that it's not always "safe" to seed an RNG from another RNG, `SeedHasher` uses a strong cryptographic hash (SHA2) to produces random streams. The generic `seed!(rng::AbstractRNG, seed)` method now takes care of forwarding the call to `seed!(rng, SeedHasher(seed))`.
Author
Committer
Parents
Loading