aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2018-11-14 15:30:10 +0100
committerTeddy Wing2018-11-14 15:30:10 +0100
commite55fdbdf7d8483954f8a8373dde74665ce87d9eb (patch)
tree4852d3cc78c82e1f78be6b991ffae8de4a20a956
parenta65fd703de8799a19ad5a878194d0fe07190f4db (diff)
downloaddome-key-web-e55fdbdf7d8483954f8a8373dde74665ce87d9eb.tar.bz2
purchaser: Add timestamp to secret
Trying to add a little more entropy to the calculation. Went with chrono instead of `std::time` because it gives me an `i64` timestamp instead of a `Result`.
-rw-r--r--license-generator/Cargo.lock1
-rw-r--r--license-generator/Cargo.toml1
-rw-r--r--license-generator/src/lib.rs1
-rw-r--r--license-generator/src/purchaser.rs5
4 files changed, 7 insertions, 1 deletions
diff --git a/license-generator/Cargo.lock b/license-generator/Cargo.lock
index 2905f0f..448c2d3 100644
--- a/license-generator/Cargo.lock
+++ b/license-generator/Cargo.lock
@@ -306,6 +306,7 @@ name = "license-generator"
version = "0.0.1"
dependencies = [
"aquatic-prime 0.0.1",
+ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
"exitcode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fastcgi 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/license-generator/Cargo.toml b/license-generator/Cargo.toml
index 531fd57..1e7f703 100644
--- a/license-generator/Cargo.toml
+++ b/license-generator/Cargo.toml
@@ -4,6 +4,7 @@ version = "0.0.1"
[dependencies]
aquatic-prime = { path = "aquatic-prime" }
+chrono = "0.4.6"
error-chain = "0.12.0"
exitcode = "1.1.2"
fastcgi = "1.0.0"
diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs
index eae9df0..697bfa6 100644
--- a/license-generator/src/lib.rs
+++ b/license-generator/src/lib.rs
@@ -1,4 +1,5 @@
extern crate aquatic_prime;
+extern crate chrono;
#[macro_use]
extern crate error_chain;
diff --git a/license-generator/src/purchaser.rs b/license-generator/src/purchaser.rs
index d189c11..60e389a 100644
--- a/license-generator/src/purchaser.rs
+++ b/license-generator/src/purchaser.rs
@@ -1,3 +1,4 @@
+use chrono::Utc;
use mysql;
use rand::{self, Rng};
use sha1;
@@ -24,10 +25,12 @@ impl<'a> Purchaser<'a> {
}
fn generate_secret(&mut self) {
+ let timestamp = Utc::now().timestamp();
+
let mut rng = rand::thread_rng();
let random: usize = rng.gen_range(1_000_000_000, ::std::usize::MAX);
- let source = format!("{}{}{}", self.name, self.email, random);
+ let source = format!("{}{}{}{}", self.name, self.email, timestamp, random);
let digest = sha1::Sha1::from(source).hexdigest();
self.secret = Some(digest);