| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | using System;using System.Security.Cryptography;using Microsoft.VisualStudio.TestTools.UnitTesting;using Renci.SshNet.Security;namespace Renci.SshNet.Tests.Classes.Security{    [TestClass]    public class KeyExchangeDiffieHellmanGroupExchangeTest    {        [TestMethod]        public void NameShouldBeCtorValue()        {            KeyExchangeDiffieHellmanGroupExchange kex = new("diffie-hellman-group-exchange-sha256", HashAlgorithmName.SHA512);            Assert.AreEqual("diffie-hellman-group-exchange-sha256", kex.Name);        }        [TestMethod]        public void Ctor_ArgumentNullException()        {            var ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellmanGroupExchange(name: null, HashAlgorithmName.SHA512));            Assert.AreEqual("name", ex.ParamName);            ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", default));            Assert.AreEqual("hashAlgorithm", ex.ParamName);            ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", new HashAlgorithmName(null)));            Assert.AreEqual("hashAlgorithm", ex.ParamName);        }        [TestMethod]        public void Ctor_InvalidHashAlgorithm_ThrowsArgumentException()        {            var ex = Assert.ThrowsExactly<ArgumentException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", new HashAlgorithmName("bad")));            Assert.AreEqual("hashAlgorithm", ex.ParamName);            ex = Assert.ThrowsExactly<ArgumentException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", new HashAlgorithmName("")));            Assert.AreEqual("hashAlgorithm", ex.ParamName);        }        [TestMethod]        public void Ctor_InvalidGroupSizes_ThrowsArgumentOutOfRangeException()        {            var ex = Assert.Throws<ArgumentOutOfRangeException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", HashAlgorithmName.SHA512, 1024, 4096, 2048));            Assert.AreEqual("preferredGroupSize", ex.ParamName);            ex = Assert.Throws<ArgumentOutOfRangeException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", HashAlgorithmName.SHA512, 8192, 4096, 2048));            Assert.AreEqual("preferredGroupSize", ex.ParamName);        }    }}
 |