| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 | using Renci.SshNet.IntegrationTests.Common;using Renci.SshNet.TestTools.OpenSSH;namespace Renci.SshNet.IntegrationTests{    [TestClass]    public class KeyExchangeAlgorithmTests : IntegrationTestBase    {        private IConnectionInfoFactory _connectionInfoFactory;        private RemoteSshdConfig _remoteSshdConfig;        [TestInitialize]        public void SetUp()        {            _connectionInfoFactory = new LinuxVMConnectionFactory(SshServerHostName, SshServerPort);            _remoteSshdConfig = new RemoteSshd(new LinuxAdminConnectionFactory(SshServerHostName, SshServerPort)).OpenConfig();        }        [TestCleanup]        public void TearDown()        {            _remoteSshdConfig?.Reset();        }        [TestMethod]        public void MLKem768X25519Sha256()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.MLKem768X25519Sha256)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void SNtruP761X25519Sha512()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.SNtruP761X25519Sha512)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void SNtruP761X25519Sha512OpenSsh()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.SNtruP761X25519Sha512OpenSsh)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void Curve25519Sha256()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.Curve25519Sha256)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void Curve25519Sha256Libssh()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.Curve25519Sha256Libssh)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void DiffieHellmanGroup1Sha1()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup1Sha1)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void DiffieHellmanGroup14Sha1()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup14Sha1)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void DiffieHellmanGroup14Sha256()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup14Sha256)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void DiffieHellmanGroup16Sha512()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup16Sha512)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        [Ignore]        public void DiffieHellmanGroup18Sha512()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup18Sha512)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void DiffieHellmanGroupExchangeSha1()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroupExchangeSha1)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void DiffieHellmanGroupExchangeSha256()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroupExchangeSha256)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void EcdhSha2Nistp256()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.EcdhSha2Nistp256)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void EcdhSha2Nistp384()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.EcdhSha2Nistp384)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }        [TestMethod]        public void EcdhSha2Nistp521()        {            _remoteSshdConfig.ClearKeyExchangeAlgorithms()                             .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.EcdhSha2Nistp521)                             .Update()                             .Restart();            using (var client = new SshClient(_connectionInfoFactory.Create()))            {                client.Connect();                client.Disconnect();            }        }    }}
 |