| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package socks
- import (
- "bytes"
- "testing"
- )
- func TestAuthenticationRequestRead(t *testing.T) {
- rawRequest := []byte{
- 0x05, // version
- 0x01, // nMethods
- 0x02, // methods
- }
- request, err := ReadAuthentication(bytes.NewReader(rawRequest))
- if err != nil {
- t.Errorf("Unexpected error %v", err)
- }
- if request.version != 0x05 {
- t.Errorf("Expected version 5, but got %d", request.version)
- }
- if request.nMethods != 0x01 {
- t.Errorf("Expected nMethod 1, but got %d", request.nMethods)
- }
- if request.authMethods[0] != 0x02 {
- t.Errorf("Expected method 2, but got %d", request.authMethods[0])
- }
- }
- func TestAuthenticationResponseToBytes(t *testing.T) {
- socksVersion := uint8(5)
- authMethod := uint8(1)
- response := Socks5AuthenticationResponse{socksVersion, authMethod}
- bytes := response.ToBytes()
- if bytes[0] != socksVersion {
- t.Errorf("Unexpected Socks version %d", bytes[0])
- }
- if bytes[1] != authMethod {
- t.Errorf("Unexpected Socks auth method %d", bytes[1])
- }
- }
- func TestRequestRead(t *testing.T) {
- rawRequest := []byte{
- 0x05, // version
- 0x01, // cmd connect
- 0x00, // reserved
- 0x01, // ipv4 type
- 0x72, 0x72, 0x72, 0x72, // 114.114.114.114
- 0x00, 0x35, // port 53
- }
- request, err := ReadRequest(bytes.NewReader(rawRequest))
- if err != nil {
- t.Errorf("Unexpected error %v", err)
- }
- if request.version != 0x05 {
- t.Errorf("Expected version 5, but got %d", request.version)
- }
- if request.command != 0x01 {
- t.Errorf("Expected command 1, but got %d", request.command)
- }
- if request.addrType != 0x01 {
- t.Errorf("Expected addresstype 1, but got %d", request.addrType)
- }
- if !bytes.Equal([]byte{0x72, 0x72, 0x72, 0x72}, request.ipv4[:]) {
- t.Errorf("Expected IPv4 address 114.114.114.114, but got %v", request.ipv4[:])
- }
- if request.port != 53 {
- t.Errorf("Expected port 53, but got %d", request.port)
- }
- }
|