public async Task EncryptAsyncTest() { var rijndaelManaged = new RijndaelManaged(); _algFactory.Setup(x => x.Create(SymmetricAlgorithmType.Rijndael)).Returns(rijndaelManaged).Verifiable(); var inBytes = new byte[] {1, 2, 3, 4, 5}; var service = new SymmetricCryptoService(_algFactory.Object); using (var msIn = new MemoryStream(inBytes)) using (var msOut = new MemoryStream()) using (var msDec = new MemoryStream()) { await service.EncryptAsync(msIn, msOut, FullKey, SymmetricAlgorithmType.Rijndael); var outBytes = msOut.ToArray(); CollectionAssert.AreNotEqual(inBytes, outBytes); using (var rm = new RijndaelManaged()) using (var cs = new CryptoStream(new MemoryStream(outBytes), rm.CreateDecryptor(Key, IV), CryptoStreamMode.Read)) { await cs.CopyToAsync(msDec); } CollectionAssert.AreEqual(inBytes, msDec.ToArray()); } }
public async Task DecryptAsyncTest() { var rijndaelManaged = new RijndaelManaged(); _algFactory.Setup(x => x.Create(SymmetricAlgorithmType.Rijndael)).Returns(rijndaelManaged).Verifiable(); var inBytes = new byte[] {1, 2, 3, 4, 5}; var dest = new MemoryStream(); using (var rm = new RijndaelManaged()) using (var src = new MemoryStream(inBytes)) using (var cs = new CryptoStream(dest, rm.CreateEncryptor(Key, IV), CryptoStreamMode.Write)) { await src.CopyToAsync(cs); } var encrypted = dest.ToArray(); Assert.AreNotEqual(0, encrypted.Length); CollectionAssert.AreNotEqual(inBytes, encrypted); var service = new SymmetricCryptoService(_algFactory.Object); using (var dec = new MemoryStream()) { await service.DecryptAsync(new MemoryStream(encrypted), dec, FullKey, SymmetricAlgorithmType.Rijndael); CollectionAssert.AreEqual(inBytes, dec.ToArray()); } }