from imwald.core.nostr_crypto import build_signed_event, verify_nostr_event def _sk() -> bytes: return bytes.fromhex("3501454135014541350145413501453fefb02227e449e57cf4d3a3ce05378683") def test_verify_accepts_signed_roundtrip() -> None: sk = _sk() ev = build_signed_event(sk, created_at=1700000000, kind=1, tags=[["client", "imwald"]], content="hello") assert verify_nostr_event(ev) is True def test_verify_rejects_bad_id() -> None: sk = _sk() ev = build_signed_event(sk, created_at=1700000000, kind=1, tags=[], content="x") ev["id"] = "f" * 64 assert verify_nostr_event(ev) is False def test_verify_rejects_tampered_content() -> None: sk = _sk() ev = build_signed_event(sk, created_at=1700000000, kind=1, tags=[], content="x") ev["content"] = "y" assert verify_nostr_event(ev) is False