| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | using Microsoft.VisualStudio.TestTools.UnitTesting;using Renci.SshNet.Connection;namespace Renci.SshNet.Tests.Classes{    [TestClass]    public class SessionTest_Connected_ServerIdentificationReceived : SessionTest_ConnectedBase    {        protected override void SetupData()        {            base.SetupData();            CallSessionConnectWhenArrange = false;            Session.ServerIdentificationReceived += (s, e) =>            {                if ((e.SshIdentification.SoftwareVersion.StartsWith("OpenSSH_6.5", System.StringComparison.Ordinal) || e.SshIdentification.SoftwareVersion.StartsWith("OpenSSH_6.6", System.StringComparison.Ordinal))                       && !e.SshIdentification.SoftwareVersion.StartsWith("OpenSSH_6.6.1", System.StringComparison.Ordinal))                {                    _ = ConnectionInfo.KeyExchangeAlgorithms.Remove("curve25519-sha256");                    _ = ConnectionInfo.KeyExchangeAlgorithms.Remove("curve25519-sha256@libssh.org");                }            };        }        protected override void Act()        {        }        [TestMethod]        [DataRow("OpenSSH_6.5")]        [DataRow("OpenSSH_6.5p1")]        [DataRow("OpenSSH_6.5 PKIX")]        [DataRow("OpenSSH_6.6")]        [DataRow("OpenSSH_6.6p1")]        [DataRow("OpenSSH_6.6 PKIX")]        public void ShouldExcludeCurve25519KexWhenServerIs(string softwareVersion)        {            ServerIdentification = new SshIdentification("2.0", softwareVersion);            Session.Connect();            Assert.IsFalse(ConnectionInfo.KeyExchangeAlgorithms.ContainsKey("curve25519-sha256"));            Assert.IsFalse(ConnectionInfo.KeyExchangeAlgorithms.ContainsKey("curve25519-sha256@libssh.org"));        }        [TestMethod]        [DataRow("OpenSSH_6.6.1")]        [DataRow("OpenSSH_6.6.1p1")]        [DataRow("OpenSSH_6.6.1 PKIX")]        [DataRow("OpenSSH_6.7")]        [DataRow("OpenSSH_6.7p1")]        [DataRow("OpenSSH_6.7 PKIX")]        public void ShouldIncludeCurve25519KexWhenServerIs(string softwareVersion)        {            ServerIdentification = new SshIdentification("2.0", softwareVersion);            Session.Connect();            Assert.IsTrue(ConnectionInfo.KeyExchangeAlgorithms.ContainsKey("curve25519-sha256"));            Assert.IsTrue(ConnectionInfo.KeyExchangeAlgorithms.ContainsKey("curve25519-sha256@libssh.org"));        }    }}
 |