diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/deno_dir.rs | 22 | ||||
-rw-r--r-- | src/main.rs | 3 | ||||
-rw-r--r-- | src/net.rs | 6 |
3 files changed, 21 insertions, 10 deletions
diff --git a/src/deno_dir.rs b/src/deno_dir.rs index 45ce7db28..0a3557d5b 100644 --- a/src/deno_dir.rs +++ b/src/deno_dir.rs @@ -3,17 +3,17 @@ use errors::DenoError; use errors::DenoResult; use fs as deno_fs; use net; -use sha1; +use ring; use std; +use std::fmt::Write; use std::fs; use std::path::Path; use std::path::PathBuf; use std::result::Result; -use url; -use url::Url; - #[cfg(test)] use tempfile::TempDir; +use url; +use url::Url; pub struct DenoDir { // Example: /Users/rld/.deno/ @@ -331,10 +331,16 @@ fn test_code_cache() { // https://github.com/denoland/deno/blob/golang/deno_dir.go#L25-L30 fn source_code_hash(filename: &str, source_code: &str) -> String { - let mut m = sha1::Sha1::new(); - m.update(filename.as_bytes()); - m.update(source_code.as_bytes()); - m.digest().to_string() + let mut ctx = ring::digest::Context::new(&ring::digest::SHA1); + ctx.update(filename.as_bytes()); + ctx.update(source_code.as_bytes()); + let digest = ctx.finish(); + let mut out = String::new(); + // TODO There must be a better way to do this... + for byte in digest.as_ref() { + write!(&mut out, "{:02x}", byte).unwrap(); + } + out } #[test] diff --git a/src/main.rs b/src/main.rs index a43f62642..e4a756654 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,12 +4,13 @@ extern crate hyper; extern crate libc; extern crate msg_rs as msg_generated; extern crate rand; -extern crate sha1; extern crate tempfile; extern crate tokio; extern crate url; #[macro_use] extern crate log; +extern crate hyper_rustls; +extern crate ring; mod binding; mod deno_dir; diff --git a/src/net.rs b/src/net.rs index fc0df3fa2..7e0700bb6 100644 --- a/src/net.rs +++ b/src/net.rs @@ -1,13 +1,17 @@ use errors::DenoResult; +use hyper; use hyper::rt::{Future, Stream}; use hyper::{Client, Uri}; +use hyper_rustls; use tokio::runtime::current_thread::Runtime; // The CodeFetch message is used to load HTTP javascript resources and expects a // synchronous response, this utility method supports that. pub fn fetch_sync_string(module_name: &str) -> DenoResult<String> { let url = module_name.parse::<Uri>().unwrap(); - let client = Client::new(); + + let https = hyper_rustls::HttpsConnector::new(4); + let client: Client<_, hyper::Body> = Client::builder().build(https); // TODO Use Deno's RT let mut rt = Runtime::new().unwrap(); |