KeyExchangeAlgorithmTests.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. using Renci.SshNet.IntegrationTests.Common;
  2. using Renci.SshNet.TestTools.OpenSSH;
  3. namespace Renci.SshNet.IntegrationTests
  4. {
  5. [TestClass]
  6. public class KeyExchangeAlgorithmTests : IntegrationTestBase
  7. {
  8. private IConnectionInfoFactory _connectionInfoFactory;
  9. private RemoteSshdConfig _remoteSshdConfig;
  10. [TestInitialize]
  11. public void SetUp()
  12. {
  13. _connectionInfoFactory = new LinuxVMConnectionFactory(SshServerHostName, SshServerPort);
  14. _remoteSshdConfig = new RemoteSshd(new LinuxAdminConnectionFactory(SshServerHostName, SshServerPort)).OpenConfig();
  15. }
  16. [TestCleanup]
  17. public void TearDown()
  18. {
  19. _remoteSshdConfig?.Reset();
  20. }
  21. [TestMethod]
  22. [Ignore]
  23. public void SNtruP761X25519Sha512()
  24. {
  25. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  26. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.SNtruP761X25519Sha512)
  27. .Update()
  28. .Restart();
  29. using (var client = new SshClient(_connectionInfoFactory.Create()))
  30. {
  31. client.Connect();
  32. client.Disconnect();
  33. }
  34. }
  35. [TestMethod]
  36. public void SNtruP761X25519Sha512OpenSsh()
  37. {
  38. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  39. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.SNtruP761X25519Sha512OpenSsh)
  40. .Update()
  41. .Restart();
  42. using (var client = new SshClient(_connectionInfoFactory.Create()))
  43. {
  44. client.Connect();
  45. client.Disconnect();
  46. }
  47. }
  48. [TestMethod]
  49. public void Curve25519Sha256()
  50. {
  51. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  52. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.Curve25519Sha256)
  53. .Update()
  54. .Restart();
  55. using (var client = new SshClient(_connectionInfoFactory.Create()))
  56. {
  57. client.Connect();
  58. client.Disconnect();
  59. }
  60. }
  61. [TestMethod]
  62. public void Curve25519Sha256Libssh()
  63. {
  64. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  65. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.Curve25519Sha256Libssh)
  66. .Update()
  67. .Restart();
  68. using (var client = new SshClient(_connectionInfoFactory.Create()))
  69. {
  70. client.Connect();
  71. client.Disconnect();
  72. }
  73. }
  74. [TestMethod]
  75. public void DiffieHellmanGroup1Sha1()
  76. {
  77. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  78. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup1Sha1)
  79. .Update()
  80. .Restart();
  81. using (var client = new SshClient(_connectionInfoFactory.Create()))
  82. {
  83. client.Connect();
  84. client.Disconnect();
  85. }
  86. }
  87. [TestMethod]
  88. public void DiffieHellmanGroup14Sha1()
  89. {
  90. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  91. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup14Sha1)
  92. .Update()
  93. .Restart();
  94. using (var client = new SshClient(_connectionInfoFactory.Create()))
  95. {
  96. client.Connect();
  97. client.Disconnect();
  98. }
  99. }
  100. [TestMethod]
  101. public void DiffieHellmanGroup14Sha256()
  102. {
  103. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  104. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup14Sha256)
  105. .Update()
  106. .Restart();
  107. using (var client = new SshClient(_connectionInfoFactory.Create()))
  108. {
  109. client.Connect();
  110. client.Disconnect();
  111. }
  112. }
  113. [TestMethod]
  114. public void DiffieHellmanGroup16Sha512()
  115. {
  116. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  117. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup16Sha512)
  118. .Update()
  119. .Restart();
  120. using (var client = new SshClient(_connectionInfoFactory.Create()))
  121. {
  122. client.Connect();
  123. client.Disconnect();
  124. }
  125. }
  126. [TestMethod]
  127. [Ignore]
  128. public void DiffieHellmanGroup18Sha512()
  129. {
  130. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  131. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroup18Sha512)
  132. .Update()
  133. .Restart();
  134. using (var client = new SshClient(_connectionInfoFactory.Create()))
  135. {
  136. client.Connect();
  137. client.Disconnect();
  138. }
  139. }
  140. [TestMethod]
  141. public void DiffieHellmanGroupExchangeSha1()
  142. {
  143. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  144. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroupExchangeSha1)
  145. .Update()
  146. .Restart();
  147. using (var client = new SshClient(_connectionInfoFactory.Create()))
  148. {
  149. client.Connect();
  150. client.Disconnect();
  151. }
  152. }
  153. [TestMethod]
  154. public void DiffieHellmanGroupExchangeSha256()
  155. {
  156. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  157. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.DiffieHellmanGroupExchangeSha256)
  158. .Update()
  159. .Restart();
  160. using (var client = new SshClient(_connectionInfoFactory.Create()))
  161. {
  162. client.Connect();
  163. client.Disconnect();
  164. }
  165. }
  166. [TestMethod]
  167. public void EcdhSha2Nistp256()
  168. {
  169. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  170. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.EcdhSha2Nistp256)
  171. .Update()
  172. .Restart();
  173. using (var client = new SshClient(_connectionInfoFactory.Create()))
  174. {
  175. client.Connect();
  176. client.Disconnect();
  177. }
  178. }
  179. [TestMethod]
  180. public void EcdhSha2Nistp384()
  181. {
  182. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  183. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.EcdhSha2Nistp384)
  184. .Update()
  185. .Restart();
  186. using (var client = new SshClient(_connectionInfoFactory.Create()))
  187. {
  188. client.Connect();
  189. client.Disconnect();
  190. }
  191. }
  192. [TestMethod]
  193. public void EcdhSha2Nistp521()
  194. {
  195. _remoteSshdConfig.ClearKeyExchangeAlgorithms()
  196. .AddKeyExchangeAlgorithm(KeyExchangeAlgorithm.EcdhSha2Nistp521)
  197. .Update()
  198. .Restart();
  199. using (var client = new SshClient(_connectionInfoFactory.Create()))
  200. {
  201. client.Connect();
  202. client.Disconnect();
  203. }
  204. }
  205. }
  206. }