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,