From 2b1e184395792f7670bc9c3cd3a53f56174e430d Mon Sep 17 00:00:00 2001 From: Evan Feenstra Date: Fri, 9 Sep 2022 11:47:35 -0700 Subject: [PATCH] impl set_nonce for FlashPersister --- parser/src/control.rs | 9 +++++---- sphinx-key/src/core/control.rs | 4 +++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/parser/src/control.rs b/parser/src/control.rs index 58b66f4..1509a62 100644 --- a/parser/src/control.rs +++ b/parser/src/control.rs @@ -79,13 +79,14 @@ impl Controller { pub fn handle(&mut self, input: &[u8]) -> anyhow::Result<(Vec, Option)> { let msg = self.parse_msg_no_nonce(input)?; // increment the nonce EXCEPT for Nonce requests + let mut store = self.3.lock().unwrap(); match msg { ControlMessage::Nonce => (), _ => { self.2 = self.2 + 1; + store.set_nonce(self.2); } } - let mut store = self.3.lock().unwrap(); let mut new_policy = None; let res = match msg { ControlMessage::Nonce => ControlResponse::Nonce(self.2), @@ -106,12 +107,12 @@ impl Controller { pub trait ControlPersist: Sync + Send { fn reset(&mut self); + fn set_nonce(&mut self, nonce: u64); } pub struct DummyPersister; impl ControlPersist for DummyPersister { - fn reset(&mut self) { - // nothing - } + fn reset(&mut self) {} + fn set_nonce(&mut self, _nonce: u64) {} } diff --git a/sphinx-key/src/core/control.rs b/sphinx-key/src/core/control.rs index 8324208..8ef7a2b 100644 --- a/sphinx-key/src/core/control.rs +++ b/sphinx-key/src/core/control.rs @@ -18,7 +18,9 @@ pub struct FlashPersister(pub EspNvsStorage); impl ControlPersist for FlashPersister { fn reset(&mut self) { - // let mut store = self.0.lock(); self.0.remove("config").expect("couldnt remove config 1"); } + fn set_nonce(&mut self, nonce: u64) { + // self.0.remove("config").expect("couldnt remove config 1"); + } }