shadowsocks

package
v1.12.5 Latest Latest
Warning

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

Go to latest
Published: May 4, 2016 License: MIT Imports: 20 Imported by: 13

Documentation

Overview

R.I.P Shadowsocks

Index

Constants

View Source
const (
	AddrTypeIPv4   = 1
	AddrTypeIPv6   = 4
	AddrTypeDomain = 3
)
View Source
const (
	AuthSize = 10
)

Variables

This section is empty.

Functions

func ChunkKeyGenerator

func ChunkKeyGenerator(iv []byte) func() []byte

func HeaderKeyGenerator

func HeaderKeyGenerator(key []byte, iv []byte) func() []byte

func PasswordToCipherKey

func PasswordToCipherKey(password string, keySize int) []byte

Types

type AesCfb

type AesCfb struct {
	KeyBytes int
}

func (*AesCfb) IVSize

func (this *AesCfb) IVSize() int

func (*AesCfb) KeySize

func (this *AesCfb) KeySize() int

func (*AesCfb) NewDecodingStream

func (this *AesCfb) NewDecodingStream(key []byte, iv []byte) (cipher.Stream, error)

func (*AesCfb) NewEncodingStream

func (this *AesCfb) NewEncodingStream(key []byte, iv []byte) (cipher.Stream, error)

type Authenticator

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

func NewAuthenticator

func NewAuthenticator(keygen KeyGenerator) *Authenticator

func (*Authenticator) Authenticate

func (this *Authenticator) Authenticate(auth []byte, data []byte) []byte

type ChaCha20

type ChaCha20 struct {
	IVBytes int
}

func (*ChaCha20) IVSize

func (this *ChaCha20) IVSize() int

func (*ChaCha20) KeySize

func (this *ChaCha20) KeySize() int

func (*ChaCha20) NewDecodingStream

func (this *ChaCha20) NewDecodingStream(key []byte, iv []byte) (cipher.Stream, error)

func (*ChaCha20) NewEncodingStream

func (this *ChaCha20) NewEncodingStream(key []byte, iv []byte) (cipher.Stream, error)

type ChunkReader

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

func NewChunkReader

func NewChunkReader(reader io.Reader, auth *Authenticator) *ChunkReader

func (*ChunkReader) Read

func (this *ChunkReader) Read() (*alloc.Buffer, error)

func (*ChunkReader) Release added in v1.11.1

func (this *ChunkReader) Release()

type Cipher

type Cipher interface {
	KeySize() int
	IVSize() int
	NewEncodingStream(key []byte, iv []byte) (cipher.Stream, error)
	NewDecodingStream(key []byte, iv []byte) (cipher.Stream, error)
}

type Config

type Config struct {
	Cipher Cipher
	Key    []byte
	UDP    bool
	Level  protocol.UserLevel
	Email  string
}

type KeyGenerator

type KeyGenerator func() []byte

type Request

type Request struct {
	Address    v2net.Address
	Port       v2net.Port
	OTA        bool
	UDPPayload *alloc.Buffer
}

func ReadRequest

func ReadRequest(reader io.Reader, auth *Authenticator, udp bool) (*Request, error)

func (*Request) DetachUDPPayload added in v1.12.1

func (this *Request) DetachUDPPayload() *alloc.Buffer

func (*Request) Release added in v1.12.1

func (this *Request) Release()

type Shadowsocks

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

func NewShadowsocks

func NewShadowsocks(config *Config, packetDispatcher dispatcher.PacketDispatcher) *Shadowsocks

func (*Shadowsocks) Close

func (this *Shadowsocks) Close()

func (*Shadowsocks) Listen

func (this *Shadowsocks) Listen(port v2net.Port) error

func (*Shadowsocks) Port

func (this *Shadowsocks) Port() v2net.Port

Jump to

Keyboard shortcuts

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