import "github.com/gwuhaolin/lightsocks"
cipher.go password.go securetcp.go
func ListenEncryptedTCP(laddr *net.TCPAddr, cipher *Cipher, handleConn func(localConn *SecureTCPConn), didListen func(listenAddr *net.TCPAddr)) error
see net.ListenTCP
解析采用base64编码的字符串获取密码
产生 256个byte随机组合的 密码,最后会使用base64编码为字符串存储在配置文件中 不能出现任何一个重复的byte位,必须又 0-255 组成,并且都需要包含
type Cipher struct {
// contains filtered or unexported fields
}
新建一个编码解码器
解码加密后的数据到原数据
加密原数据
type SecureTCPConn struct { io.ReadWriteCloser Cipher *Cipher }
加密传输的 TCP Socket
see net.DialTCP
func (secureSocket *SecureTCPConn) DecodeCopy(dst io.Writer) error
从src中源源不断的读取加密后的数据解密后写入到dst,直到src中没有数据可以再读取
func (secureSocket *SecureTCPConn) DecodeRead(bs []byte) (n int, err error)
从输入流里读取加密过的数据,解密后把原数据放到bs里
func (secureSocket *SecureTCPConn) EncodeCopy(dst io.ReadWriteCloser) error
从src中源源不断的读取原数据加密后写入到dst,直到src中没有数据可以再读取
func (secureSocket *SecureTCPConn) EncodeWrite(bs []byte) (int, error)
把放在bs里的数据加密后立即全部写入输出流
Path | Synopsis |
---|---|
cmd | |
cmd/lightsocks-local | |
cmd/lightsocks-server | |
local | |
local/tun | |
server |
Package lightsocks imports 9 packages (graph) and is imported by 3 packages. Updated 2020-12-26. Refresh now. Tools for package owners.