shadowsocks

package
v2.10.5+incompatible Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2016 License: MIT Imports: 29 Imported by: 13

Documentation

Overview

Package shadowsocks is a generated protocol buffer package.

It is generated from these files:

v2ray.com/core/proxy/shadowsocks/config.proto

It has these top-level messages:

Account
ServerConfig
ClientConfig

R.I.P Shadowsocks

Index

Constants

View Source
const (
	Version                  = 1
	RequestOptionOneTimeAuth = protocol.RequestOption(101)

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

Variables

View Source
var Account_OneTimeAuth_name = map[int32]string{
	0: "Auto",
	1: "Disabled",
	2: "Enabled",
}
View Source
var Account_OneTimeAuth_value = map[string]int32{
	"Auto":     0,
	"Disabled": 1,
	"Enabled":  2,
}
View Source
var CipherType_name = map[int32]string{
	0: "UNKNOWN",
	1: "AES_128_CFB",
	2: "AES_256_CFB",
	3: "CHACHA20",
	4: "CHACHA20_IEFT",
}
View Source
var CipherType_value = map[string]int32{
	"UNKNOWN":       0,
	"AES_128_CFB":   1,
	"AES_256_CFB":   2,
	"CHACHA20":      3,
	"CHACHA20_IEFT": 4,
}

Functions

func ChunkKeyGenerator

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

func DecodeUDPPacket

func DecodeUDPPacket(user *protocol.User, payload *buf.Buffer) (*protocol.RequestHeader, *buf.Buffer, error)

func EncodeUDPPacket

func EncodeUDPPacket(request *protocol.RequestHeader, payload *buf.Buffer) (*buf.Buffer, error)

func HeaderKeyGenerator

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

func PasswordToCipherKey

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

func ReadTCPResponse

func ReadTCPResponse(user *protocol.User, reader io.Reader) (buf.Reader, error)

func ReadTCPSession

func ReadTCPSession(user *protocol.User, reader io.Reader) (*protocol.RequestHeader, buf.Reader, error)

func WriteTCPRequest

func WriteTCPRequest(request *protocol.RequestHeader, writer io.Writer) (buf.Writer, error)

func WriteTCPResponse

func WriteTCPResponse(request *protocol.RequestHeader, writer io.Writer) (buf.Writer, error)

Types

type Account

type Account struct {
	Password   string              `protobuf:"bytes,1,opt,name=password" json:"password,omitempty"`
	CipherType CipherType          `` /* 130-byte string literal not displayed */
	Ota        Account_OneTimeAuth `protobuf:"varint,3,opt,name=ota,enum=v2ray.core.proxy.shadowsocks.Account_OneTimeAuth" json:"ota,omitempty"`
}

func (*Account) AsAccount

func (v *Account) AsAccount() (protocol.Account, error)

func (*Account) Descriptor

func (*Account) Descriptor() ([]byte, []int)

func (*Account) GetCipher

func (v *Account) GetCipher() (Cipher, error)

func (*Account) GetCipherKey

func (v *Account) GetCipherKey() []byte

func (*Account) ProtoMessage

func (*Account) ProtoMessage()

func (*Account) Reset

func (m *Account) Reset()

func (*Account) String

func (m *Account) String() string

type Account_OneTimeAuth

type Account_OneTimeAuth int32
const (
	Account_Auto     Account_OneTimeAuth = 0
	Account_Disabled Account_OneTimeAuth = 1
	Account_Enabled  Account_OneTimeAuth = 2
)

func (Account_OneTimeAuth) EnumDescriptor

func (Account_OneTimeAuth) EnumDescriptor() ([]byte, []int)

func (Account_OneTimeAuth) String

func (x Account_OneTimeAuth) String() string

type AesCfb

type AesCfb struct {
	KeyBytes int
}

func (*AesCfb) IVSize

func (v *AesCfb) IVSize() int

func (*AesCfb) KeySize

func (v *AesCfb) KeySize() int

func (*AesCfb) NewDecodingStream

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

func (*AesCfb) NewEncodingStream

func (v *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 (v *Authenticator) Authenticate(data []byte) buf.Supplier

type ChaCha20

type ChaCha20 struct {
	IVBytes int
}

func (*ChaCha20) IVSize

func (v *ChaCha20) IVSize() int

func (*ChaCha20) KeySize

func (v *ChaCha20) KeySize() int

func (*ChaCha20) NewDecodingStream

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

func (*ChaCha20) NewEncodingStream

func (v *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 (v *ChunkReader) Read() (*buf.Buffer, error)

func (*ChunkReader) Release added in v1.11.1

func (v *ChunkReader) Release()

type ChunkWriter

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

func NewChunkWriter

func NewChunkWriter(writer io.Writer, auth *Authenticator) *ChunkWriter

func (*ChunkWriter) Release

func (v *ChunkWriter) Release()

func (*ChunkWriter) Write

func (v *ChunkWriter) Write(payload *buf.Buffer) error

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 CipherType

type CipherType int32
const (
	CipherType_UNKNOWN       CipherType = 0
	CipherType_AES_128_CFB   CipherType = 1
	CipherType_AES_256_CFB   CipherType = 2
	CipherType_CHACHA20      CipherType = 3
	CipherType_CHACHA20_IEFT CipherType = 4
)

func (CipherType) EnumDescriptor

func (CipherType) EnumDescriptor() ([]byte, []int)

func (CipherType) String

func (x CipherType) String() string

type Client

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

func NewClient

func NewClient(config *ClientConfig, space app.Space, meta *proxy.OutboundHandlerMeta) (*Client, error)

func (*Client) Dispatch

func (v *Client) Dispatch(destination v2net.Destination, payload *buf.Buffer, ray ray.OutboundRay)

type ClientConfig

type ClientConfig struct {
	Server []*v2ray_core_common_protocol1.ServerEndpoint `protobuf:"bytes,1,rep,name=server" json:"server,omitempty"`
}

func (*ClientConfig) Descriptor

func (*ClientConfig) Descriptor() ([]byte, []int)

func (*ClientConfig) GetServer

func (*ClientConfig) ProtoMessage

func (*ClientConfig) ProtoMessage()

func (*ClientConfig) Reset

func (m *ClientConfig) Reset()

func (*ClientConfig) String

func (m *ClientConfig) String() string

type ClientFactory

type ClientFactory struct{}

func (*ClientFactory) Create

func (v *ClientFactory) Create(space app.Space, rawConfig interface{}, meta *proxy.OutboundHandlerMeta) (proxy.OutboundHandler, error)

func (*ClientFactory) StreamCapability

func (v *ClientFactory) StreamCapability() v2net.NetworkList

type KeyGenerator

type KeyGenerator func() []byte

type Server added in v1.12.9

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

func NewServer added in v1.12.9

func NewServer(config *ServerConfig, space app.Space, meta *proxy.InboundHandlerMeta) (*Server, error)

func (*Server) Close added in v1.12.9

func (v *Server) Close()

func (*Server) Port added in v1.12.9

func (v *Server) Port() v2net.Port

func (*Server) Start added in v1.17.1

func (v *Server) Start() error

type ServerConfig

type ServerConfig struct {
	UdpEnabled bool                             `protobuf:"varint,1,opt,name=udp_enabled,json=udpEnabled" json:"udp_enabled,omitempty"`
	User       *v2ray_core_common_protocol.User `protobuf:"bytes,2,opt,name=user" json:"user,omitempty"`
}

func (*ServerConfig) Descriptor

func (*ServerConfig) Descriptor() ([]byte, []int)

func (*ServerConfig) GetUser

func (*ServerConfig) ProtoMessage

func (*ServerConfig) ProtoMessage()

func (*ServerConfig) Reset

func (m *ServerConfig) Reset()

func (*ServerConfig) String

func (m *ServerConfig) String() string

type ServerFactory added in v1.17.1

type ServerFactory struct{}

func (*ServerFactory) Create added in v1.17.1

func (v *ServerFactory) Create(space app.Space, rawConfig interface{}, meta *proxy.InboundHandlerMeta) (proxy.InboundHandler, error)

func (*ServerFactory) StreamCapability added in v1.17.1

func (v *ServerFactory) StreamCapability() v2net.NetworkList

type ShadowsocksAccount

type ShadowsocksAccount struct {
	Cipher      Cipher
	Key         []byte
	OneTimeAuth Account_OneTimeAuth
}

func (*ShadowsocksAccount) Equals

func (v *ShadowsocksAccount) Equals(another protocol.Account) bool

type UDPReader

type UDPReader struct {
	Reader io.Reader
	User   *protocol.User
}

func (*UDPReader) Read

func (v *UDPReader) Read() (*buf.Buffer, error)

func (*UDPReader) Release

func (v *UDPReader) Release()

type UDPWriter

type UDPWriter struct {
	Writer  io.Writer
	Request *protocol.RequestHeader
}

func (*UDPWriter) Release

func (v *UDPWriter) Release()

func (*UDPWriter) Write

func (v *UDPWriter) Write(buffer *buf.Buffer) error

Jump to

Keyboard shortcuts

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