KeyExchangeDiffieHellmanGroupExchangeTest.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.Security.Cryptography;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. using Renci.SshNet.Security;
  5. namespace Renci.SshNet.Tests.Classes.Security
  6. {
  7. [TestClass]
  8. public class KeyExchangeDiffieHellmanGroupExchangeTest
  9. {
  10. [TestMethod]
  11. public void NameShouldBeCtorValue()
  12. {
  13. KeyExchangeDiffieHellmanGroupExchange kex = new("diffie-hellman-group-exchange-sha256", HashAlgorithmName.SHA512);
  14. Assert.AreEqual("diffie-hellman-group-exchange-sha256", kex.Name);
  15. }
  16. [TestMethod]
  17. public void Ctor_ArgumentNullException()
  18. {
  19. var ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellmanGroupExchange(name: null, HashAlgorithmName.SHA512));
  20. Assert.AreEqual("name", ex.ParamName);
  21. ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", default));
  22. Assert.AreEqual("hashAlgorithm", ex.ParamName);
  23. ex = Assert.Throws<ArgumentNullException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", new HashAlgorithmName(null)));
  24. Assert.AreEqual("hashAlgorithm", ex.ParamName);
  25. }
  26. [TestMethod]
  27. public void Ctor_InvalidHashAlgorithm_ThrowsArgumentException()
  28. {
  29. var ex = Assert.ThrowsExactly<ArgumentException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", new HashAlgorithmName("bad")));
  30. Assert.AreEqual("hashAlgorithm", ex.ParamName);
  31. ex = Assert.ThrowsExactly<ArgumentException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", new HashAlgorithmName("")));
  32. Assert.AreEqual("hashAlgorithm", ex.ParamName);
  33. }
  34. [TestMethod]
  35. public void Ctor_InvalidGroupSizes_ThrowsArgumentOutOfRangeException()
  36. {
  37. var ex = Assert.Throws<ArgumentOutOfRangeException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", HashAlgorithmName.SHA512, 1024, 4096, 2048));
  38. Assert.AreEqual("preferredGroupSize", ex.ParamName);
  39. ex = Assert.Throws<ArgumentOutOfRangeException>(() => new KeyExchangeDiffieHellmanGroupExchange("kex", HashAlgorithmName.SHA512, 8192, 4096, 2048));
  40. Assert.AreEqual("preferredGroupSize", ex.ParamName);
  41. }
  42. }
  43. }