const kexAlgoDH1SHA1 …
const kexAlgoDH14SHA1 …
const kexAlgoDH14SHA256 …
const kexAlgoDH16SHA512 …
const kexAlgoECDH256 …
const kexAlgoECDH384 …
const kexAlgoECDH521 …
const kexAlgoCurve25519SHA256LibSSH …
const kexAlgoCurve25519SHA256 …
const kexAlgoDHGEXSHA1 …
const kexAlgoDHGEXSHA256 …
type kexResult …
type handshakeMagics …
func (m *handshakeMagics) write(w io.Writer) { … }
type kexAlgorithm …
type dhGroup …
func (group *dhGroup) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, error) { … }
func (group *dhGroup) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { … }
func (group *dhGroup) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) { … }
type ecdh …
func (kex *ecdh) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { … }
func unmarshalECKey(curve elliptic.Curve, pubkey []byte) (x, y *big.Int, err error) { … }
func validateECPublicKey(curve elliptic.Curve, x, y *big.Int) bool { … }
func (kex *ecdh) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) { … }
func ecHash(curve elliptic.Curve) crypto.Hash { … }
var kexAlgoMap …
func init() { … }
type curve25519sha256 …
type curve25519KeyPair …
func (kp *curve25519KeyPair) generate(rand io.Reader) error { … }
var curve25519Zeros …
func (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { … }
func (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) { … }
type dhGEXSHA …
const dhGroupExchangeMinimumBits …
const dhGroupExchangePreferredBits …
const dhGroupExchangeMaximumBits …
func (gex *dhGEXSHA) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { … }
func (gex dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) { … }