package api_test import ( "testing" "github.com/keys-pub/keys" "github.com/keys-pub/keys-ext/http/api" "github.com/stretchr/testify/require" ) func TestEncrypt(t *testing.T) { type test struct { Value string `msgpack:"val"` } v := &test{Value: "testing"} alice := keys.NewEdX25519KeyFromSeed(testSeed(0x01)) bob := keys.NewEdX25519KeyFromSeed(testSeed(0x02)) b, err := api.Encrypt(v, alice, bob.ID()) require.NoError(t, err) var out test pk, err := api.Decrypt(b, &out, bob) require.NoError(t, err) require.Equal(t, pk, alice.X25519Key().PublicKey()) require.Equal(t, &out, v) } func TestMessageEncrypt(t *testing.T) { alice := keys.NewEdX25519KeyFromSeed(testSeed(0x01)) bob := keys.NewEdX25519KeyFromSeed(testSeed(0x02)) msg := api.NewMessage(alice.ID()).WithText("test message") encrypted, err := msg.Encrypt(alice, bob.ID()) require.NoError(t, err) out, err := api.DecryptMessage(encrypted, bob) require.NoError(t, err) require.Equal(t, msg, out) require.Equal(t, alice.ID(), out.Sender) }