diff options
-rw-r--r-- | license-generator/src/lib.rs | 3 | ||||
-rw-r--r-- | license-generator/src/main.rs | 4 | ||||
-rw-r--r-- | license-generator/src/params.rs | 2 | ||||
-rw-r--r-- | license-generator/src/request.rs | 11 |
4 files changed, 12 insertions, 8 deletions
diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs index 407097a..f83dbbf 100644 --- a/license-generator/src/lib.rs +++ b/license-generator/src/lib.rs @@ -8,10 +8,9 @@ extern crate sha1; extern crate url; -mod params; - pub mod database; pub mod errors; +pub mod params; pub mod purchaser; pub mod request; pub mod response; diff --git a/license-generator/src/main.rs b/license-generator/src/main.rs index 4e47c33..3fe03ed 100644 --- a/license-generator/src/main.rs +++ b/license-generator/src/main.rs @@ -15,6 +15,7 @@ use simplelog::{Config, LevelFilter, WriteLogger}; use license_generator::database; use license_generator::errors::*; +use license_generator::params; use license_generator::purchaser::Purchaser; use license_generator::request; use license_generator::response; @@ -102,7 +103,8 @@ fn main() -> Result<()> { }, }; - let is_verified = match request::verified(¶ms) { + let ps = params::parse(¶ms); + let is_verified = match request::verified(&ps) { Ok(v) => v, Err(e) => { error!("{}", e); diff --git a/license-generator/src/params.rs b/license-generator/src/params.rs index 1b234e7..836e920 100644 --- a/license-generator/src/params.rs +++ b/license-generator/src/params.rs @@ -3,7 +3,7 @@ use std::collections::BTreeMap; use url::form_urlencoded; -pub(crate) fn parse<'a>(params: &'a str) -> BTreeMap<Cow<'a, str>, Cow<'a, str>> { +pub fn parse<'a>(params: &'a str) -> BTreeMap<Cow<'a, str>, Cow<'a, str>> { let iter = form_urlencoded::parse(params.as_bytes()); let mut dict = BTreeMap::new(); diff --git a/license-generator/src/request.rs b/license-generator/src/request.rs index 190a756..fd5b556 100644 --- a/license-generator/src/request.rs +++ b/license-generator/src/request.rs @@ -1,11 +1,14 @@ +use std::borrow::Cow; +use std::collections::BTreeMap; + use paddle; use errors::*; -use params; -pub fn verified(req_params: &str) -> Result<bool> { - let p = params::parse(&req_params); +pub fn verified<'a>( + req_params: &BTreeMap<Cow<'a, str>, Cow<'a, str>> +) -> Result<bool> { let pem = include_bytes!("../private/paddle.pubkey.asc"); - Ok(paddle::verify_signature(pem, p)?) + Ok(paddle::verify_signature(pem, req_params.clone())?) } |