package server import ( "testing" "net/url" "golang.org/x/crypto/nacl/box" "crypto/rand" ) func SetupRandomKeys(t testing.TB) { _, senderPrivate, err := box.GenerateKey(rand.Reader) if err != nil { t.Fatal(err) } receiverPublic, _, err := box.GenerateKey(rand.Reader) if err != nil { t.Fatal(err) } box.Precompute(&backendSharedKey, receiverPublic, senderPrivate) messageBufferPool.New = New4KByteBuffer } func TestSealRequest(t *testing.T) { SetupRandomKeys(t) values := url.Values{ "QuickBrownFox": []string{"LazyDog"}, } sealedValues, err := SealRequest(values) if err != nil { t.Fatal(err) } unsealedValues, err := UnsealRequest(sealedValues) if err != nil { t.Fatal(err) } if unsealedValues.Get("QuickBrownFox") != "LazyDog" { t.Errorf("Failed to round-trip, got back %v", unsealedValues) } }