1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-11-14 00:07:09 -05:00
v2fly/proxy/shadowsocks/config_test.go

40 lines
913 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"
2021-02-16 15:31:50 -05:00
"github.com/v2fly/v2ray-core/v4/common"
"github.com/v2fly/v2ray-core/v4/common/buf"
"github.com/v2fly/v2ray-core/v4/proxy/shadowsocks"
2018-11-02 17:04:52 -04:00
)
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
}
}