noise

package
v0.0.0-...-d831735 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ExampleNoiseListener net.Listener = exampleNoiseTransport

ExampleNoiseListener is not a real Noise Listener, do not use it. It is exported so that it can be confirmed that the transport implements net.Listener

View Source
var ExampleNoiseSession net.Conn = exampleNoiseSession.(*NoiseSession)

Functions

func ComposeInitiatorHandshakeMessage

func ComposeInitiatorHandshakeMessage(s noise.DHKey, rs []byte, payload []byte, ePrivate []byte) (negData, msg []byte, state *noise.HandshakeState, err error)

func NewNoiseTransportSession

func NewNoiseTransportSession(ri router_info.RouterInfo, socket net.Conn) (transport.TransportSession, error)

Types

type NoiseSession

type NoiseSession struct {
	*cb.Queue
	router_info.RouterInfo
	*noise.CipherState
	sync.Mutex
	*sync.Cond
	*NoiseTransport

	Conn net.Conn
	// contains filtered or unexported fields
}

func (*NoiseSession) Close

func (s *NoiseSession) Close() error

func (*NoiseSession) LocalAddr

func (s *NoiseSession) LocalAddr() net.Addr

func (*NoiseSession) QueueSendI2NP

func (s *NoiseSession) QueueSendI2NP(msg i2np.I2NPMessage)

func (*NoiseSession) Read

func (*NoiseSession) Read(b []byte) (n int, err error)

Read implements net.Conn

func (*NoiseSession) ReadNextI2NP

func (s *NoiseSession) ReadNextI2NP() (i2np.I2NPMessage, error)

func (*NoiseSession) RemoteAddr

func (*NoiseSession) RemoteAddr() net.Addr

RemoteAddr implements net.Conn

func (*NoiseSession) RunClientHandshake

func (c *NoiseSession) RunClientHandshake() error

func (*NoiseSession) SendQueueSize

func (s *NoiseSession) SendQueueSize() int

func (*NoiseSession) SetDeadline

func (*NoiseSession) SetDeadline(t time.Time) error

SetDeadline implements net.Conn

func (*NoiseSession) SetReadDeadline

func (*NoiseSession) SetReadDeadline(t time.Time) error

SetReadDeadline implements net.Conn

func (*NoiseSession) SetWriteDeadline

func (*NoiseSession) SetWriteDeadline(t time.Time) error

SetWriteDeadline implements net.Conn

func (*NoiseSession) Write

func (c *NoiseSession) Write(b []byte) (int, error)

type NoiseTransport

type NoiseTransport struct {
	*noise.CipherState
	router_identity.RouterIdentity
	sync.Mutex
	Listener net.Listener
	// contains filtered or unexported fields
}

func NewNoiseTransport

func NewNoiseTransport(netSocket net.Listener) *NoiseTransport

func (*NoiseTransport) Accept

func (noopt *NoiseTransport) Accept() (net.Conn, error)

func (*NoiseTransport) Addr

func (noopt *NoiseTransport) Addr() net.Addr

func (*NoiseTransport) Close

func (noopt *NoiseTransport) Close() error

close the transport cleanly blocks until done returns an error if one happens

func (*NoiseTransport) Compatable

func (noopt *NoiseTransport) Compatable(routerInfo router_info.RouterInfo) bool

return true if a routerInfo is compatable with this transport

func (*NoiseTransport) GetSession

func (noopt *NoiseTransport) GetSession(routerInfo router_info.RouterInfo) (transport.TransportSession, error)

Obtain a transport session with a router given its RouterInfo. If a session with this router is NOT already made attempt to create one and block until made or until an error happens returns an established TransportSession and nil on success returns nil and an error on error

func (*NoiseTransport) Handshake

func (c *NoiseTransport) Handshake(routerInfo router_info.RouterInfo) error

func (*NoiseTransport) Name

func (noopt *NoiseTransport) Name() string

func (*NoiseTransport) SetIdentity

func (noopt *NoiseTransport) SetIdentity(ident router_identity.RouterIdentity) error

Set the router identity for this transport. will bind if the underlying socket is not already if the underlying socket is already bound update the RouterIdentity returns any errors that happen if they do

Jump to

Keyboard shortcuts

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