|
|
@ -3,7 +3,6 @@ package gost |
|
|
import ( |
|
|
import ( |
|
|
"crypto/rand" |
|
|
"crypto/rand" |
|
|
"crypto/tls" |
|
|
"crypto/tls" |
|
|
"fmt" |
|
|
|
|
|
"net/http/httptest" |
|
|
"net/http/httptest" |
|
|
"net/url" |
|
|
"net/url" |
|
|
"testing" |
|
|
"testing" |
|
|
@ -401,8 +400,6 @@ func TestSSOverH2(t *testing.T) { |
|
|
rand.Read(sendData) |
|
|
rand.Read(sendData) |
|
|
|
|
|
|
|
|
for i, tc := range ssProxyTests { |
|
|
for i, tc := range ssProxyTests { |
|
|
tc := tc |
|
|
|
|
|
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) { |
|
|
|
|
|
err := ssOverH2Roundtrip(httpSrv.URL, sendData, |
|
|
err := ssOverH2Roundtrip(httpSrv.URL, sendData, |
|
|
nil, |
|
|
nil, |
|
|
tc.clientCipher, |
|
|
tc.clientCipher, |
|
|
@ -418,7 +415,6 @@ func TestSSOverH2(t *testing.T) { |
|
|
t.Errorf("#%d got error: %v", i, err) |
|
|
t.Errorf("#%d got error: %v", i, err) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -456,8 +452,6 @@ func TestHTTPOverH2C(t *testing.T) { |
|
|
rand.Read(sendData) |
|
|
rand.Read(sendData) |
|
|
|
|
|
|
|
|
for i, tc := range httpProxyTests { |
|
|
for i, tc := range httpProxyTests { |
|
|
tc := tc |
|
|
|
|
|
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) { |
|
|
|
|
|
err := httpOverH2CRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers) |
|
|
err := httpOverH2CRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers) |
|
|
if err == nil { |
|
|
if err == nil { |
|
|
if tc.errStr != "" { |
|
|
if tc.errStr != "" { |
|
|
@ -471,7 +465,6 @@ func TestHTTPOverH2C(t *testing.T) { |
|
|
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr) |
|
|
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -577,8 +570,6 @@ func TestSOCKS5OverH2C(t *testing.T) { |
|
|
rand.Read(sendData) |
|
|
rand.Read(sendData) |
|
|
|
|
|
|
|
|
for i, tc := range socks5ProxyTests { |
|
|
for i, tc := range socks5ProxyTests { |
|
|
tc := tc |
|
|
|
|
|
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) { |
|
|
|
|
|
err := socks5OverH2CRoundtrip(httpSrv.URL, sendData, |
|
|
err := socks5OverH2CRoundtrip(httpSrv.URL, sendData, |
|
|
tc.cliUser, |
|
|
tc.cliUser, |
|
|
tc.srvUsers, |
|
|
tc.srvUsers, |
|
|
@ -593,7 +584,6 @@ func TestSOCKS5OverH2C(t *testing.T) { |
|
|
t.Errorf("#%d got error: %v", i, err) |
|
|
t.Errorf("#%d got error: %v", i, err) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -702,26 +692,7 @@ func TestSSOverH2C(t *testing.T) { |
|
|
sendData := make([]byte, 128) |
|
|
sendData := make([]byte, 128) |
|
|
rand.Read(sendData) |
|
|
rand.Read(sendData) |
|
|
|
|
|
|
|
|
var ssProxyTests = []struct { |
|
|
|
|
|
clientCipher *url.Userinfo |
|
|
|
|
|
serverCipher *url.Userinfo |
|
|
|
|
|
pass bool |
|
|
|
|
|
}{ |
|
|
|
|
|
{nil, nil, false}, |
|
|
|
|
|
{&url.Userinfo{}, &url.Userinfo{}, false}, |
|
|
|
|
|
{url.User("abc"), url.User("abc"), false}, |
|
|
|
|
|
{url.UserPassword("abc", "def"), url.UserPassword("abc", "def"), false}, |
|
|
|
|
|
|
|
|
|
|
|
{url.User("aes-128-cfb"), url.User("aes-128-cfb"), false}, |
|
|
|
|
|
{url.User("aes-128-cfb"), url.UserPassword("aes-128-cfb", "123456"), false}, |
|
|
|
|
|
{url.UserPassword("aes-128-cfb", "123456"), url.User("aes-128-cfb"), false}, |
|
|
|
|
|
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "abc"), false}, |
|
|
|
|
|
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "123456"), true}, |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for i, tc := range ssProxyTests { |
|
|
for i, tc := range ssProxyTests { |
|
|
tc := tc |
|
|
|
|
|
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) { |
|
|
|
|
|
err := ssOverH2CRoundtrip(httpSrv.URL, sendData, |
|
|
err := ssOverH2CRoundtrip(httpSrv.URL, sendData, |
|
|
tc.clientCipher, |
|
|
tc.clientCipher, |
|
|
tc.serverCipher, |
|
|
tc.serverCipher, |
|
|
@ -736,6 +707,5 @@ func TestSSOverH2C(t *testing.T) { |
|
|
t.Errorf("#%d got error: %v", i, err) |
|
|
t.Errorf("#%d got error: %v", i, err) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|