Renci.SshNet.Security.KeyExchange
Represents base class for different key exchange algorithm implementations.
namespace Renci.SshNet.Security
{
public abstract class KeyExchange : Algorithm, IKeyExchange, IDisposable
{
protected Session Session { get; }
public byte[] { get; set; }
public byte[] ExchangeHash { get; }
public event EventHandler<HostKeyEventArgs> HostKeyReceived;
public virtual void Start(Session session, KeyExchangeInitMessage message, bool sendClientInitMessage);
public virtual void Finish();
public Cipher CreateServerCipher(out bool isAead);
public Cipher CreateClientCipher(out bool isAead);
public HashAlgorithm CreateServerHash(out bool isEncryptThenMAC);
public HashAlgorithm CreateClientHash(out bool isEncryptThenMAC);
public Compressor CreateCompressor();
public Compressor CreateDecompressor();
protected bool CanTrustHostKey(KeyHostAlgorithm host);
protected abstract bool ValidateExchangeHash();
protected abstract byte[] CalculateHash();
protected abstract byte[] Hash(byte[] hashData);
protected void SendMessage(Message message);
public void Dispose();
protected virtual void Dispose(bool disposing);
protected KeyExchange();
}
}