const compressionNone …
const serviceUserAuth …
const serviceSSH …
var supportedCiphers …
var preferredCiphers …
var supportedKexAlgos …
var serverForbiddenKexAlgos …
var preferredKexAlgos …
var supportedHostKeyAlgos …
var supportedMACs …
var supportedCompressions …
var hashFuncs …
func algorithmsForKeyFormat(keyFormat string) []string { … }
func isRSA(algo string) bool { … }
func isRSACert(algo string) bool { … }
var supportedPubKeyAuthAlgos …
func unexpectedMessageError(expected, got uint8) error { … }
func parseError(tag uint8) error { … }
func findCommon(what string, client []string, server []string) (common string, err error) { … }
type directionAlgorithms …
func (a *directionAlgorithms) rekeyBytes() int64 { … }
var aeadCiphers …
type algorithms …
func findAgreedAlgorithms(isClient bool, clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { … }
const minRekeyThreshold …
type Config …
func (c *Config) SetDefaults() { … }
func buildDataSignedForAuth(sessionID []byte, req userAuthRequestMsg, algo string, pubKey []byte) []byte { … }
func appendU16(buf []byte, n uint16) []byte { … }
func appendU32(buf []byte, n uint32) []byte { … }
func appendU64(buf []byte, n uint64) []byte { … }
func appendInt(buf []byte, n int) []byte { … }
func appendString(buf []byte, s string) []byte { … }
func appendBool(buf []byte, b bool) []byte { … }
func newCond() *sync.Cond { … }
type window …
func (w *window) add(win uint32) bool { … }
func (w *window) close() { … }
func (w *window) reserve(win uint32) (uint32, error) { … }
func (w *window) waitWriterBlocked() { … }