aboutsummaryrefslogtreecommitdiffstats
path: root/license-generator/src/lib.rs
diff options
context:
space:
mode:
authorTeddy Wing2018-11-09 15:40:07 +0100
committerTeddy Wing2018-11-09 15:40:07 +0100
commitfd29a704906d98c1bacc42dc1f8ec4bc8228af44 (patch)
tree6894772a11e453ead09dc92641f58a486a9c2146 /license-generator/src/lib.rs
parent890c690007d55702d5eea9964e38e600bbc3dd15 (diff)
downloaddome-key-web-fd29a704906d98c1bacc42dc1f8ec4bc8228af44.tar.bz2
Purchaser::generate_secret(): Use a larger random number pool
The `random()` function I was using will sample a value from "the full representable range" (https://docs.rs/rand/0.5.5/rand/#the-two-step-process-to-get-a-random-value). We should really be using longer numbers, so set the sample range to integers above and including 1 billion.
Diffstat (limited to 'license-generator/src/lib.rs')
-rw-r--r--license-generator/src/lib.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs
index cc39cdb..df1613e 100644
--- a/license-generator/src/lib.rs
+++ b/license-generator/src/lib.rs
@@ -14,6 +14,8 @@ mod errors {
}
}
+use rand::Rng;
+
use errors::*;
struct Purchaser<'a> {
@@ -37,7 +39,8 @@ impl<'a> Purchaser<'a> {
}
fn generate_secret(&mut self) {
- let random: usize = rand::random();
+ 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 digest = sha1::Sha1::from(source).hexdigest();