vpn

package
v0.0.0-...-8293206 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 24, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const FAILED = "0"
View Source
const PacketBytes = 2
View Source
const PacketSize = 1<<(PacketBytes*8) - 1
View Source
const SUCCESS = "1"

Variables

View Source
var ErrPrefixNotMacth = errors.New("prefix not match")
View Source
var ErrServerRejected = errors.New("remote server reject connection")
View Source
var ErrVersionDismatch = errors.New("version not match")
View Source
var FailedBytes = []byte(FAILED)
View Source
var SuccessBytes = []byte(SUCCESS)

Functions

func BeginProxy

func BeginProxy(remoteConn net.Conn, proxyConn *ProxyConn)

func GetConnectInfo

func GetConnectInfo(b []byte) (addr string, port int)

func GetNonce

func GetNonce(dst []byte)

Types

type ChaCha20Poly1305

type ChaCha20Poly1305 struct {
	// contains filtered or unexported fields
}

func (*ChaCha20Poly1305) Decrypt

func (c *ChaCha20Poly1305) Decrypt(cipherText []byte, buffer []byte) ([]byte, error)

func (*ChaCha20Poly1305) Encrypt

func (c *ChaCha20Poly1305) Encrypt(plainText []byte, buffer []byte) (b []byte)

func (*ChaCha20Poly1305) Key

func (c *ChaCha20Poly1305) Key(key []byte)

type Client

type Client struct {
	ServerIP   string
	ServerPort int
	Key        string
	// contains filtered or unexported fields
}

func (*Client) Connect

func (c *Client) Connect(remoteAddr string, remotePort int) (err error)

func (*Client) Proxy

func (c *Client) Proxy(conn net.Conn)

type ConnectInfo

type ConnectInfo struct {
	// contains filtered or unexported fields
}

func (*ConnectInfo) GetConnection

func (ci *ConnectInfo) GetConnection() (addr string, port int)

func (*ConnectInfo) SetConnection

func (ci *ConnectInfo) SetConnection(addr string, port uint16)

func (*ConnectInfo) Size

func (ci *ConnectInfo) Size() (size int)

type Encryptor

type Encryptor interface {
	Key([]byte)
	Encrypt(plainText []byte, buffer []byte) []byte
	Decrypt(cipherText []byte, buffer []byte) ([]byte, error)
}

func GetEncrypt

func GetEncrypt(key []byte) Encryptor

type Packet

type Packet interface {
	PacketSender
	PacketReceiver
}

type PacketReceiver

type PacketReceiver interface {
	Next(io.Reader, []byte) error
	Data() []byte
}

type PacketSender

type PacketSender interface {
	Send(io.Writer, []byte) error
}

type Proxy

type Proxy struct{}

type ProxyConn

type ProxyConn struct {
	// contains filtered or unexported fields
}

func CreateProxyConn

func CreateProxyConn(encryptor Encryptor, packet Packet, conn net.Conn, buffer []byte, recvbuffer []byte) ProxyConn

func (*ProxyConn) Close

func (pc *ProxyConn) Close()

func (*ProxyConn) Recv

func (pc *ProxyConn) Recv() ([]byte, error)

func (*ProxyConn) Send

func (pc *ProxyConn) Send(b []byte) error

type Raw

type Raw struct {
	// contains filtered or unexported fields
}

func (*Raw) Data

func (p *Raw) Data() []byte

func (*Raw) Next

func (r *Raw) Next(reader io.Reader, b []byte) error

func (*Raw) Send

func (p *Raw) Send(writer io.Writer, b []byte) (err error)

type Server

type Server struct {
	IP   string
	Port int
	Key  string
	// contains filtered or unexported fields
}

func (*Server) Serve

func (s *Server) Serve() (err error)

type SizePacket

type SizePacket struct {
	// contains filtered or unexported fields
}

func (*SizePacket) BodySize

func (p *SizePacket) BodySize() int

func (*SizePacket) Data

func (p *SizePacket) Data() []byte

func (*SizePacket) FullSize

func (p *SizePacket) FullSize() int

func (*SizePacket) Next

func (sp *SizePacket) Next(r io.Reader, buf []byte) error

func (*SizePacket) Send

func (p *SizePacket) Send(writer io.Writer, b []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL