From 0e537733f12314b7edf3a4113bdf2bacd3ae4575 Mon Sep 17 00:00:00 2001 From: Julien Cretin Date: Mon, 25 Jan 2021 17:04:01 +0100 Subject: [PATCH] Improve count_credentials by not deserializing them --- src/ctap/storage.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ctap/storage.rs b/src/ctap/storage.rs index b85f918..c5182bc 100644 --- a/src/ctap/storage.rs +++ b/src/ctap/storage.rs @@ -268,11 +268,11 @@ impl PersistentStore { /// Returns the number of credentials. pub fn count_credentials(&self) -> Result { - let mut iter_result = Ok(()); - let iter = self.iter_credentials(&mut iter_result)?; - let result = iter.count(); - iter_result?; - Ok(result) + let mut count = 0; + for handle in self.store.iter()? { + count += key::CREDENTIALS.contains(&handle?.get_key()) as usize; + } + Ok(count) } /// Returns the estimated number of credentials that can still be stored.