2015-10-25 14:06:56 -07:00
|
|
|
package server
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
"net/url"
|
|
|
|
"golang.org/x/crypto/nacl/box"
|
|
|
|
"crypto/rand"
|
|
|
|
)
|
|
|
|
|
2015-10-25 20:17:17 -07:00
|
|
|
func SetupRandomKeys(t testing.TB) {
|
|
|
|
_, senderPrivate, err := box.GenerateKey(rand.Reader)
|
2015-10-25 14:06:56 -07:00
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
2015-10-25 20:17:17 -07:00
|
|
|
receiverPublic, _, err := box.GenerateKey(rand.Reader)
|
2015-10-25 14:06:56 -07:00
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
2015-10-25 20:17:17 -07:00
|
|
|
box.Precompute(&backendSharedKey, receiverPublic, senderPrivate)
|
2015-10-25 14:06:56 -07:00
|
|
|
messageBufferPool.New = New4KByteBuffer
|
2015-10-25 20:17:17 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestSealRequest(t *testing.T) {
|
|
|
|
SetupRandomKeys(t)
|
2015-10-25 14:06:56 -07:00
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|