diff options
Diffstat (limited to 'op_crates/crypto/lib.rs')
-rw-r--r-- | op_crates/crypto/lib.rs | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/op_crates/crypto/lib.rs b/op_crates/crypto/lib.rs deleted file mode 100644 index 543220548..000000000 --- a/op_crates/crypto/lib.rs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. - -use deno_core::error::null_opbuf; -use deno_core::error::AnyError; -use deno_core::include_js_files; -use deno_core::op_sync; -use deno_core::Extension; -use deno_core::OpState; -use deno_core::ZeroCopyBuf; -use rand::rngs::StdRng; -use rand::thread_rng; -use rand::Rng; -use rand::SeedableRng; -use std::path::PathBuf; - -pub use rand; // Re-export rand - -pub fn init(maybe_seed: Option<u64>) -> Extension { - Extension::builder() - .js(include_js_files!( - prefix "deno:op_crates/crypto", - "01_crypto.js", - )) - .ops(vec![( - "op_crypto_get_random_values", - op_sync(op_crypto_get_random_values), - )]) - .state(move |state| { - if let Some(seed) = maybe_seed { - state.put(StdRng::seed_from_u64(seed)); - } - Ok(()) - }) - .build() -} - -pub fn op_crypto_get_random_values( - state: &mut OpState, - _args: (), - zero_copy: Option<ZeroCopyBuf>, -) -> Result<(), AnyError> { - let mut zero_copy = zero_copy.ok_or_else(null_opbuf)?; - let maybe_seeded_rng = state.try_borrow_mut::<StdRng>(); - if let Some(seeded_rng) = maybe_seeded_rng { - seeded_rng.fill(&mut *zero_copy); - } else { - let mut rng = thread_rng(); - rng.fill(&mut *zero_copy); - } - - Ok(()) -} - -pub fn get_declaration() -> PathBuf { - PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("lib.deno_crypto.d.ts") -} |