|
@@ -1,4 +1,6 @@
|
|
|
-using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
|
|
|
+using System.Text;
|
|
|
|
|
+using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
|
+using Renci.SshNet.Common;
|
|
|
using Renci.SshNet.Security.Cryptography.Ciphers;
|
|
using Renci.SshNet.Security.Cryptography.Ciphers;
|
|
|
using Renci.SshNet.Tests.Common;
|
|
using Renci.SshNet.Tests.Common;
|
|
|
using Renci.SshNet.Tests.Properties;
|
|
using Renci.SshNet.Tests.Properties;
|
|
@@ -22,20 +24,32 @@ namespace Renci.SshNet.Tests.Classes.Security.Cryptography.Ciphers
|
|
|
Assert.Inconclusive("TODO: Implement code to verify target");
|
|
Assert.Inconclusive("TODO: Implement code to verify target");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- ///A test for Decrypt
|
|
|
|
|
- ///</summary>
|
|
|
|
|
- [TestMethod()]
|
|
|
|
|
- public void DecryptTest()
|
|
|
|
|
|
|
+ [TestMethod]
|
|
|
|
|
+ public void Decrypt_DischargeFirstBytes_False1()
|
|
|
{
|
|
{
|
|
|
- byte[] key = null; // TODO: Initialize to an appropriate value
|
|
|
|
|
- Arc4Cipher target = new Arc4Cipher(key, true); // TODO: Initialize to an appropriate value
|
|
|
|
|
- byte[] input = null; // TODO: Initialize to an appropriate value
|
|
|
|
|
- byte[] expected = null; // TODO: Initialize to an appropriate value
|
|
|
|
|
- byte[] actual;
|
|
|
|
|
- actual = target.Decrypt(input);
|
|
|
|
|
- Assert.AreEqual(expected, actual);
|
|
|
|
|
- Assert.Inconclusive("Verify the correctness of this test method.");
|
|
|
|
|
|
|
+ const string key = "Key";
|
|
|
|
|
+ const string expectedPlainText = "Plaintext";
|
|
|
|
|
+ var encoding = Encoding.ASCII;
|
|
|
|
|
+ var cipher = new Arc4Cipher(encoding.GetBytes(key), false);
|
|
|
|
|
+ var cipherText = new byte[] { 0xBB, 0xF3, 0x16, 0xE8, 0xD9, 0x40, 0xAF, 0x0A, 0xD3 };
|
|
|
|
|
+
|
|
|
|
|
+ var actualPlainText = cipher.Decrypt(cipherText);
|
|
|
|
|
+
|
|
|
|
|
+ Assert.AreEqual(expectedPlainText, encoding.GetString(actualPlainText));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ [TestMethod]
|
|
|
|
|
+ public void Decrypt_DischargeFirstBytes_False2()
|
|
|
|
|
+ {
|
|
|
|
|
+ const string key = "Wiki";
|
|
|
|
|
+ const string expectedPlainText = "pedia";
|
|
|
|
|
+ var encoding = Encoding.ASCII;
|
|
|
|
|
+ var cipher = new Arc4Cipher(encoding.GetBytes(key), false);
|
|
|
|
|
+ var cipherText = new byte[] { 0x10, 0X21, 0xBF, 0x04, 0x20 };
|
|
|
|
|
+
|
|
|
|
|
+ var actualPlainText = cipher.Decrypt(cipherText);
|
|
|
|
|
+
|
|
|
|
|
+ Assert.AreEqual(expectedPlainText, encoding.GetString(actualPlainText));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -58,20 +72,48 @@ namespace Renci.SshNet.Tests.Classes.Security.Cryptography.Ciphers
|
|
|
Assert.Inconclusive("Verify the correctness of this test method.");
|
|
Assert.Inconclusive("Verify the correctness of this test method.");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- ///A test for Encrypt
|
|
|
|
|
- ///</summary>
|
|
|
|
|
- [TestMethod()]
|
|
|
|
|
- public void EncryptTest()
|
|
|
|
|
|
|
+ [TestMethod]
|
|
|
|
|
+ public void Encrypt_DischargeFirstBytes_False1()
|
|
|
{
|
|
{
|
|
|
- byte[] key = null; // TODO: Initialize to an appropriate value
|
|
|
|
|
- Arc4Cipher target = new Arc4Cipher(key, true); // TODO: Initialize to an appropriate value
|
|
|
|
|
- byte[] input = null; // TODO: Initialize to an appropriate value
|
|
|
|
|
- byte[] expected = null; // TODO: Initialize to an appropriate value
|
|
|
|
|
- byte[] actual;
|
|
|
|
|
- actual = target.Encrypt(input);
|
|
|
|
|
- Assert.AreEqual(expected, actual);
|
|
|
|
|
- Assert.Inconclusive("Verify the correctness of this test method.");
|
|
|
|
|
|
|
+ const string key = "Key";
|
|
|
|
|
+ const string plainText = "Plaintext";
|
|
|
|
|
+ var encoding = Encoding.ASCII;
|
|
|
|
|
+ var cipher = new Arc4Cipher(encoding.GetBytes(key), false);
|
|
|
|
|
+ var expectedCipherText = new byte[] { 0xBB, 0xF3, 0x16, 0xE8, 0xD9, 0x40, 0xAF, 0x0A, 0xD3 };
|
|
|
|
|
+
|
|
|
|
|
+ var actualCipherText = cipher.Encrypt(encoding.GetBytes(plainText));
|
|
|
|
|
+
|
|
|
|
|
+ Assert.IsNotNull(actualCipherText);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText.Length, actualCipherText.Length);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[0], actualCipherText[0]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[1], actualCipherText[1]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[2], actualCipherText[2]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[3], actualCipherText[3]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[4], actualCipherText[4]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[5], actualCipherText[5]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[6], actualCipherText[6]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[7], actualCipherText[7]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[8], actualCipherText[8]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ [TestMethod]
|
|
|
|
|
+ public void Encrypt_DischargeFirstBytes_False2()
|
|
|
|
|
+ {
|
|
|
|
|
+ const string key = "Wiki";
|
|
|
|
|
+ const string plainText = "pedia";
|
|
|
|
|
+ var encoding = Encoding.ASCII;
|
|
|
|
|
+ var cipher = new Arc4Cipher(encoding.GetBytes(key), false);
|
|
|
|
|
+ var expectedCipherText = new byte[] { 0x10, 0X21, 0xBF, 0x04, 0x20 };
|
|
|
|
|
+
|
|
|
|
|
+ var actualCipherText = cipher.Encrypt(encoding.GetBytes(plainText));
|
|
|
|
|
+
|
|
|
|
|
+ Assert.IsNotNull(actualCipherText);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText.Length, actualCipherText.Length);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[0], actualCipherText[0]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[1], actualCipherText[1]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[2], actualCipherText[2]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[3], actualCipherText[3]);
|
|
|
|
|
+ Assert.AreEqual(expectedCipherText[4], actualCipherText[4]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|