conn_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package tf_test
  2. import (
  3. "context"
  4. "crypto/tls"
  5. "net"
  6. "testing"
  7. tf "github.com/sagernet/sing-box/common/tlsfragment"
  8. "github.com/stretchr/testify/require"
  9. )
  10. func TestTLSFragment(t *testing.T) {
  11. t.Parallel()
  12. tcpConn, err := net.Dial("tcp", "1.1.1.1:443")
  13. require.NoError(t, err)
  14. tlsConn := tls.Client(tf.NewConn(tcpConn, context.Background(), true, false, 0), &tls.Config{
  15. ServerName: "www.cloudflare.com",
  16. })
  17. require.NoError(t, tlsConn.Handshake())
  18. }
  19. func TestTLSRecordFragment(t *testing.T) {
  20. t.Parallel()
  21. tcpConn, err := net.Dial("tcp", "1.1.1.1:443")
  22. require.NoError(t, err)
  23. tlsConn := tls.Client(tf.NewConn(tcpConn, context.Background(), false, true, 0), &tls.Config{
  24. ServerName: "www.cloudflare.com",
  25. })
  26. require.NoError(t, tlsConn.Handshake())
  27. }
  28. func TestTLS2Fragment(t *testing.T) {
  29. t.Parallel()
  30. tcpConn, err := net.Dial("tcp", "1.1.1.1:443")
  31. require.NoError(t, err)
  32. tlsConn := tls.Client(tf.NewConn(tcpConn, context.Background(), true, true, 0), &tls.Config{
  33. ServerName: "www.cloudflare.com",
  34. })
  35. require.NoError(t, tlsConn.Handshake())
  36. }