From b3242a18d968d3df0e2dd3d06b837a28062f5354 Mon Sep 17 00:00:00 2001 From: Gaurav Sarma Date: Sat, 6 Sep 2025 22:37:12 +0800 Subject: [PATCH] Prevent setting of encryption keys if already set --- core/lib.rs | 5 +++++ core/storage/pager.rs | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/core/lib.rs b/core/lib.rs index 4802c0d1c..8f951b8f9 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -2065,6 +2065,11 @@ impl Connection { }; tracing::trace!("setting encryption ctx for connection"); let pager = self.pager.borrow(); + if pager.is_encryption_ctx_set() { + return Err(LimboError::InvalidArgument( + "cannot reset encryption attributes if already set in the session".to_string(), + )); + } pager.set_encryption_context(cipher_mode, key) } } diff --git a/core/storage/pager.rs b/core/storage/pager.rs index da6a2380e..4a45eaa25 100644 --- a/core/storage/pager.rs +++ b/core/storage/pager.rs @@ -2165,6 +2165,10 @@ impl Pager { Ok(IOResult::Done(f(header))) } + pub fn is_encryption_ctx_set(&self) -> bool { + self.io_ctx.borrow_mut().encryption_context().is_some() + } + pub fn set_encryption_context( &self, cipher_mode: CipherMode,