| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using System;
- using System.Security.Cryptography;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using Org.BouncyCastle.Crypto.Agreement;
- using Renci.SshNet.Security;
- namespace Renci.SshNet.Tests.Classes.Security
- {
- [TestClass]
- public class KeyExchangeDiffieHellmanTest
- {
- [TestMethod]
- public void NameShouldBeCtorValue()
- {
- KeyExchangeDiffieHellman kex = new("diffie-hellman-group16-sha512", DHStandardGroups.rfc3526_4096, HashAlgorithmName.SHA512);
- Assert.AreEqual("diffie-hellman-group16-sha512", kex.Name);
- }
- [TestMethod]
- public void Ctor_ArgumentNullException()
- {
- var ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellman(name: null, DHStandardGroups.rfc3526_4096, HashAlgorithmName.SHA512));
- Assert.AreEqual("name", ex.ParamName);
- ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellman("kex", parameters: null, HashAlgorithmName.SHA512));
- Assert.AreEqual("parameters", ex.ParamName);
- ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellman("kex", DHStandardGroups.rfc3526_4096, default));
- Assert.AreEqual("hashAlgorithm", ex.ParamName);
- ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellman("kex", DHStandardGroups.rfc3526_4096, new HashAlgorithmName(null)));
- Assert.AreEqual("hashAlgorithm", ex.ParamName);
- }
- [TestMethod]
- public void Ctor_InvalidHashAlgorithm_ThrowsArgumentException()
- {
- var ex = Assert.ThrowsExactly<ArgumentException>(() => new KeyExchangeDiffieHellman("kex", DHStandardGroups.rfc3526_4096, new HashAlgorithmName("bad")));
- Assert.AreEqual("hashAlgorithm", ex.ParamName);
- ex = Assert.ThrowsExactly<ArgumentException>(() => new KeyExchangeDiffieHellman("kex", DHStandardGroups.rfc3526_4096, new HashAlgorithmName("")));
- Assert.AreEqual("hashAlgorithm", ex.ParamName);
- }
- }
- }
|