chacha20: remove Clone
impls on RNGs
#220
Merged
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.
Removes
derive(Clone)
onChaCha*Rng*
.They date back to the original PR which added RNG support (#63).
Allowing
Clone
on an RNG is problematic because the cloned RNG will have the same internal state, duplicating outputs which can be catastrophic in a cryptographic context.Instead, the
SeedableRng::from_rng
method can be used to "fork" one RNG from another, seeing a new RNG with an output from another:https://docs.rs/rand_core/0.6.2/rand_core/trait.SeedableRng.html#method.from_rng