ANDROID: delete rand.rs
This file is deleted upstream, because it is moved, but
we still have the old copy.
Bug: 227629108
Test: boot cf
Change-Id: I042660e6416ae89cd1c04a0dcb1df9661e55c419
diff --git a/base/src/sys/unix/rand.rs b/base/src/sys/unix/rand.rs
deleted file mode 100644
index 04b1b6f..0000000
--- a/base/src/sys/unix/rand.rs
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright 2021 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-//! Rust implementation of functionality parallel to libchrome's base/rand_util.h.
-
-use std::{thread::sleep, time::Duration};
-
-use libc::{c_uint, c_void};
-
-use super::{errno_result, Result};
-use crate::handle_eintr_errno;
-
-/// How long to wait before calling getrandom again if it does not return
-/// enough bytes.
-const POLL_INTERVAL: Duration = Duration::from_millis(50);
-
-/// Represents whether or not the random bytes are pulled from the source of
-/// /dev/random or /dev/urandom.
-#[derive(Debug, Clone, Eq, PartialEq)]
-pub enum Source {
- // This is the default and uses the same source as /dev/urandom.
- Pseudorandom,
- // This uses the same source as /dev/random and may be.
- Random,
-}
-
-impl Default for Source {
- fn default() -> Self {
- Source::Pseudorandom
- }
-}
-
-impl Source {
- fn to_getrandom_flags(&self) -> c_uint {
- match self {
- Source::Random => libc::GRND_RANDOM,
- Source::Pseudorandom => 0,
- }
- }
-}
-
-/// Fills `output` completely with random bytes from the specified `source`.
-pub fn rand_bytes(mut output: &mut [u8], source: Source) -> Result<()> {
- if output.is_empty() {
- return Ok(());
- }
-
- loop {
- // Safe because output is mutable and the writes are limited by output.len().
- let bytes = handle_eintr_errno!(unsafe {
- libc::getrandom(
- output.as_mut_ptr() as *mut c_void,
- output.len(),
- source.to_getrandom_flags(),
- )
- });
-
- if bytes < 0 {
- return errno_result();
- }
- if bytes as usize == output.len() {
- return Ok(());
- }
-
- // Wait for more entropy and try again for the remaining bytes.
- sleep(POLL_INTERVAL);
- output = &mut output[bytes as usize..];
- }
-}
-
-/// Allocates a vector of length `len` filled with random bytes from the
-/// specified `source`.
-pub fn rand_vec(len: usize, source: Source) -> Result<Vec<u8>> {
- let mut rand = Vec::with_capacity(len);
- if len == 0 {
- return Ok(rand);
- }
-
- // Safe because rand will either be initialized by getrandom or dropped.
- unsafe { rand.set_len(len) };
- rand_bytes(rand.as_mut_slice(), source)?;
- Ok(rand)
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- const TEST_SIZE: usize = 64;
-
- // ANDROID: b/227794338
-// #[test]
-// fn randbytes_success() {
-// let mut rand = vec![0u8; TEST_SIZE];
-// rand_bytes(&mut rand, Source::Pseudorandom).unwrap();
-// assert_ne!(&rand, &[0u8; TEST_SIZE]);
-// }
-
-// #[test]
-// fn randvec_success() {
-// let rand = rand_vec(TEST_SIZE, Source::Pseudorandom).unwrap();
-// assert_eq!(rand.len(), TEST_SIZE);
-// assert_ne!(&rand, &[0u8; TEST_SIZE]);
-// }
-
-// #[test]
-// fn sourcerandom_success() {
-// let rand = rand_vec(TEST_SIZE, Source::Random).unwrap();
-// assert_ne!(&rand, &[0u8; TEST_SIZE]);
-// }
-}