Skip to content

Commit

Permalink
Add a comment explaining why SecRandomCopyBytes is not used on MacOS
Browse files Browse the repository at this point in the history
  • Loading branch information
ebarnard committed Apr 16, 2019
1 parent a7cef0b commit f1da89a
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/libstd/sys/unix/rand.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,13 @@ mod imp {
}
}

// On iOS and MacOS `SecRandomCopyBytes` calls `CCRandomCopyBytes` with
// `kCCRandomDefault`. `CCRandomCopyBytes` manages a CSPRNG which is seeded
// from `/dev/random` and which runs on its own thread accessed via GCD.
// This seems needlessly heavyweight for the purposes of generating two u64s
// once per thread in `hashmap_random_keys`. Therefore `SecRandomCopyBytes` is
// only used on iOS where direct access to `/dev/urandom` is blocked by the
// sandbox.
#[cfg(target_os = "ios")]
mod imp {
use crate::io;
Expand Down

0 comments on commit f1da89a

Please sign in to comment.