From 3089609c1918ad4d24b7ef163cffdb5c3994fbc4 Mon Sep 17 00:00:00 2001 From: BONNEVILLE Geoffroy Date: Thu, 16 Nov 2017 18:55:20 +0100 Subject: [PATCH] Code cleanup --- .../Cipher/StandardAesEngineTests.cs | 76 +++++++++---------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/ModernKeePassLib.Test/Cryptography/Cipher/StandardAesEngineTests.cs b/ModernKeePassLib.Test/Cryptography/Cipher/StandardAesEngineTests.cs index baad1d2..0719418 100644 --- a/ModernKeePassLib.Test/Cryptography/Cipher/StandardAesEngineTests.cs +++ b/ModernKeePassLib.Test/Cryptography/Cipher/StandardAesEngineTests.cs @@ -13,66 +13,62 @@ namespace ModernKeePassLib.Test.Cryptography.Cipher public class StandardAesEngineTests { // Test vector (official ECB test vector #356) - private byte[] pbReferenceCT = new byte[16] + private readonly byte[] _pbReferenceCt = { 0x75, 0xD1, 0x1B, 0x0E, 0x3A, 0x68, 0xC4, 0x22, 0x3D, 0x88, 0xDB, 0xF0, 0x17, 0x97, 0x7D, 0xD7 }; + private readonly byte[] _pbIv = new byte[16]; + private readonly byte[] _pbTestKey = new byte[32]; + private readonly byte[] _pbTestData = + { + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; [TestMethod] public void TestEncryptStream() { - byte[] pbIV = new byte[16]; - byte[] pbTestKey = new byte[32]; - byte[] pbTestData = new byte[16]; - pbTestData[0] = 0x04; - - var outStream = new MemoryStream(new byte[16]); - var aes = new StandardAesEngine(); - var inStream = aes.EncryptStream(outStream, pbTestKey, pbIV); - new BinaryWriter(inStream).Write(pbTestData); - Assert.AreEqual(16, outStream.Position); - outStream.Position = 0; - var outBytes = new BinaryReaderEx(outStream, Encoding.UTF8, string.Empty).ReadBytes(16); - Assert.IsTrue(MemUtil.ArraysEqual(outBytes, pbReferenceCT)); + using (var outStream = new MemoryStream(new byte[16])) + { + var aes = new StandardAesEngine(); + using (var inStream = aes.EncryptStream(outStream, _pbTestKey, _pbIv)) + { + new BinaryWriter(inStream).Write(_pbTestData); + Assert.AreEqual(16, outStream.Position); + outStream.Position = 0; + var outBytes = new BinaryReaderEx(outStream, Encoding.UTF8, string.Empty).ReadBytes(16); + Assert.IsTrue(MemUtil.ArraysEqual(outBytes, _pbReferenceCt)); + } + } } [TestMethod] public void TestDecryptStream() - { - byte[] pbIV = new byte[16]; - byte[] pbTestKey = new byte[32]; - byte[] pbTestData = new byte[16]; - pbTestData[0] = 0x04; - + { // Possible Mono Bug? This only works with size >= 48 - var inStream = new MemoryStream(new byte[32]); - inStream.Write(pbReferenceCT, 0, pbReferenceCT.Length); - inStream.Position = 0; - var aes = new StandardAesEngine(); - var outStream = aes.DecryptStream(inStream, pbTestKey, pbIV); - var outBytes = new BinaryReaderEx(outStream, Encoding.UTF8, string.Empty).ReadBytes(16); - Assert.IsTrue(MemUtil.ArraysEqual(outBytes, pbTestData)); + using (var inStream = new MemoryStream(new byte[32])) + { + inStream.Write(_pbReferenceCt, 0, _pbReferenceCt.Length); + inStream.Position = 0; + var aes = new StandardAesEngine(); + using (var outStream = aes.DecryptStream(inStream, _pbTestKey, _pbIv)) + { + var outBytes = new BinaryReaderEx(outStream, Encoding.UTF8, string.Empty).ReadBytes(16); + Assert.IsTrue(MemUtil.ArraysEqual(outBytes, _pbTestData)); + } + } } [TestMethod] public void TestBouncyCastleAes() { - byte[] pbIV = new byte[16]; - byte[] pbTestKey = new byte[32]; - byte[] pbTestData = new byte[16]; - /*int i; - for (i = 0; i < 16; ++i) pbIV[i] = 0; - for (i = 0; i < 32; ++i) pbTestKey[i] = 0; - for (i = 0; i < 16; ++i) pbTestData[i] = 0;*/ - pbTestData[0] = 0x04; - var aesEngine = new AesEngine(); //var parametersWithIv = new ParametersWithIV(new KeyParameter(pbTestKey), pbIV); - aesEngine.Init(true, new KeyParameter(pbTestKey)); - Assert.AreEqual(aesEngine.GetBlockSize(), pbTestData.Length); - aesEngine.ProcessBlock(pbTestData, 0, pbTestData, 0); - Assert.IsTrue(MemUtil.ArraysEqual(pbTestData, pbReferenceCT)); + aesEngine.Init(true, new KeyParameter(_pbTestKey)); + Assert.AreEqual(aesEngine.GetBlockSize(), _pbTestData.Length); + aesEngine.ProcessBlock(_pbTestData, 0, _pbTestData, 0); + Assert.IsTrue(MemUtil.ArraysEqual(_pbTestData, _pbReferenceCt)); } } }