From 0a68837d0a6613b2f3a30d3f74c16f76544e206c Mon Sep 17 00:00:00 2001 From: "sinu.eth" <65924192+sinui0@users.noreply.github.com> Date: Fri, 10 Oct 2025 15:44:38 -0700 Subject: [PATCH] fix: empty auth ranges (#1016) --- crates/tlsn/src/map.rs | 5 +++++ crates/tlsn/src/transcript_internal/auth.rs | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/crates/tlsn/src/map.rs b/crates/tlsn/src/map.rs index 8883a777c..4ffc8fc8e 100644 --- a/crates/tlsn/src/map.rs +++ b/crates/tlsn/src/map.rs @@ -35,6 +35,11 @@ where Self { map } } + /// Returns `true` if the map is empty. + pub(crate) fn is_empty(&self) -> bool { + self.map.is_empty() + } + /// Returns the keys of the map. pub(crate) fn keys(&self) -> impl Iterator> { self.map diff --git a/crates/tlsn/src/transcript_internal/auth.rs b/crates/tlsn/src/transcript_internal/auth.rs index 4c060ff77..5b8ec8fa8 100644 --- a/crates/tlsn/src/transcript_internal/auth.rs +++ b/crates/tlsn/src/transcript_internal/auth.rs @@ -168,6 +168,10 @@ fn alloc_plaintext( ) -> Result { let len = ranges.len(); + if len == 0 { + return Ok(ReferenceMap::default()); + } + let plaintext = vm.alloc_vec::(len).map_err(PlaintextAuthError::vm)?; let mut pos = 0; @@ -189,6 +193,10 @@ fn alloc_ciphertext<'a>( plaintext: ReferenceMap, records: impl IntoIterator, ) -> Result { + if plaintext.is_empty() { + return Ok(ReferenceMap::default()); + } + let ranges = RangeSet::from(plaintext.keys().collect::>()); let keystream = alloc_keystream(vm, key, iv, &ranges, records)?;