Versions in this module Expand all Collapse all v0 v0.0.1 Jul 28, 2023 Changes in this version + var AES128GCM = "AEAD_AES_128_GCM" + var AES192GCM = "AEAD_AES_192_GCM" + var AES256GCM = "AEAD_AES_256_GCM" + var CHACHA20IETFPOLY1305 = "AEAD_CHACHA20_POLY1305" + var ErrShortPacket = errors.New("short packet") + func NewPacketListener(endpoint transport.PacketEndpoint, key *EncryptionKey) (transport.PacketListener, error) + func Pack(dst, plaintext []byte, key *EncryptionKey) ([]byte, error) + func Unpack(dst, pkt []byte, key *EncryptionKey) ([]byte, error) + type EncryptionKey struct + func NewEncryptionKey(cipherName string, secretText string) (*EncryptionKey, error) + func (c *EncryptionKey) NewAEAD(salt []byte) (cipher.AEAD, error) + func (c *EncryptionKey) SaltSize() int + func (c *EncryptionKey) TagSize() int + type ErrUnsupportedCipher struct + Name string + func (err ErrUnsupportedCipher) Error() string + type Reader interface + func NewReader(reader io.Reader, key *EncryptionKey) Reader + type SaltGenerator interface + GetSalt func(salt []byte) error + var RandomSaltGenerator SaltGenerator = randomSaltGenerator{} + func NewPrefixSaltGenerator(prefix []byte) SaltGenerator + type StreamDialer struct + ClientDataWait time.Duration + SaltGenerator SaltGenerator + func NewStreamDialer(endpoint transport.StreamEndpoint, key *EncryptionKey) (*StreamDialer, error) + func (c *StreamDialer) Dial(ctx context.Context, remoteAddr string) (transport.StreamConn, error) + type Writer struct + func NewWriter(writer io.Writer, key *EncryptionKey) *Writer + func (sw *Writer) Flush() error + func (sw *Writer) LazyWrite(p []byte) (int, error) + func (sw *Writer) ReadFrom(r io.Reader) (int64, error) + func (sw *Writer) SetSaltGenerator(saltGenerator SaltGenerator) + func (sw *Writer) Write(p []byte) (int, error)