Documentation ¶
Overview ¶
Package obfs4 provides an implementation of the Tor Project's obfs4 obfuscation protocol.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrInvalidHandshake = errors.New("handshake: Failed to find M_[C,S]")
ErrInvalidHandshake is the error returned when the obfs4 handshake fails due to the peer not sending the correct mark. This error is fatal and the connection MUST be dropped.
var ErrMarkNotFoundYet = errors.New("handshake: M_[C,S] not found yet")
ErrMarkNotFoundYet is the error returned when the obfs4 handshake is incomplete and requires more data to continue. This error is non-fatal and is the equivalent to EAGAIN/EWOULDBLOCK.
var ErrNtorFailed = errors.New("handshake: ntor handshake failure")
ErrNtorFailed is the error returned when the ntor handshake fails. This error is fatal and the connection MUST be dropped.
var ErrReplayedHandshake = errors.New("handshake: Replay detected")
ErrReplayedHandshake is the error returned when the obfs4 handshake fails due it being replayed. This error is fatal and the connection MUST be dropped.
Functions ¶
This section is empty.
Types ¶
type InvalidAuthError ¶
InvalidAuthError is the error returned when the ntor AUTH tags do not match. This error is fatal and the connection MUST be dropped.
func (*InvalidAuthError) Error ¶
func (e *InvalidAuthError) Error() string
type InvalidMacError ¶
InvalidMacError is the error returned when the handshake MACs do not match. This error is fatal and the connection MUST be dropped.
func (*InvalidMacError) Error ¶
func (e *InvalidMacError) Error() string
type InvalidPacketLengthError ¶
type InvalidPacketLengthError int
InvalidPacketLengthError is the error returned when decodePacket detects a invalid packet length/
func (InvalidPacketLengthError) Error ¶
func (e InvalidPacketLengthError) Error() string
type InvalidPayloadLengthError ¶
type InvalidPayloadLengthError int
InvalidPayloadLengthError is the error returned when decodePacket rejects the payload length.
func (InvalidPayloadLengthError) Error ¶
func (e InvalidPayloadLengthError) Error() string
type Obfs4ClientArgs ¶
type Obfs4ClientArgs struct {
// contains filtered or unexported fields
}
type Obfs4ServerFactory ¶
type Obfs4ServerFactory struct {
// contains filtered or unexported fields
}
type Obfs4Transport ¶
type Obfs4Transport struct {
// contains filtered or unexported fields
}
Transport that uses the obfs4 protocol to shapeshift the application network traffic
func NewObfs4Client ¶
func NewObfs4Server ¶
func NewObfs4Server(stateDir string) (*Obfs4Transport, error)
func (*Obfs4Transport) Close ¶
func (transport *Obfs4Transport) Close() error