From 609aa66b4d84c4fca8b5cb6f389146dd678467f8 Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Thu, 15 Feb 2024 22:28:26 +1300 Subject: [PATCH] Comments about NIP-01 violations --- src/types/parse/json_escape.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/types/parse/json_escape.rs b/src/types/parse/json_escape.rs index c911324..02cfe59 100644 --- a/src/types/parse/json_escape.rs +++ b/src/types/parse/json_escape.rs @@ -38,6 +38,8 @@ pub fn json_escape(input: &[u8], out: &mut [u8]) -> Result { if codepoint > 0x20 { panic!("unnecessary encoding requested"); } + // This violates NIP-01 which doesn't allow characters like 0x00 + // even though JSON UTF-8 does. output(format!("\\u{:04x}", codepoint).as_bytes())?; } } @@ -114,6 +116,7 @@ pub fn json_unescape(input: &[u8], out: &mut [u8]) -> Result<(usize, usize), Err b'n' => output_byte!(LINEFEED, out, &mut write_pos)?, b'r' => output_byte!(CR, out, &mut write_pos)?, b't' => output_byte!(TAB, out, &mut write_pos)?, + // This violates NIP-01 but we accept it b'u' => uescape = Some((0, 0)), _ => return Err(ChorusError::JsonEscape.into()), // nothing else is a legal escape }