From 2bbf754321049e934b6592b69281144633166df2 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 19 Jul 2020 18:58:49 +0100 Subject: [PATCH] RawToken::new_random --- src/global.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/global.rs b/src/global.rs index e8429323..95f0d11c 100644 --- a/src/global.rs +++ b/src/global.rs @@ -274,6 +274,18 @@ impl AccessId for ClientId { } } +impl RawToken { + #[throws(OE)] + fn new_random() -> Self { + let mut rng = thread_rng(); + let token = RawToken ( + repeat_with(|| rng.sample(Alphanumeric)) + .take(64).collect() + ); + token + } +} + pub fn lookup_token(s : &str) -> Result, OE> { Id::global_tokens(PRIVATE_Y).read().unwrap().get(s).cloned() @@ -292,16 +304,13 @@ impl<'r, Id> FromParam<'r> for InstanceAccess<'r, Id> InstanceAccess { raw_token : token, i : i.clone() } } } - -pub fn record_token( + +#[throws(OE)] +pub fn record_token ( ig : &mut InstanceGuard, iad : InstanceAccessDetails ) -> RawToken { - let mut rng = thread_rng(); - let token = RawToken ( - repeat_with(|| rng.sample(Alphanumeric)) - .take(64).collect() - ); + let token = RawToken::new_random()?; ig.token_register(token.clone(), iad); token } -- 2.30.2