github.com/imannamdari/v2ray-core/v5@v5.0.5/proxy/shadowsocks/config_test.go (about) 1 package shadowsocks_test 2 3 import ( 4 "crypto/rand" 5 "testing" 6 7 "github.com/google/go-cmp/cmp" 8 9 "github.com/imannamdari/v2ray-core/v5/common" 10 "github.com/imannamdari/v2ray-core/v5/common/buf" 11 "github.com/imannamdari/v2ray-core/v5/proxy/shadowsocks" 12 ) 13 14 func TestAEADCipherUDP(t *testing.T) { 15 rawAccount := &shadowsocks.Account{ 16 CipherType: shadowsocks.CipherType_AES_128_GCM, 17 Password: "test", 18 } 19 account, err := rawAccount.AsAccount() 20 common.Must(err) 21 22 cipher := account.(*shadowsocks.MemoryAccount).Cipher 23 24 key := make([]byte, cipher.KeySize()) 25 common.Must2(rand.Read(key)) 26 27 payload := make([]byte, 1024) 28 common.Must2(rand.Read(payload)) 29 30 b1 := buf.New() 31 common.Must2(b1.ReadFullFrom(rand.Reader, cipher.IVSize())) 32 common.Must2(b1.Write(payload)) 33 common.Must(cipher.EncodePacket(key, b1)) 34 35 common.Must(cipher.DecodePacket(key, b1)) 36 if diff := cmp.Diff(b1.Bytes(), payload); diff != "" { 37 t.Error(diff) 38 } 39 }