Skip to content

Commit

Permalink
remove token
Browse files Browse the repository at this point in the history
  • Loading branch information
txthinking committed Oct 16, 2018
1 parent b6c9fbf commit c379cd6
Show file tree
Hide file tree
Showing 7 changed files with 5 additions and 158 deletions.
48 changes: 1 addition & 47 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package brook

import (
"bytes"
"encoding/binary"
"errors"
"io"
"log"
Expand All @@ -26,7 +25,6 @@ type Client struct {
TCPListen *net.TCPListener
Socks5Middleman plugin.Socks5Middleman
HTTPMiddleman plugin.HTTPMiddleman
TokenGetter plugin.TokenGetter
}

// NewClient returns a new Client
Expand All @@ -46,11 +44,6 @@ func NewClient(addr, ip, server, password string, tcpTimeout, tcpDeadline, udpDe
return x, nil
}

// SetToken sets token plugin
func (x *Client) SetTokenGetter(token plugin.TokenGetter) {
x.TokenGetter = token
}

// SetSocks5Middleman sets socks5middleman plugin
func (x *Client) SetSocks5Middleman(m plugin.Socks5Middleman) {
x.Socks5Middleman = m
Expand Down Expand Up @@ -112,19 +105,6 @@ func (x *Client) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Request)
rawaddr = append(rawaddr, r.Atyp)
rawaddr = append(rawaddr, r.DstAddr...)
rawaddr = append(rawaddr, r.DstPort...)
if x.TokenGetter != nil {
t, err := x.TokenGetter.Get()
if err != nil {
return ErrorReply(r, c, err)
}
if len(t) == 0 {
return ErrorReply(r, c, errors.New("Miss Token"))
}
bb := make([]byte, 2)
binary.BigEndian.PutUint16(bb, uint16(len(t)))
t = append(bb, t...)
rawaddr = append(t, rawaddr...)
}
n, err = WriteTo(rc, rawaddr, k, n, true)
if err != nil {
return ErrorReply(r, c, err)
Expand Down Expand Up @@ -214,19 +194,6 @@ func (x *Client) UDPHandle(s *socks5.Server, addr *net.UDPAddr, d *socks5.Datagr
}

send := func(ue *socks5.UDPExchange, data []byte) error {
if x.TokenGetter != nil {
t, err := x.TokenGetter.Get()
if err != nil {
return err
}
if len(t) == 0 {
return errors.New("Miss Token")
}
bb := make([]byte, 2)
binary.BigEndian.PutUint16(bb, uint16(len(t)))
t = append(bb, t...)
data = append(t, data...)
}
cd, err := Encrypt(x.Password, data)
if err != nil {
return err
Expand Down Expand Up @@ -279,7 +246,7 @@ func (x *Client) UDPHandle(s *socks5.Server, addr *net.UDPAddr, d *socks5.Datagr
if err != nil {
break
}
_, _, _, data, err := Decrypt(x.Password, b[0:n], nil)
_, _, _, data, err := Decrypt(x.Password, b[0:n])
if err != nil {
log.Println(err)
break
Expand Down Expand Up @@ -405,19 +372,6 @@ func (x *Client) HTTPHandle(c *net.TCPConn) error {
rawaddr = append(rawaddr, a)
rawaddr = append(rawaddr, h...)
rawaddr = append(rawaddr, p...)
if x.TokenGetter != nil {
t, err := x.TokenGetter.Get()
if err != nil {
return err
}
if len(t) == 0 {
return errors.New("Miss Token")
}
bb := make([]byte, 2)
binary.BigEndian.PutUint16(bb, uint16(len(t)))
t = append(bb, t...)
rawaddr = append(t, rawaddr...)
}
n, err = WriteTo(rc, rawaddr, k, n, true)
if err != nil {
return err
Expand Down
11 changes: 1 addition & 10 deletions encrypt.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (
"time"

"github.com/txthinking/ant"
"github.com/txthinking/brook/plugin"
"github.com/txthinking/socks5"
)

Expand Down Expand Up @@ -115,7 +114,7 @@ func Encrypt(p, b []byte) ([]byte, error) {
}

// Decrypt data
func Decrypt(p, b []byte, token plugin.TokenChecker) (a byte, addr, port, data []byte, err error) {
func Decrypt(p, b []byte) (a byte, addr, port, data []byte, err error) {
err = errors.New("Data length error")
if len(b) <= 12+16 {
return
Expand All @@ -135,14 +134,6 @@ func Decrypt(p, b []byte, token plugin.TokenChecker) (a byte, addr, port, data [
return
}
bb = bb[10:]
if token != nil {
l := int(binary.BigEndian.Uint16(bb[0:2]))
t := bb[2 : l+2]
if err = token.Check(t); err != nil {
return
}
bb = b[l+2:]
}
a = bb[0]
if a == socks5.ATYPIPv4 {
addr = bb[1:5]
Expand Down
13 changes: 0 additions & 13 deletions plugin/token.go

This file was deleted.

Empty file removed plugin/token/.gitignore
Empty file.
18 changes: 1 addition & 17 deletions server.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package brook

import (
"encoding/binary"
"io"
"log"
"net"
"time"

cache "github.com/patrickmn/go-cache"
"github.com/txthinking/brook/plugin"
"github.com/txthinking/socks5"
)

Expand All @@ -23,7 +21,6 @@ type Server struct {
TCPDeadline int
TCPTimeout int
UDPDeadline int
TokenChecker plugin.TokenChecker
}

// NewServer
Expand All @@ -49,11 +46,6 @@ func NewServer(addr, password string, tcpTimeout, tcpDeadline, udpDeadline int)
return s, nil
}

// SetToken set token plugin
func (s *Server) SetTokenChecker(token plugin.TokenChecker) {
s.TokenChecker = token
}

// Run server
func (s *Server) ListenAndServe() error {
errch := make(chan error)
Expand Down Expand Up @@ -140,14 +132,6 @@ func (s *Server) TCPHandle(c *net.TCPConn) error {
if err != nil {
return err
}
if s.TokenChecker != nil {
l := int(binary.BigEndian.Uint16(b[0:2]))
t := b[2 : l+2]
if err := s.TokenChecker.Check(t); err != nil {
return err
}
b = b[l+2:]
}
address := socks5.ToAddress(b[0], b[1:len(b)-2], b[len(b)-2:])
tmp, err := Dial.Dial("tcp", address)
if err != nil {
Expand Down Expand Up @@ -212,7 +196,7 @@ func (s *Server) TCPHandle(c *net.TCPConn) error {

// UDPHandle handle packet
func (s *Server) UDPHandle(addr *net.UDPAddr, b []byte) error {
a, h, p, data, err := Decrypt(s.Password, b, s.TokenChecker)
a, h, p, data, err := Decrypt(s.Password, b)
if err != nil {
return err
}
Expand Down
36 changes: 1 addition & 35 deletions tproxy_linux.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package brook

import (
"encoding/binary"
"errors"
"fmt"
"io"
Expand All @@ -10,7 +9,6 @@ import (
"time"

cache "github.com/patrickmn/go-cache"
"github.com/txthinking/brook/plugin"
"github.com/txthinking/brook/tproxy"
"github.com/txthinking/socks5"
)
Expand All @@ -28,7 +26,6 @@ type Tproxy struct {
TCPDeadline int
TCPTimeout int
UDPDeadline int
TokenGetter plugin.TokenGetter
}

// NewTproxy
Expand Down Expand Up @@ -64,11 +61,6 @@ func NewTproxy(addr, remote, password string, tcpTimeout, tcpDeadline, udpDeadli
return s, nil
}

// SetToken set token plugin
func (s *Tproxy) SetTokenGetter(token plugin.TokenGetter) {
s.TokenGetter = token
}

// Run server
func (s *Tproxy) ListenAndServe() error {
errch := make(chan error)
Expand Down Expand Up @@ -193,19 +185,6 @@ func (s *Tproxy) TCPHandle(c *net.TCPConn) error {
rawaddr = append(rawaddr, a)
rawaddr = append(rawaddr, address...)
rawaddr = append(rawaddr, port...)
if s.TokenGetter != nil {
t, err := s.TokenGetter.Get()
if err != nil {
return err
}
if len(t) == 0 {
return errors.New("Miss Token")
}
bb := make([]byte, 2)
binary.BigEndian.PutUint16(bb, uint16(len(t)))
t = append(bb, t...)
rawaddr = append(t, rawaddr...)
}
n, err = WriteTo(rc, rawaddr, k, n, true)
if err != nil {
return err
Expand Down Expand Up @@ -274,19 +253,6 @@ func (s *Tproxy) UDPHandle(addr, daddr *net.UDPAddr, b []byte) error {
b = append(rawaddr, b...)

send := func(ue *UDPExchange, data []byte) error {
if s.TokenGetter != nil {
t, err := s.TokenGetter.Get()
if err != nil {
return err
}
if len(t) == 0 {
return errors.New("Miss Token")
}
bb := make([]byte, 2)
binary.BigEndian.PutUint16(bb, uint16(len(t)))
t = append(bb, t...)
data = append(t, data...)
}
cd, err := Encrypt(s.Password, data)
if err != nil {
return err
Expand Down Expand Up @@ -344,7 +310,7 @@ func (s *Tproxy) UDPHandle(addr, daddr *net.UDPAddr, b []byte) error {
if err != nil {
break
}
_, _, _, data, err := Decrypt(s.Password, b[0:n], nil)
_, _, _, data, err := Decrypt(s.Password, b[0:n])
if err != nil {
break
}
Expand Down
37 changes: 1 addition & 36 deletions tunnel.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
package brook

import (
"encoding/binary"
"errors"
"io"
"log"
"net"
"time"

cache "github.com/patrickmn/go-cache"
"github.com/txthinking/brook/plugin"
"github.com/txthinking/socks5"
)

Expand All @@ -27,7 +24,6 @@ type Tunnel struct {
TCPDeadline int
TCPTimeout int
UDPDeadline int
TokenGetter plugin.TokenGetter
}

// NewTunnel
Expand Down Expand Up @@ -64,11 +60,6 @@ func NewTunnel(addr, to, remote, password string, tcpTimeout, tcpDeadline, udpDe
return s, nil
}

// SetToken set token plugin
func (s *Tunnel) SetTokenGetter(token plugin.TokenGetter) {
s.TokenGetter = token
}

// Run server
func (s *Tunnel) ListenAndServe() error {
errch := make(chan error)
Expand Down Expand Up @@ -190,19 +181,6 @@ func (s *Tunnel) TCPHandle(c *net.TCPConn) error {
rawaddr = append(rawaddr, a)
rawaddr = append(rawaddr, address...)
rawaddr = append(rawaddr, port...)
if s.TokenGetter != nil {
t, err := s.TokenGetter.Get()
if err != nil {
return err
}
if len(t) == 0 {
return errors.New("Miss Token")
}
bb := make([]byte, 2)
binary.BigEndian.PutUint16(bb, uint16(len(t)))
t = append(bb, t...)
rawaddr = append(t, rawaddr...)
}
n, err = WriteTo(rc, rawaddr, k, n, true)
if err != nil {
return err
Expand Down Expand Up @@ -267,19 +245,6 @@ func (s *Tunnel) UDPHandle(addr *net.UDPAddr, b []byte) error {
b = append(rawaddr, b...)

send := func(ue *socks5.UDPExchange, data []byte) error {
if s.TokenGetter != nil {
t, err := s.TokenGetter.Get()
if err != nil {
return err
}
if len(t) == 0 {
return errors.New("Miss Token")
}
bb := make([]byte, 2)
binary.BigEndian.PutUint16(bb, uint16(len(t)))
t = append(bb, t...)
data = append(t, data...)
}
cd, err := Encrypt(s.Password, data)
if err != nil {
return err
Expand Down Expand Up @@ -327,7 +292,7 @@ func (s *Tunnel) UDPHandle(addr *net.UDPAddr, b []byte) error {
if err != nil {
break
}
_, _, _, data, err := Decrypt(s.Password, b[0:n], nil)
_, _, _, data, err := Decrypt(s.Password, b[0:n])
if err != nil {
log.Println(err)
break
Expand Down

0 comments on commit c379cd6

Please sign in to comment.