crypto-common: change generate_*
to support getrandom
#1371
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit splits the existing
generate_*
functions into two different variants:fn generate_*
: accepts no parameters and usesOsRng
automatically. Gated on thegetrandom
feature.fn generate_*_with_rng
: accepts a&mut impl CryptoRngCore
parameter. Gated on therand_core
.Previously all of the
generate_*
methods were parameterized on aCryptoRngCore
.Splitting them up like this makes it very easy for users to do the right thing, which is use
getrandom
/OsRng
, but without the need to document how to importOsRng
into their code everywhere.Retaining the parameterized versions as
*_with_rng
allows users to pass a custom RNG where it makes sense, for examplerand::thread_rng
, or potentially an embedded peripheral/entropy pool.