From e397107b65258f81b69f43050b503bc8f8756697 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Thu, 22 Mar 2018 20:06:43 +0100 Subject: Replace Hyper/tokio mess with Reqwest. --- src/main.rs | 48 +++++++++++++----------------------------------- 1 file changed, 13 insertions(+), 35 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index b742d95..3f82135 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,18 +14,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -extern crate futures; -extern crate hyper; -extern crate hyper_tls; +extern crate reqwest; extern crate ring; -extern crate tokio_core; - -use futures::{Future, Stream}; -use hyper::Client; -use hyper_tls::HttpsConnector; -use ring::digest; use std::env; -use tokio_core::reactor::Core; +use ring::digest; // // Convert a slice of bytes into a string of hex values @@ -83,31 +75,17 @@ fn test_creating_new_password() { assert_eq!(&pw.rest, "910077770C8340F63CD2DCA2AC1F120444F"); } -fn check(pw: Password) -> Result<(), Box<::std::error::Error>> { - let mut core = Core::new()?; - let client = Client::configure() - .connector(HttpsConnector::new(4, &core.handle())?) - .build(&core.handle()); - - let uri = format!("https://api.pwnedpasswords.com/range/{}", pw.range).parse()?; +fn check(pw: Password) { + let uri = &format!("https://api.pwnedpasswords.com/range/{}", pw.range); + let hashes = reqwest::get(uri).unwrap().text().unwrap(); - let req = client.get(uri).and_then(|res| { - res.body().concat2().and_then(move |body| { - let hashes = std::str::from_utf8(&body)?; - if let Some(pos) = hashes.find(&pw.rest) { - println!("Password is PWNED!"); - if let Some(res) = hashes[pos..].lines().take(1).collect::>().pop() { - let count = res.split(':').skip(1).collect::>().pop().unwrap(); - println!("The password {} was found in {} breaches", pw.pw, count); - } - } - Ok(()) - }) - }); - - core.run(req)?; - - Ok(()) + if let Some(pos) = hashes.find(&pw.rest) { + println!("Password is PWNED!"); + if let Some(res) = hashes[pos..].lines().take(1).collect::>().pop() { + let count = res.split(':').skip(1).collect::>().pop().unwrap(); + println!("The password {} was found in {} breaches", pw.pw, count); + } + } } fn print_usage() { @@ -125,6 +103,6 @@ fn main() { } for pw in passwords { - check(Password::new(&pw)).unwrap(); + check(Password::new(&pw)); } } -- cgit v1.2.3