1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-11-06 10:20:44 -05:00
v2fly/proxy/shadowsocks/config_test.go

40 lines
865 B
Go
Raw Normal View History

2018-11-02 17:04:52 -04:00
package shadowsocks_test
import (
"crypto/rand"
"testing"
2018-11-15 04:30:03 -05:00
"github.com/google/go-cmp/cmp"
2018-11-02 17:04:52 -04:00
"v2ray.com/core/common"
"v2ray.com/core/common/buf"
"v2ray.com/core/proxy/shadowsocks"
)
func TestAEADCipherUDP(t *testing.T) {
rawAccount := &shadowsocks.Account{
CipherType: shadowsocks.CipherType_AES_128_GCM,
Password: "test",
}
account, err := rawAccount.AsAccount()
common.Must(err)
cipher := account.(*shadowsocks.MemoryAccount).Cipher
key := make([]byte, cipher.KeySize())
common.Must2(rand.Read(key))
payload := make([]byte, 1024)
common.Must2(rand.Read(payload))
b1 := buf.New()
common.Must2(b1.ReadFullFrom(rand.Reader, cipher.IVSize()))
common.Must2(b1.Write(payload))
common.Must(cipher.EncodePacket(key, b1))
common.Must(cipher.DecodePacket(key, b1))
2018-11-15 04:30:03 -05:00
if diff := cmp.Diff(b1.Bytes(), payload); diff != "" {
t.Error(diff)
2018-11-02 17:04:52 -04:00
}
}