These reviews are from Crev, a distributed system for code reviews. To add your review, set up cargo-crev.

The current version of RdRand is 0.8.3.

0.6.0 (older version) Rating: Neutral Thoroughness: Medium Understanding: Medium

by MaulingMonkey on 2019-07-25

Sound, although buggy AMD hardware makes implementing CryptoRng for RdRand/RdSeed a little unnerving to me ( https://github.com/nagisa/rust_rdrand/issues/12 )

Reviewed: benches\rdrand.rs: +1 benches\rdseed.rs: +1 benches\std.rs: +1 src\changelog.rs: +1 src\lib.rs: 0 All of $gen::try_fill_bytes::imp being unsafe is still concerning... but I believe it's sound now. RdRand/RdSeed implement CrytoRng, which makes buggy AMD hardware concerning: https://github.com/nagisa/rust_rdrand/issues/12

Concerns reduced since 0.4.0: https://github.com/nagisa/rust_rdrand/commit/7af432c6e315fde053d0056d1b7df893a865711a unsafe blocks appear much larger than they need to be.

Concerns fixed since 0.4.0: https://github.com/nagisa/rust_rdrand/commit/26a0a2f9d885fbbb8e14fa47c8a48e366cf15455 mem::uninitialized() u32s loop_rand! uses mem::uninitialized() for $el:ty, easy to misuse! Requires unsafe{} so technically sound. Not exported. https://github.com/nagisa/rust_rdrand/commit/7af432c6e315fde053d0056d1b7df893a865711a $gen::try_fill_bytes: UNSOUND! word and buffer reference the same data. As both are &mut Ts, this is 100% undefined behavior. ptr::copy_nonoverlapping: This should really use a slice copy which should be just as safe...? But maybe missing from core? Verified vs https://www.amd.com/system/files/TechDocs/24594.pdf is_x86_feature_detected: I have not verified this is correct.

0.5.2 (older version) Rating: Neutral Thoroughness: Medium Understanding: Medium

by MaulingMonkey on 2019-07-25

Show review…

Sound, although buggy AMD hardware makes implementing CryptoRng for RdRand/RdSeed a little unnerving to me ( https://github.com/nagisa/rust_rdrand/issues/12 )

Reviewed: benches\rdrand.rs: +1 benches\rdseed.rs: +1 benches\std.rs: +1 src\changelog.rs: +1 src\lib.rs: 0 All of $gen::try_fill_bytes::imp being unsafe is still concerning... but I believe it's sound now. RdRand/RdSeed implement CrytoRng, which makes buggy AMD hardware concerning: https://github.com/nagisa/rust_rdrand/issues/12

Concerns reduced since 0.4.0: https://github.com/nagisa/rust_rdrand/commit/7af432c6e315fde053d0056d1b7df893a865711a unsafe blocks appear much larger than they need to be.

Concerns fixed since 0.4.0: https://github.com/nagisa/rust_rdrand/commit/26a0a2f9d885fbbb8e14fa47c8a48e366cf15455 mem::uninitialized() u32s loop_rand! uses mem::uninitialized() for $el:ty, easy to misuse! Requires unsafe{} so technically sound. Not exported. https://github.com/nagisa/rust_rdrand/commit/7af432c6e315fde053d0056d1b7df893a865711a $gen::try_fill_bytes: UNSOUND! word and buffer reference the same data. As both are &mut Ts, this is 100% undefined behavior. ptr::copy_nonoverlapping: This should really use a slice copy which should be just as safe...? But maybe missing from core? Verified vs https://www.amd.com/system/files/TechDocs/24594.pdf is_x86_feature_detected: I have not verified this is correct.

0.4.0 (older version) Rating: Positive Thoroughness: Low Understanding: Low

Approved without comment by kornelski on 2019-07-22


These reviews are from cargo-vet. To add your review, set up cargo-vet and submit your URL to its registry.

The current version of RdRand is 0.8.3.

cargo-vet does not verify reviewers' identity. You have to fully trust the source the audits are from.

unknown

May have been packaged automatically without a review


Lib.rs has been able to verify that all files in the crate's tarball are in the crate's repository with a git tag matching the version. Please note that this check is still in beta, and absence of this confirmation does not mean that the files don't match.

Crates in the crates.io registry are tarball snapshots uploaded by crates' publishers. The registry is not using crates' git repositories, so there is a possibility that published crates have a misleading repository URL, or contain different code from the code in the repository.

To review the actual code of the crate, it's best to use cargo crev open rdrand. Alternatively, you can download the tarball of rdrand v0.8.3 or view the source online.