diff options
Diffstat (limited to 'cli/ops')
-rw-r--r-- | cli/ops/crypto.rs | 14 | ||||
-rw-r--r-- | cli/ops/fs.rs | 4 | ||||
-rw-r--r-- | cli/ops/mod.rs | 2 | ||||
-rw-r--r-- | cli/ops/random.rs | 38 |
4 files changed, 17 insertions, 41 deletions
diff --git a/cli/ops/crypto.rs b/cli/ops/crypto.rs new file mode 100644 index 000000000..a73843a33 --- /dev/null +++ b/cli/ops/crypto.rs @@ -0,0 +1,14 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +use deno_crypto::op_get_random_values; +use deno_crypto::rand::rngs::StdRng; +use deno_crypto::rand::SeedableRng; + +pub fn init(rt: &mut deno_core::JsRuntime, maybe_seed: Option<u64>) { + if let Some(seed) = maybe_seed { + let rng = StdRng::seed_from_u64(seed); + let op_state = rt.op_state(); + let mut state = op_state.borrow_mut(); + state.put::<StdRng>(rng); + } + super::reg_json_sync(rt, "op_get_random_values", op_get_random_values); +} diff --git a/cli/ops/fs.rs b/cli/ops/fs.rs index 720a4db52..37558ec6b 100644 --- a/cli/ops/fs.rs +++ b/cli/ops/fs.rs @@ -13,8 +13,8 @@ use deno_core::serde_json::Value; use deno_core::BufVec; use deno_core::OpState; use deno_core::ZeroCopyBuf; -use rand::thread_rng; -use rand::Rng; +use deno_crypto::rand::thread_rng; +use deno_crypto::rand::Rng; use serde::Deserialize; use std::cell::RefCell; use std::convert::From; diff --git a/cli/ops/mod.rs b/cli/ops/mod.rs index f5f42a2d7..b450f8989 100644 --- a/cli/ops/mod.rs +++ b/cli/ops/mod.rs @@ -3,6 +3,7 @@ mod dispatch_minimal; pub use dispatch_minimal::MinimalOp; +pub mod crypto; pub mod errors; pub mod fetch; pub mod fs; @@ -15,7 +16,6 @@ pub mod os; pub mod permissions; pub mod plugin; pub mod process; -pub mod random; pub mod runtime; pub mod runtime_compiler; pub mod signal; diff --git a/cli/ops/random.rs b/cli/ops/random.rs deleted file mode 100644 index 20296c667..000000000 --- a/cli/ops/random.rs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. - -use deno_core::error::AnyError; -use deno_core::serde_json::json; -use deno_core::serde_json::Value; -use deno_core::OpState; -use deno_core::ZeroCopyBuf; -use rand::rngs::StdRng; -use rand::thread_rng; -use rand::Rng; -use rand::SeedableRng; - -pub fn init(rt: &mut deno_core::JsRuntime, maybe_seed: Option<u64>) { - if let Some(seed) = maybe_seed { - let rng = StdRng::seed_from_u64(seed); - let op_state = rt.op_state(); - let mut state = op_state.borrow_mut(); - state.put::<StdRng>(rng); - } - super::reg_json_sync(rt, "op_get_random_values", op_get_random_values); -} - -fn op_get_random_values( - state: &mut OpState, - _args: Value, - zero_copy: &mut [ZeroCopyBuf], -) -> Result<Value, AnyError> { - assert_eq!(zero_copy.len(), 1); - let maybe_seeded_rng = state.try_borrow_mut::<StdRng>(); - if let Some(seeded_rng) = maybe_seeded_rng { - seeded_rng.fill(&mut *zero_copy[0]); - } else { - let mut rng = thread_rng(); - rng.fill(&mut *zero_copy[0]); - } - - Ok(json!({})) -} |