KeyExchange public abstract class KeyExchange : Algorithm, IKeyExchange, IDisposable Documentation Code public byte[] ExchangeHash { get; } protected Session Session { get; } public byte[] SharedKey { get; protected set; } public event EventHandler<HostKeyEventArgs> HostKeyReceived protected KeyExchange() protected abstract byte[] CalculateHash() protected bool CanTrustHostKey(KeyHostAlgorithm host) public Cipher CreateClientCipher() public HashAlgorithm CreateClientHash() public Compressor CreateCompressor() public Compressor CreateDecompressor() public Cipher CreateServerCipher() public HashAlgorithm CreateServerHash() public void Dispose() protected virtual void Dispose(bool disposing) public virtual void Finish() protected abstract byte[] Hash(byte[] hashData) protected void SendMessage(Message message) public virtual void Start(Session session, KeyExchangeInitMessage message) protected abstract bool ValidateExchangeHash()