stls

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2025 License: MIT Imports: 12 Imported by: 0

README

sTLS - stupid Transport Layer Security

sTLS is sRPC transport layer providing key exchange and symmetric encryption. Currently it uses crypto/ecdh Diffie-Hellman key exchange implementation and chacha20 (XChaCha20) for encryption.

Documentation

Overview

Package stls provides srpc transport layer with key exchange and symmetric encryption. It wraps another backing transport implementation.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dialer

type Dialer struct {
	// contains filtered or unexported fields
}

Dialer provides stls security layer of the backing dialer.

func NewDialer

func NewDialer(backing transport.Dialer, key *ecdh.PrivateKey) (*Dialer, error)

NewDialer creates new stls dialer with provided backing dialer and a private key.

func NewDialerRandomKey

func NewDialerRandomKey(backing transport.Dialer, rand io.Reader) (*Dialer, error)

NewDialerRandomKey is the same as NewDialer but it generates a key using provided random reader (e.g. rand.Reader).

func (*Dialer) Dial

func (d *Dialer) Dial(ctx context.Context, addr string) (transport.Conn, error)

Dial implemetns transport.Dialer

type Listener

type Listener struct {
	// contains filtered or unexported fields
}

Listener provides stls security layer of the backing listener.

func NewListener

func NewListener(backing transport.Listener, key *ecdh.PrivateKey) (*Listener, error)

NewListener creates new stls listener with provided backing listener and a private key.

func NewListenerRandomKey

func NewListenerRandomKey(backing transport.Listener, rand io.Reader) (*Listener, error)

NewListenerRandomKey is the same as NewListener but it generates a key using provided random reader (e.g. rand.Reader).

func (*Listener) Accept

func (l *Listener) Accept() (transport.Conn, error)

Accept waits and returns new connection to the listener. If Listener got closed Accept must return [ErrListenerClosed], including Accept calls that didn't returned yet.

func (*Listener) Addr

func (l *Listener) Addr() string

Addr returns listener's address. Address is valid to use in Dialer.Dial.

func (*Listener) Close

func (l *Listener) Close() error

Close closes the listener. Any blocked Accept operations will be unblocked and return errors. Close can be called multiple times.

Jump to

Keyboard shortcuts

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