From 03d55f3ebdb3a78961861a197acfd88a7b123dc5 Mon Sep 17 00:00:00 2001 From: shimun Date: Mon, 13 Apr 2020 20:01:09 +0200 Subject: [PATCH] init shared_secret on demand --- src/extensions/hmac.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/extensions/hmac.rs b/src/extensions/hmac.rs index 45e3b60..83ef7aa 100644 --- a/src/extensions/hmac.rs +++ b/src/extensions/hmac.rs @@ -156,7 +156,12 @@ impl HmacSecret { salt: &[u8; 32], salt2: Option<&[u8; 32]>, ) -> FidoResult { - let shared_secret = device.shared_secret.as_ref().unwrap(); + let shared_secret = loop { + if let Some(ref secret) = device.shared_secret { + break secret; + } + device.init_shared_secret()?; + }; let mut encryptor = shared_secret.encryptor(); let mut salt_enc = [0u8; 64]; let mut output = RefWriteBuffer::new(&mut salt_enc);