lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

commit fedaa5799af73fedb643e424af32e54cfcdf2c15
parent d9ce569a556d2fe3cdd70bd058362ad5752e9b9d
Author: triesap <tyson@radroots.org>
Date:   Thu,  5 Mar 2026 01:36:44 +0000

nostr: close tags strict region gaps

Diffstat:
Mcrates/nostr/tests/coverage.rs | 26++++++++++++++++++++++++++
1 file changed, 26 insertions(+), 0 deletions(-)

diff --git a/crates/nostr/tests/coverage.rs b/crates/nostr/tests/coverage.rs @@ -361,6 +361,22 @@ fn tag_helpers_cover_matchers_and_resolve_paths() { Err(RadrootsNostrTagsResolveError::MissingPTag(_)) )); + let encrypted_empty_p_content = RadrootsNostrEventBuilder::new(RadrootsNostrKind::TextNote, "cipher") + .tags(vec![ + RadrootsNostrTag::custom( + RadrootsNostrTagKind::Encrypted, + vec!["encrypted".to_string()], + ), + RadrootsNostrTag::custom(RadrootsNostrTagKind::p(), Vec::<String>::new()), + ]) + .sign_with_keys(&sender) + .expect("sign encrypted event with empty p tag"); + let empty_p_content = radroots_nostr_tags_resolve(&encrypted_empty_p_content, &keys); + assert!(matches!( + empty_p_content, + Err(RadrootsNostrTagsResolveError::MissingPTag(_)) + )); + let encrypted_not_recipient = encrypted_event_with_p_tag(&sender, "cipher", &other.public_key().to_hex()); let not_recipient = radroots_nostr_tags_resolve(&encrypted_not_recipient, &keys); @@ -384,6 +400,16 @@ fn tag_helpers_cover_matchers_and_resolve_paths() { let resolved_encrypted = radroots_nostr_tags_resolve(&encrypted_ok, &keys).expect("resolve tags"); assert!(resolved_encrypted.is_empty()); + + let encrypted_bad_json = nip04::encrypt(sender.secret_key(), &keys.public_key(), "not-json") + .expect("encrypt invalid tags payload"); + let encrypted_bad_json_event = + encrypted_event_with_p_tag(&sender, encrypted_bad_json, &keys.public_key().to_hex()); + let bad_json = radroots_nostr_tags_resolve(&encrypted_bad_json_event, &keys); + assert!(matches!( + bad_json, + Err(RadrootsNostrTagsResolveError::ParseError(_)) + )); } #[test]