dtls_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. package sniff_test
  2. import (
  3. "context"
  4. "encoding/hex"
  5. "testing"
  6. "github.com/sagernet/sing-box/adapter"
  7. "github.com/sagernet/sing-box/common/sniff"
  8. C "github.com/sagernet/sing-box/constant"
  9. "github.com/stretchr/testify/require"
  10. )
  11. func TestSniffDTLSClientHello(t *testing.T) {
  12. t.Parallel()
  13. packet, err := hex.DecodeString("16fefd0000000000000000007e010000720000000000000072fefd668a43523798e064bd806d0c87660de9c611a59bbdfc3892c4e072d94f2cafc40000000cc02bc02fc00ac014c02cc0300100003c000d0010000e0403050306030401050106010807ff01000100000a00080006001d00170018000b00020100000e000900060008000700010000170000")
  14. require.NoError(t, err)
  15. var metadata adapter.InboundContext
  16. err = sniff.DTLSRecord(context.Background(), &metadata, packet)
  17. require.NoError(t, err)
  18. require.Equal(t, metadata.Protocol, C.ProtocolDTLS)
  19. }
  20. func TestSniffDTLSClientApplicationData(t *testing.T) {
  21. t.Parallel()
  22. packet, err := hex.DecodeString("17fefd000100000000000100440001000000000001a4f682b77ecadd10f3f3a2f78d90566212366ff8209fd77314f5a49352f9bb9bd12f4daba0b4736ae29e46b9714d3b424b3e6d0234736619b5aa0d3f")
  23. require.NoError(t, err)
  24. var metadata adapter.InboundContext
  25. err = sniff.DTLSRecord(context.Background(), &metadata, packet)
  26. require.NoError(t, err)
  27. require.Equal(t, metadata.Protocol, C.ProtocolDTLS)
  28. }