const packetSizeMultiple …
const maxPacket …
type noneCipher …
func (c noneCipher) XORKeyStream(dst, src []byte) { … }
func newAESCTR(key, iv []byte) (cipher.Stream, error) { … }
func newRC4(key, iv []byte) (cipher.Stream, error) { … }
type cipherMode …
func streamCipherMode(skip int, createFunc func(key, iv []byte) (cipher.Stream, error)) func(key, iv []byte, macKey []byte, algs directionAlgorithms) (packetCipher, error) { … }
var cipherModes …
const prefixLen …
type streamPacketCipher …
func (s *streamPacketCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) { … }
func (s *streamPacketCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { … }
type gcmCipher …
func newGCMCipher(key, iv, unusedMacKey []byte, unusedAlgs directionAlgorithms) (packetCipher, error) { … }
const gcmTagSize …
func (c *gcmCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { … }
func (c *gcmCipher) incIV() { … }
func (c *gcmCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) { … }
type cbcCipher …
func newCBCCipher(c cipher.Block, key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { … }
func newAESCBCCipher(key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { … }
func newTripleDESCBCCipher(key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { … }
func maxUInt32(a, b int) uint32 { … }
const cbcMinPacketSizeMultiple …
const cbcMinPacketSize …
const cbcMinPaddingSize …
type cbcError …
func (e cbcError) Error() string { … }
func (c *cbcCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) { … }
func (c *cbcCipher) readCipherPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) { … }
func (c *cbcCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { … }
const chacha20Poly1305ID …
type chacha20Poly1305Cipher …
func newChaCha20Cipher(key, unusedIV, unusedMACKey []byte, unusedAlgs directionAlgorithms) (packetCipher, error) { … }
func (c *chacha20Poly1305Cipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) { … }
func (c *chacha20Poly1305Cipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, payload []byte) error { … }