Add two-keys triple-des test case (works with Mono but not with CommonCrypto, see...
authorSebastien Pouliot <sebastien@xamarin.com>
Fri, 7 Sep 2012 13:17:25 +0000 (09:17 -0400)
committerSebastien Pouliot <sebastien@xamarin.com>
Fri, 7 Sep 2012 13:18:31 +0000 (09:18 -0400)
mcs/class/corlib/Test/System.Security.Cryptography/TripleDESCryptoServiceProviderTest.cs

index 7f3190c62d8c166208aa4f20682c460a0022fcc0..e08f85b3d27836c9a1f95ddedc125e77486aadce 100644 (file)
@@ -249,5 +249,20 @@ namespace MonoTests.System.Security.Cryptography {
                        int size = tdes.BlockSize; // 8 times too big
                        CreateDecryptor_IV (size);
                }
+               
+               [Test]
+               public void TwoKeysTripleDes ()
+               {
+                       byte[] key = new byte [16]; // 128 bits
+                       Buffer.BlockCopy (tdes.Key, 0, key, 0, 16);
+                       
+                       ICryptoTransform encryptor = tdes.CreateEncryptor (key, tdes.IV);
+                       byte[] data = new byte[encryptor.InputBlockSize];
+                       byte[] encdata = encryptor.TransformFinalBlock (data, 0, data.Length);
+
+                       ICryptoTransform decryptor = tdes.CreateDecryptor (key, tdes.IV);
+                       byte[] decdata = decryptor.TransformFinalBlock (encdata, 0, encdata.Length);
+                       Assert.IsTrue (BitConverter.ToString (data) == BitConverter.ToString (decdata), "Compare");
+               }
        }
 }