Background
It is sometimes necessary to use a backtracking resistant RNG for cryptographic or compliance reasons.
It seems this crate doesn't yet provide such thing.
Feature request
Creating one seems really easy since I believe we just need to take the output every X bytes and reseed the generator with it.
I am happy to provide a PR for that, I did a quick prototype for it directly in chacha20 crate.
I am opening this issue to request if you would take such a thing, and where do you think we should do that: here in rand crate, directly in chacha20 crate, elsewhere?
Do we want a specific Rng type for that?
Or should we make this the default since the computing cost is almost null?
Would we want to just take the output every X bytes and reseed the generator or would it be sensible to change the default alg to match current go impl that has a specification and a test vector, ChaCha8Rand? Actually an implementation already exists.
Background
It is sometimes necessary to use a backtracking resistant RNG for cryptographic or compliance reasons.
It seems this crate doesn't yet provide such thing.
Feature request
Creating one seems really easy since I believe we just need to take the output every X bytes and reseed the generator with it.
I am happy to provide a PR for that, I did a quick prototype for it directly in chacha20 crate.
I am opening this issue to request if you would take such a thing, and where do you think we should do that: here in
randcrate, directly inchacha20crate, elsewhere?Do we want a specific
Rngtype for that?Or should we make this the default since the computing cost is almost null?
Would we want to just
take the output every X bytes and reseed the generatoror would it be sensible to change the default alg to match current go impl that has a specification and a test vector, ChaCha8Rand? Actually an implementation already exists.