Files
cunicu/pkg/crypto/crypto_test.go
Steffen Vogel a74df99adb initial commit
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
2021-12-15 18:03:58 +01:00

45 lines
743 B
Go

package crypto_test
import (
"bytes"
"testing"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
"riasc.eu/wice/internal/util"
"riasc.eu/wice/pkg/crypto"
)
func TestCurve25519Crypt(t *testing.T) {
keyA, err := wgtypes.GeneratePrivateKey()
if err != nil {
t.Fail()
}
keyB, err := wgtypes.GeneratePrivateKey()
if err != nil {
t.Fail()
}
pubA := keyA.PublicKey()
pubB := keyB.PublicKey()
payload, err := util.GenerateRandomBytes(32)
if err != nil {
t.Fail()
}
encPayload, err := crypto.Curve25519Crypt(keyA[:], pubB[:], payload)
if err != nil {
t.Fail()
}
decPayload, err := crypto.Curve25519Crypt(keyB[:], pubA[:], encPayload)
if err != nil {
t.Fail()
}
if !bytes.Equal(decPayload, payload) {
t.Fail()
}
}