darkstar

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 29, 2021 License: Apache-2.0 Imports: 16 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrShortPacket = errors.New("short packet")

ErrShortPacket means that the packet is too short for a valid encrypted packet.

Functions

func NewDarkStarConn

func NewDarkStarConn(c net.Conn, cipher cipher.AEAD) net.Conn

NewConn wraps a stream-oriented net.Conn with cipher.

func NewPacketConn added in v1.0.0

func NewPacketConn(c net.PacketConn, ciph shadowaead.Cipher) net.PacketConn

NewPacketConn wraps a net.PacketConn with cipher

func NewReader

func NewReader(r io.Reader, aead cipher.AEAD) io.Reader

NewReader wraps an io.Reader with AEAD decryption.

func NewWriter

func NewWriter(w io.Writer, aead cipher.AEAD) io.Writer

NewWriter wraps an io.Writer with AEAD encryption.

func Pack added in v1.0.0

func Pack(dst, plaintext []byte, ciph shadowaead.Cipher) ([]byte, error)

Pack encrypts plaintext using Cipher with a randomly generated salt and returns a slice of dst containing the encrypted packet and any error occurred. Ensure len(dst) >= ciph.SaltSize() + len(plaintext) + aead.Overhead().

func PublicKeyToBytes added in v1.0.0

func PublicKeyToBytes(pubKey crypto.PublicKey) ([]byte, error)

func Unpack added in v1.0.0

func Unpack(dst, pkt []byte, ciph shadowaead.Cipher) ([]byte, error)

Unpack decrypts pkt using Cipher and returns a slice of dst containing the decrypted payload and any error occurred. Ensure len(dst) >= len(pkt) - aead.SaltSize() - aead.Overhead().

Types

type DarkStarClient

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

func NewDarkStarClient

func NewDarkStarClient(serverPersistentPublicKey string, host string, port int) *DarkStarClient

func (*DarkStarClient) Decrypter

func (a *DarkStarClient) Decrypter(salt []byte) (cipher.AEAD, error)

func (*DarkStarClient) Encrypter

func (a *DarkStarClient) Encrypter(salt []byte) (cipher.AEAD, error)

func (*DarkStarClient) KeySize

func (a *DarkStarClient) KeySize() int

func (*DarkStarClient) PacketConn

func (a *DarkStarClient) PacketConn(conn net.PacketConn) net.PacketConn

func (*DarkStarClient) SaltSize

func (a *DarkStarClient) SaltSize() int

func (*DarkStarClient) StreamConn

func (a *DarkStarClient) StreamConn(conn net.Conn) net.Conn

type DarkStarServer

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

func NewDarkStarServer

func NewDarkStarServer(serverPersistentPrivateKey string, host string, port int) *DarkStarServer

func (*DarkStarServer) Decrypter

func (a *DarkStarServer) Decrypter(_ []byte) (cipher.AEAD, error)

func (*DarkStarServer) Encrypter

func (a *DarkStarServer) Encrypter(_ []byte) (cipher.AEAD, error)

func (*DarkStarServer) KeySize

func (a *DarkStarServer) KeySize() int

func (*DarkStarServer) PacketConn

func (a *DarkStarServer) PacketConn(conn net.PacketConn) net.PacketConn

func (*DarkStarServer) SaltSize

func (a *DarkStarServer) SaltSize() int

func (*DarkStarServer) StreamConn

func (a *DarkStarServer) StreamConn(conn net.Conn) net.Conn

Jump to

Keyboard shortcuts

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