package nostr import ( "testing" ) func TestNIP04RoundTrip(t *testing.T) { alice, err := GenerateKey() if err != nil { t.Fatal(err) } bob, err := GenerateKey() if err != nil { t.Fatal(err) } plaintext := "hello, private world!" ct, err := alice.NIP04Encrypt(bob.Public(), plaintext) if err != nil { t.Fatalf("encrypt: %v", err) } got, err := bob.NIP04Decrypt(alice.Public(), ct) if err != nil { t.Fatalf("decrypt: %v", err) } if got != plaintext { t.Fatalf("expected %q, got %q", plaintext, got) } } func TestNIP04DifferentKeys(t *testing.T) { alice, _ := GenerateKey() bob, _ := GenerateKey() eve, _ := GenerateKey() ct, err := alice.NIP04Encrypt(bob.Public(), "secret") if err != nil { t.Fatal(err) } // Eve should not be able to decrypt _, err = eve.NIP04Decrypt(alice.Public(), ct) if err == nil { t.Fatal("expected error decrypting with wrong key, got nil") } }