const debugTransport …
const gcm128CipherID …
const gcm256CipherID …
const aes128cbcID …
const tripledescbcID …
type packetConn …
type transport …
type packetCipher …
type connectionState …
func (t *transport) setStrictMode() error { … }
func (t *transport) setInitialKEXDone() { … }
func (t *transport) prepareKeyChange(algs *algorithms, kexResult *kexResult) error { … }
func (t *transport) printPacket(p []byte, write bool) { … }
func (t *transport) readPacket() (p []byte, err error) { … }
func (s *connectionState) readPacket(r *bufio.Reader, strictMode bool) ([]byte, error) { … }
func (t *transport) writePacket(packet []byte) error { … }
func (s *connectionState) writePacket(w *bufio.Writer, rand io.Reader, packet []byte, strictMode bool) error { … }
func newTransport(rwc io.ReadWriteCloser, rand io.Reader, isClient bool) *transport { … }
type direction …
var serverKeys …
var clientKeys …
func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (packetCipher, error) { … }
func generateKeyMaterial(out, tag []byte, r *kexResult) { … }
const packageVersion …
func exchangeVersions(rw io.ReadWriter, versionLine []byte) (them []byte, err error) { … }
const maxVersionStringBytes …
func readVersion(r io.Reader) ([]byte, error) { … }