File: socks5.py

package info (click to toggle)
python-httplib2 0.31.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,172 kB
  • sloc: python: 4,527; javascript: 3,563; makefile: 56
file content (42 lines) | stat: -rw-r--r-- 1,089 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""SOCKS5 protocol constants."""

# SOCKS5 version
VERSION = 0x05

# Authentication methods
AUTH_NO_AUTHENTICATION_REQUIRED = 0x00
AUTH_GSSAPI = 0x01
AUTH_USERNAME_PASSWORD = 0x02
AUTH_NO_ACCEPTABLE_METHODS = 0xFF

# Authentication status
AUTH_STATUS_SUCCESS = 0x00
AUTH_STATUS_FAILURE = 0x01

# Command codes
CMD_CONNECT = 0x01
CMD_BIND = 0x02
CMD_UDP_ASSOCIATE = 0x03

# Address types
ATYP_IPV4 = 0x01
ATYP_DOMAINNAME = 0x03
ATYP_IPV6 = 0x04

# Reply codes
REP_SUCCEEDED = 0x00
REP_GENERAL_FAILURE = 0x01
REP_CONNECTION_NOT_ALLOWED = 0x02
REP_NETWORK_UNREACHABLE = 0x03
REP_HOST_UNREACHABLE = 0x04
REP_CONNECTION_REFUSED = 0x05
REP_TTL_EXPIRED = 0x06
REP_COMMAND_NOT_SUPPORTED = 0x07
REP_ADDRESS_TYPE_NOT_SUPPORTED = 0x08

# Common messages
SERVER_GREETING_NO_AUTH = bytes([VERSION, AUTH_NO_AUTHENTICATION_REQUIRED])
SERVER_GREETING_USER_PASS = bytes([VERSION, AUTH_USERNAME_PASSWORD])
AUTH_SUCCESS = bytes([0x01, AUTH_STATUS_SUCCESS])
AUTH_FAILURE = bytes([0x01, AUTH_STATUS_FAILURE])
SUCCESS_REPLY = bytes([VERSION, REP_SUCCEEDED, 0x00, ATYP_IPV4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])