summaryrefslogtreecommitdiff
path: root/cli/ops
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops')
-rw-r--r--cli/ops/crypto.rs14
-rw-r--r--cli/ops/fs.rs4
-rw-r--r--cli/ops/mod.rs2
-rw-r--r--cli/ops/random.rs38
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!({}))
-}