core

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2021 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Overview

Package core implements essential parts of Shadowsocks

Index

Constants

This section is empty.

Variables

View Source
var ErrCipherNotSupported = errors.New("cipher not supported")

ErrCipherNotSupported occurs when a cipher is not supported (likely because of security concerns).

Functions

func Dial

func Dial(network, address string, ciph StreamConnCipher) (net.Conn, error)

func Kdf added in v0.1.8

func Kdf(password string, keyLen int) []byte

key-derivation function from original Shadowsocks

func ListCipher

func ListCipher() []string

ListCipher returns a list of available cipher names sorted alphabetically.

func Listen

func Listen(network, address string, ciph StreamConnCipher) (net.Listener, error)

func ListenPacket

func ListenPacket(network, address string, ciph PacketConnCipher) (net.PacketConn, error)

Types

type AeadCipher added in v0.1.8

type AeadCipher struct {
	shadowaead.Cipher

	Key []byte
}

func (*AeadCipher) PacketConn added in v0.1.8

func (aead *AeadCipher) PacketConn(c net.PacketConn) net.PacketConn

func (*AeadCipher) StreamConn added in v0.1.8

func (aead *AeadCipher) StreamConn(c net.Conn) net.Conn

type Cipher

type Cipher interface {
	StreamConnCipher
	PacketConnCipher
}

func PickCipher

func PickCipher(name string, key []byte, password string) (Cipher, error)

PickCipher returns a Cipher of the given name. Derive key from password if given key is empty.

type PacketConnCipher

type PacketConnCipher interface {
	PacketConn(net.PacketConn) net.PacketConn
}

type StreamCipher added in v0.1.8

type StreamCipher struct {
	shadowstream.Cipher

	Key []byte
}

func (*StreamCipher) PacketConn added in v0.1.8

func (ciph *StreamCipher) PacketConn(c net.PacketConn) net.PacketConn

func (*StreamCipher) StreamConn added in v0.1.8

func (ciph *StreamCipher) StreamConn(c net.Conn) net.Conn

type StreamConnCipher

type StreamConnCipher interface {
	StreamConn(net.Conn) net.Conn
}

Jump to

Keyboard shortcuts

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