From aa0b21dd31473f69d9821cb4891483a7348698d9 Mon Sep 17 00:00:00 2001 From: Geoffroy Bonneville Date: Wed, 8 Nov 2017 11:13:30 +0100 Subject: [PATCH] Some more cleanup --- ModernKeePass.sln | 21 -- .../Cryptography/Cipher/Chacha20Tests.cs | 204 ------------------ .../Cipher/StandardAesEngineTests.cs | 84 -------- .../Cryptography/CryptoRandomStreamTests.cs | 60 ------ .../Cryptography/CryptoRandomTests.cs | 44 ---- .../Cryptography/Hash/Blake2bTests.cs | 89 -------- .../Cryptography/Hash/HmacTests.cs | 117 ---------- .../Cryptography/Hash/SHAManagedTests.cs | 42 ---- .../Cryptography/HashingStreamExTests.cs | 71 ------ .../Cryptography/HmacOtpTests.cs | 36 ---- .../Cryptography/KeyDerivation/AesKdfTests.cs | 42 ---- .../Cryptography/KeyDerivation/Argon2Tests.cs | 145 ------------- .../Keys/CompositeKeyTests.cs | 33 --- .../Keys/KcpCustomKeyTests.cs | 39 ---- .../Keys/KcpKeyFileTests.cs | 76 ------- .../Keys/KcpPasswordTests.cs | 33 --- .../ModernKeePassLib.Test.old.csproj | 104 --------- .../Properties/AssemblyInfo.cs | 36 ---- .../Serialization/HashedBlockStreamTests.cs | 71 ------ .../Serialization/KdbxFileTests.cs | 172 --------------- .../Utility/GfxUtilTests.cs | 33 --- .../Utility/MemUtilTests.cs | 89 -------- ModernKeePassLib.Test.old/app.config | 23 -- ModernKeePassLib.Test.old/packages.config | 7 - .../Images/UnitTestLogo.scale-100.png | Bin 5789 -> 0 bytes .../Images/UnitTestSmallLogo.scale-100.png | Bin 745 -> 0 bytes .../Images/UnitTestSplashScreen.scale-100.png | Bin 9381 -> 0 bytes .../Images/UnitTestStoreLogo.scale-100.png | Bin 2005 -> 0 bytes UnitTestLibrary/Package.appxmanifest | 56 ----- UnitTestLibrary/Properties/AssemblyInfo.cs | 28 --- UnitTestLibrary/UnitTest1.cs | 17 -- UnitTestLibrary/UnitTestLibrary.csproj | 152 ------------- .../UnitTestLibrary_TemporaryKey.pfx | Bin 2446 -> 0 bytes 33 files changed, 1924 deletions(-) delete mode 100644 ModernKeePassLib.Test.old/Cryptography/Cipher/Chacha20Tests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/Cipher/StandardAesEngineTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/CryptoRandomStreamTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/CryptoRandomTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/Hash/Blake2bTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/Hash/HmacTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/Hash/SHAManagedTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/HashingStreamExTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/HmacOtpTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/KeyDerivation/AesKdfTests.cs delete mode 100644 ModernKeePassLib.Test.old/Cryptography/KeyDerivation/Argon2Tests.cs delete mode 100644 ModernKeePassLib.Test.old/Keys/CompositeKeyTests.cs delete mode 100644 ModernKeePassLib.Test.old/Keys/KcpCustomKeyTests.cs delete mode 100644 ModernKeePassLib.Test.old/Keys/KcpKeyFileTests.cs delete mode 100644 ModernKeePassLib.Test.old/Keys/KcpPasswordTests.cs delete mode 100644 ModernKeePassLib.Test.old/ModernKeePassLib.Test.old.csproj delete mode 100644 ModernKeePassLib.Test.old/Properties/AssemblyInfo.cs delete mode 100644 ModernKeePassLib.Test.old/Serialization/HashedBlockStreamTests.cs delete mode 100644 ModernKeePassLib.Test.old/Serialization/KdbxFileTests.cs delete mode 100644 ModernKeePassLib.Test.old/Utility/GfxUtilTests.cs delete mode 100644 ModernKeePassLib.Test.old/Utility/MemUtilTests.cs delete mode 100644 ModernKeePassLib.Test.old/app.config delete mode 100644 ModernKeePassLib.Test.old/packages.config delete mode 100644 UnitTestLibrary/Images/UnitTestLogo.scale-100.png delete mode 100644 UnitTestLibrary/Images/UnitTestSmallLogo.scale-100.png delete mode 100644 UnitTestLibrary/Images/UnitTestSplashScreen.scale-100.png delete mode 100644 UnitTestLibrary/Images/UnitTestStoreLogo.scale-100.png delete mode 100644 UnitTestLibrary/Package.appxmanifest delete mode 100644 UnitTestLibrary/Properties/AssemblyInfo.cs delete mode 100644 UnitTestLibrary/UnitTest1.cs delete mode 100644 UnitTestLibrary/UnitTestLibrary.csproj delete mode 100644 UnitTestLibrary/UnitTestLibrary_TemporaryKey.pfx diff --git a/ModernKeePass.sln b/ModernKeePass.sln index c09d8de..7c9589a 100644 --- a/ModernKeePass.sln +++ b/ModernKeePass.sln @@ -7,11 +7,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassApp", "ModernK EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassLib", "ModernKeePassLib\ModernKeePassLib.csproj", "{2E710089-9559-4967-846C-E763DD1F3ACB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassLib.Test.old", "ModernKeePassLib.Test\ModernKeePassLib.Test.old.csproj", "{067456C0-086C-46A8-B37F-1405717B7BFC}" - ProjectSection(ProjectDependencies) = postProject - {2E710089-9559-4967-846C-E763DD1F3ACB} = {2E710089-9559-4967-846C-E763DD1F3ACB} - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassLib.Test", "ModernKeePassLib.Test\ModernKeePassLib.Test.csproj", "{0A4279CF-2A67-4868-9906-052E50C25F3B}" EndProject Global @@ -66,22 +61,6 @@ Global {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|x64.Build.0 = Release|Any CPU {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|x86.ActiveCfg = Release|Any CPU {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|x86.Build.0 = Release|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Debug|ARM.ActiveCfg = Debug|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Debug|ARM.Build.0 = Debug|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Debug|x64.ActiveCfg = Debug|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Debug|x64.Build.0 = Debug|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Debug|x86.ActiveCfg = Debug|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Debug|x86.Build.0 = Debug|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Release|Any CPU.Build.0 = Release|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Release|ARM.ActiveCfg = Release|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Release|ARM.Build.0 = Release|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Release|x64.ActiveCfg = Release|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Release|x64.Build.0 = Release|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Release|x86.ActiveCfg = Release|Any CPU - {067456C0-086C-46A8-B37F-1405717B7BFC}.Release|x86.Build.0 = Release|Any CPU {0A4279CF-2A67-4868-9906-052E50C25F3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0A4279CF-2A67-4868-9906-052E50C25F3B}.Debug|Any CPU.Build.0 = Debug|Any CPU {0A4279CF-2A67-4868-9906-052E50C25F3B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU diff --git a/ModernKeePassLib.Test.old/Cryptography/Cipher/Chacha20Tests.cs b/ModernKeePassLib.Test.old/Cryptography/Cipher/Chacha20Tests.cs deleted file mode 100644 index 3641323..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/Cipher/Chacha20Tests.cs +++ /dev/null @@ -1,204 +0,0 @@ -using System; -using System.Diagnostics; -using System.IO; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.Cipher; -using ModernKeePassLib.Utility; -using NUnit.Framework; - -namespace ModernKeePassLib.Test.Cryptography.Cipher -{ - [TestFixture] - public class Chacha20Tests - { - [Test] - public void TestChacha20() - { - // ====================================================== - // Test vector from RFC 7539, section 2.3.2 - - byte[] pbKey = new byte[32]; - for (int i = 0; i < 32; ++i) pbKey[i] = (byte)i; - - byte[] pbIV = new byte[12]; - pbIV[3] = 0x09; - pbIV[7] = 0x4A; - - byte[] pbExpc = new byte[64] { - 0x10, 0xF1, 0xE7, 0xE4, 0xD1, 0x3B, 0x59, 0x15, - 0x50, 0x0F, 0xDD, 0x1F, 0xA3, 0x20, 0x71, 0xC4, - 0xC7, 0xD1, 0xF4, 0xC7, 0x33, 0xC0, 0x68, 0x03, - 0x04, 0x22, 0xAA, 0x9A, 0xC3, 0xD4, 0x6C, 0x4E, - 0xD2, 0x82, 0x64, 0x46, 0x07, 0x9F, 0xAA, 0x09, - 0x14, 0xC2, 0xD7, 0x05, 0xD9, 0x8B, 0x02, 0xA2, - 0xB5, 0x12, 0x9C, 0xD1, 0xDE, 0x16, 0x4E, 0xB9, - 0xCB, 0xD0, 0x83, 0xE8, 0xA2, 0x50, 0x3C, 0x4E - }; - - byte[] pb = new byte[64]; - - using (ChaCha20Cipher c = new ChaCha20Cipher(pbKey, pbIV)) - { - c.Seek(64, SeekOrigin.Begin); // Skip first block - c.Encrypt(pb, 0, pb.Length); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - } - -#if DEBUG - // ====================================================== - // Test vector from RFC 7539, section 2.4.2 - - pbIV[3] = 0; - - pb = StrUtil.Utf8.GetBytes("Ladies and Gentlemen of the clas" + - @"s of '99: If I could offer you only one tip for " + - @"the future, sunscreen would be it."); - - pbExpc = new byte[] { - 0x6E, 0x2E, 0x35, 0x9A, 0x25, 0x68, 0xF9, 0x80, - 0x41, 0xBA, 0x07, 0x28, 0xDD, 0x0D, 0x69, 0x81, - 0xE9, 0x7E, 0x7A, 0xEC, 0x1D, 0x43, 0x60, 0xC2, - 0x0A, 0x27, 0xAF, 0xCC, 0xFD, 0x9F, 0xAE, 0x0B, - 0xF9, 0x1B, 0x65, 0xC5, 0x52, 0x47, 0x33, 0xAB, - 0x8F, 0x59, 0x3D, 0xAB, 0xCD, 0x62, 0xB3, 0x57, - 0x16, 0x39, 0xD6, 0x24, 0xE6, 0x51, 0x52, 0xAB, - 0x8F, 0x53, 0x0C, 0x35, 0x9F, 0x08, 0x61, 0xD8, - 0x07, 0xCA, 0x0D, 0xBF, 0x50, 0x0D, 0x6A, 0x61, - 0x56, 0xA3, 0x8E, 0x08, 0x8A, 0x22, 0xB6, 0x5E, - 0x52, 0xBC, 0x51, 0x4D, 0x16, 0xCC, 0xF8, 0x06, - 0x81, 0x8C, 0xE9, 0x1A, 0xB7, 0x79, 0x37, 0x36, - 0x5A, 0xF9, 0x0B, 0xBF, 0x74, 0xA3, 0x5B, 0xE6, - 0xB4, 0x0B, 0x8E, 0xED, 0xF2, 0x78, 0x5E, 0x42, - 0x87, 0x4D - }; - - byte[] pb64 = new byte[64]; - - using (ChaCha20Cipher c = new ChaCha20Cipher(pbKey, pbIV)) - { - c.Encrypt(pb64, 0, pb64.Length); // Skip first block - c.Encrypt(pb, 0, pb.Length); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - } - - // ====================================================== - // Test vector from RFC 7539, appendix A.2 #2 - - Array.Clear(pbKey, 0, pbKey.Length); - pbKey[31] = 1; - - Array.Clear(pbIV, 0, pbIV.Length); - pbIV[11] = 2; - - pb = StrUtil.Utf8.GetBytes("Any submission to the IETF inten" + - "ded by the Contributor for publication as all or" + - " part of an IETF Internet-Draft or RFC and any s" + - "tatement made within the context of an IETF acti" + - "vity is considered an \"IETF Contribution\". Such " + - "statements include oral statements in IETF sessi" + - "ons, as well as written and electronic communica" + - "tions made at any time or place, which are addressed to"); - - pbExpc = MemUtil.HexStringToByteArray( - "A3FBF07DF3FA2FDE4F376CA23E82737041605D9F4F4F57BD8CFF2C1D4B7955EC" + - "2A97948BD3722915C8F3D337F7D370050E9E96D647B7C39F56E031CA5EB6250D" + - "4042E02785ECECFA4B4BB5E8EAD0440E20B6E8DB09D881A7C6132F420E527950" + - "42BDFA7773D8A9051447B3291CE1411C680465552AA6C405B7764D5E87BEA85A" + - "D00F8449ED8F72D0D662AB052691CA66424BC86D2DF80EA41F43ABF937D3259D" + - "C4B2D0DFB48A6C9139DDD7F76966E928E635553BA76C5C879D7B35D49EB2E62B" + - "0871CDAC638939E25E8A1E0EF9D5280FA8CA328B351C3C765989CBCF3DAA8B6C" + - "CC3AAF9F3979C92B3720FC88DC95ED84A1BE059C6499B9FDA236E7E818B04B0B" + - "C39C1E876B193BFE5569753F88128CC08AAA9B63D1A16F80EF2554D7189C411F" + - "5869CA52C5B83FA36FF216B9C1D30062BEBCFD2DC5BCE0911934FDA79A86F6E6" + - "98CED759C3FF9B6477338F3DA4F9CD8514EA9982CCAFB341B2384DD902F3D1AB" + - "7AC61DD29C6F21BA5B862F3730E37CFDC4FD806C22F221"); - - using (MemoryStream msEnc = new MemoryStream()) - { - using (ChaCha20Stream c = new ChaCha20Stream(msEnc, true, pbKey, pbIV)) - { - Random r = CryptoRandom.NewWeakRandom(); - r.NextBytes(pb64); - c.Write(pb64, 0, pb64.Length); // Skip first block - - int p = 0; - while (p < pb.Length) - { - int cb = r.Next(1, pb.Length - p + 1); - c.Write(pb, p, cb); - p += cb; - } - Debug.Assert(p == pb.Length); - } - - byte[] pbEnc0 = msEnc.ToArray(); - byte[] pbEnc = MemUtil.Mid(pbEnc0, 64, pbEnc0.Length - 64); - Assert.That(MemUtil.ArraysEqual(pbEnc, pbExpc), Is.True); - - using (MemoryStream msCT = new MemoryStream(pbEnc0, false)) - { - using (ChaCha20Stream cDec = new ChaCha20Stream(msCT, false, - pbKey, pbIV)) - { - byte[] pbPT = MemUtil.Read(cDec, pbEnc0.Length); - - Assert.That(cDec.ReadByte(), Is.LessThan(0)); - Assert.That(MemUtil.ArraysEqual(MemUtil.Mid(pbPT, 0, 64), pb64), Is.True); - Assert.That(MemUtil.ArraysEqual(MemUtil.Mid(pbPT, 64, pbEnc.Length), pb), Is.True); - } - } - } - - // ====================================================== - // Test vector TC8 from RFC draft by J. Strombergson: - // https://tools.ietf.org/html/draft-strombergson-chacha-test-vectors-01 - - pbKey = new byte[32] { - 0xC4, 0x6E, 0xC1, 0xB1, 0x8C, 0xE8, 0xA8, 0x78, - 0x72, 0x5A, 0x37, 0xE7, 0x80, 0xDF, 0xB7, 0x35, - 0x1F, 0x68, 0xED, 0x2E, 0x19, 0x4C, 0x79, 0xFB, - 0xC6, 0xAE, 0xBE, 0xE1, 0xA6, 0x67, 0x97, 0x5D - }; - - // The first 4 bytes are set to zero and a large counter - // is used; this makes the RFC 7539 version of ChaCha20 - // compatible with the original specification by - // D. J. Bernstein. - pbIV = new byte[12] { 0x00, 0x00, 0x00, 0x00, - 0x1A, 0xDA, 0x31, 0xD5, 0xCF, 0x68, 0x82, 0x21 - }; - - pb = new byte[128]; - - pbExpc = new byte[128] { - 0xF6, 0x3A, 0x89, 0xB7, 0x5C, 0x22, 0x71, 0xF9, - 0x36, 0x88, 0x16, 0x54, 0x2B, 0xA5, 0x2F, 0x06, - 0xED, 0x49, 0x24, 0x17, 0x92, 0x30, 0x2B, 0x00, - 0xB5, 0xE8, 0xF8, 0x0A, 0xE9, 0xA4, 0x73, 0xAF, - 0xC2, 0x5B, 0x21, 0x8F, 0x51, 0x9A, 0xF0, 0xFD, - 0xD4, 0x06, 0x36, 0x2E, 0x8D, 0x69, 0xDE, 0x7F, - 0x54, 0xC6, 0x04, 0xA6, 0xE0, 0x0F, 0x35, 0x3F, - 0x11, 0x0F, 0x77, 0x1B, 0xDC, 0xA8, 0xAB, 0x92, - - 0xE5, 0xFB, 0xC3, 0x4E, 0x60, 0xA1, 0xD9, 0xA9, - 0xDB, 0x17, 0x34, 0x5B, 0x0A, 0x40, 0x27, 0x36, - 0x85, 0x3B, 0xF9, 0x10, 0xB0, 0x60, 0xBD, 0xF1, - 0xF8, 0x97, 0xB6, 0x29, 0x0F, 0x01, 0xD1, 0x38, - 0xAE, 0x2C, 0x4C, 0x90, 0x22, 0x5B, 0xA9, 0xEA, - 0x14, 0xD5, 0x18, 0xF5, 0x59, 0x29, 0xDE, 0xA0, - 0x98, 0xCA, 0x7A, 0x6C, 0xCF, 0xE6, 0x12, 0x27, - 0x05, 0x3C, 0x84, 0xE4, 0x9A, 0x4A, 0x33, 0x32 - }; - - using (ChaCha20Cipher c = new ChaCha20Cipher(pbKey, pbIV, true)) - { - c.Decrypt(pb, 0, pb.Length); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - } -#endif - } - } -} \ No newline at end of file diff --git a/ModernKeePassLib.Test.old/Cryptography/Cipher/StandardAesEngineTests.cs b/ModernKeePassLib.Test.old/Cryptography/Cipher/StandardAesEngineTests.cs deleted file mode 100644 index cd775f5..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/Cipher/StandardAesEngineTests.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.IO; -using System.Security; -using System.Text; -using ModernKeePassLib.Serialization; -using ModernKeePassLib.Utility; -#if KeePassLib -using KeePassLib.Cryptography.Cipher; -#else -using ModernKeePassLib.Cryptography.Cipher; -#endif - -using NUnit.Framework; -using Org.BouncyCastle.Crypto.Engines; -using Org.BouncyCastle.Crypto.Parameters; - -namespace ModernKeePassLib.Test.Cryptography.Cipher -{ - [TestFixture()] - public class StandardAesEngineTests - { - // Test vector (official ECB test vector #356) - private byte[] pbReferenceCT = new byte[16] { - 0x75, 0xD1, 0x1B, 0x0E, 0x3A, 0x68, 0xC4, 0x22, - 0x3D, 0x88, 0xDB, 0xF0, 0x17, 0x97, 0x7D, 0xD7 - }; - [Test] - 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.That(outStream.Position, Is.EqualTo(16)); - outStream.Position = 0; - var outBytes = new BinaryReaderEx(outStream, Encoding.UTF8, string.Empty).ReadBytes(16); - Assert.That(outBytes, Is.EqualTo(pbReferenceCT)); - } - - [Test] - 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.That(outBytes, Is.EqualTo(pbTestData)); - } - - [Test] - 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.That(aesEngine.GetBlockSize(), Is.EqualTo(pbTestData.Length)); - aesEngine.ProcessBlock(pbTestData, 0, pbTestData, 0); - //Assert.That(MemUtil.ArraysEqual(pbTestData, pbReferenceCT), Is.False); - Assert.That(pbTestData, Is.EqualTo(pbReferenceCT)); - } - } -} diff --git a/ModernKeePassLib.Test.old/Cryptography/CryptoRandomStreamTests.cs b/ModernKeePassLib.Test.old/Cryptography/CryptoRandomStreamTests.cs deleted file mode 100644 index 75d3937..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/CryptoRandomStreamTests.cs +++ /dev/null @@ -1,60 +0,0 @@ -using NUnit.Framework; -using System; - -#if KeePassLib -using KeePassLib.Cryptography; -#else -using ModernKeePassLib.Cryptography; -#endif - -namespace ModernKeePassLib.Test.Cryptography -{ - [TestFixture ()] - public class CryptoRandomStreamTests - { - void TestGetRandomBytes(CryptoRandomStream stream) - { - const uint length = 16; - var bytes1 = stream.GetRandomBytes (length); - Assert.That (bytes1.Length, Is.EqualTo (length)); - var bytes2 = stream.GetRandomBytes (length); - Assert.That (bytes2, Is.Not.EqualTo (bytes1)); - } - - [Test ()] - public void TestGetRandomBytesCrsAlgorithmSalsa20 () - { - var stream = new CryptoRandomStream (CrsAlgorithm.Salsa20, new byte[16]); - TestGetRandomBytes (stream); - } - - [Test ()] - public void TestGetRandomBytesCrsAlgorithmArcFourVariant () - { - var stream = new CryptoRandomStream (CrsAlgorithm.ArcFourVariant, new byte[16]); - TestGetRandomBytes (stream); - } - - void TestGetRandomInt64 (CryptoRandomStream stream) - { - var value1 = stream.GetRandomUInt64 (); - var value2 = stream.GetRandomUInt64 (); - Assert.That (value2, Is.Not.EqualTo (value1)); - } - - [Test ()] - public void TestGetRandomInt64AlgorithmSalsa20 () - { - var stream = new CryptoRandomStream (CrsAlgorithm.Salsa20, new byte[16]); - TestGetRandomInt64 (stream); - } - - [Test ()] - public void TestGetRandomInt64AlgorithmArcFourVariant () - { - var stream = new CryptoRandomStream (CrsAlgorithm.ArcFourVariant, new byte[16]); - TestGetRandomInt64 (stream); - } - } -} - diff --git a/ModernKeePassLib.Test.old/Cryptography/CryptoRandomTests.cs b/ModernKeePassLib.Test.old/Cryptography/CryptoRandomTests.cs deleted file mode 100644 index 32c6c2b..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/CryptoRandomTests.cs +++ /dev/null @@ -1,44 +0,0 @@ -using NUnit.Framework; -using System; - -#if KeePassLib -using KeePassLib.Cryptography; -#else -using ModernKeePassLib.Cryptography; -#endif - -namespace ModernKeePassLib.Test.Cryptography -{ - [TestFixture ()] - public class CryptoRandomTests - { - [Test ()] - public void TestAddEntropy () - { - // just making sure it does not throw an exception - CryptoRandom.Instance.AddEntropy (new byte[1]); - } - - [Test ()] - public void TestGetRandomBytes () - { - const int length = 32; - var bytes1 = CryptoRandom.Instance.GetRandomBytes (length); - Assert.That (bytes1.Length, Is.EqualTo (length)); - var bytes2 = CryptoRandom.Instance.GetRandomBytes (length); - Assert.That (bytes2, Is.Not.EqualTo (bytes1)); - } - - [Test ()] - public void TestGeneratedBytesCount () - { - const int length = 1; - CryptoRandom.Instance.GetRandomBytes (length); - var count1 = CryptoRandom.Instance.GeneratedBytesCount; - CryptoRandom.Instance.GetRandomBytes (length); - var count2 = CryptoRandom.Instance.GeneratedBytesCount; - Assert.That (count2, Is.GreaterThan (count1)); - } - } -} - diff --git a/ModernKeePassLib.Test.old/Cryptography/Hash/Blake2bTests.cs b/ModernKeePassLib.Test.old/Cryptography/Hash/Blake2bTests.cs deleted file mode 100644 index a91591e..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/Hash/Blake2bTests.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; -using System.Text; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.Hash; -using ModernKeePassLib.Utility; -using NUnit.Framework; - -namespace ModernKeePassLib.Test.Cryptography.Hash -{ - [TestFixture] - public class Blake2bTests - { - [Test] - public void TestBlake2b() - { - Blake2b h = new Blake2b(); - - // ====================================================== - // From https://tools.ietf.org/html/rfc7693 - - byte[] pbData = StrUtil.Utf8.GetBytes("abc"); - byte[] pbExpc = new byte[64] { - 0xBA, 0x80, 0xA5, 0x3F, 0x98, 0x1C, 0x4D, 0x0D, - 0x6A, 0x27, 0x97, 0xB6, 0x9F, 0x12, 0xF6, 0xE9, - 0x4C, 0x21, 0x2F, 0x14, 0x68, 0x5A, 0xC4, 0xB7, - 0x4B, 0x12, 0xBB, 0x6F, 0xDB, 0xFF, 0xA2, 0xD1, - 0x7D, 0x87, 0xC5, 0x39, 0x2A, 0xAB, 0x79, 0x2D, - 0xC2, 0x52, 0xD5, 0xDE, 0x45, 0x33, 0xCC, 0x95, - 0x18, 0xD3, 0x8A, 0xA8, 0xDB, 0xF1, 0x92, 0x5A, - 0xB9, 0x23, 0x86, 0xED, 0xD4, 0x00, 0x99, 0x23 - }; - - byte[] pbC = h.ComputeHash(pbData); - Assert.That(MemUtil.ArraysEqual(pbC, pbExpc), Is.True); - - // ====================================================== - // Computed using the official b2sum tool - - pbExpc = new byte[64] { - 0x78, 0x6A, 0x02, 0xF7, 0x42, 0x01, 0x59, 0x03, - 0xC6, 0xC6, 0xFD, 0x85, 0x25, 0x52, 0xD2, 0x72, - 0x91, 0x2F, 0x47, 0x40, 0xE1, 0x58, 0x47, 0x61, - 0x8A, 0x86, 0xE2, 0x17, 0xF7, 0x1F, 0x54, 0x19, - 0xD2, 0x5E, 0x10, 0x31, 0xAF, 0xEE, 0x58, 0x53, - 0x13, 0x89, 0x64, 0x44, 0x93, 0x4E, 0xB0, 0x4B, - 0x90, 0x3A, 0x68, 0x5B, 0x14, 0x48, 0xB7, 0x55, - 0xD5, 0x6F, 0x70, 0x1A, 0xFE, 0x9B, 0xE2, 0xCE - }; - - pbC = h.ComputeHash(MemUtil.EmptyByteArray); - Assert.That(MemUtil.ArraysEqual(pbC, pbExpc), Is.True); - - // ====================================================== - // Computed using the official b2sum tool - - string strS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.:,;_-\r\n"; - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 1000; ++i) sb.Append(strS); - pbData = StrUtil.Utf8.GetBytes(sb.ToString()); - - pbExpc = new byte[64] { - 0x59, 0x69, 0x8D, 0x3B, 0x83, 0xF4, 0x02, 0x4E, - 0xD8, 0x99, 0x26, 0x0E, 0xF4, 0xE5, 0x9F, 0x20, - 0xDC, 0x31, 0xEE, 0x5B, 0x45, 0xEA, 0xBB, 0xFC, - 0x1C, 0x0A, 0x8E, 0xED, 0xAA, 0x7A, 0xFF, 0x50, - 0x82, 0xA5, 0x8F, 0xBC, 0x4A, 0x46, 0xFC, 0xC5, - 0xEF, 0x44, 0x4E, 0x89, 0x80, 0x7D, 0x3F, 0x1C, - 0xC1, 0x94, 0x45, 0xBB, 0xC0, 0x2C, 0x95, 0xAA, - 0x3F, 0x08, 0x8A, 0x93, 0xF8, 0x75, 0x91, 0xB0 - }; - - Random r = CryptoRandom.NewWeakRandom(); - int p = 0; - while (p < pbData.Length) - { - int cb = r.Next(1, pbData.Length - p + 1); - h.TransformBlock(pbData, p, cb, pbData, p); - p += cb; - } - Assert.That(p, Is.EqualTo(pbData.Length)); - - h.TransformFinalBlock(MemUtil.EmptyByteArray, 0, 0); - - Assert.That(MemUtil.ArraysEqual(h.Hash, pbExpc), Is.True); - - h.Clear(); - } - } -} \ No newline at end of file diff --git a/ModernKeePassLib.Test.old/Cryptography/Hash/HmacTests.cs b/ModernKeePassLib.Test.old/Cryptography/Hash/HmacTests.cs deleted file mode 100644 index 92d75a1..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/Hash/HmacTests.cs +++ /dev/null @@ -1,117 +0,0 @@ -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.Hash; -using ModernKeePassLib.Utility; -using NUnit.Framework; - -namespace ModernKeePassLib.Test.Cryptography.Hash -{ - [TestFixture] - public class HmacTests - { - [Test] - public void TestHmac1() - { - // Test vectors from RFC 4231 - - var pbKey = new byte[20]; - for (var i = 0; i < pbKey.Length; ++i) pbKey[i] = 0x0B; - var pbMsg = StrUtil.Utf8.GetBytes("Hi There"); - var pbExpc = new byte[] - { - 0xB0, 0x34, 0x4C, 0x61, 0xD8, 0xDB, 0x38, 0x53, - 0x5C, 0xA8, 0xAF, 0xCE, 0xAF, 0x0B, 0xF1, 0x2B, - 0x88, 0x1D, 0xC2, 0x00, 0xC9, 0x83, 0x3D, 0xA7, - 0x26, 0xE9, 0x37, 0x6C, 0x2E, 0x32, 0xCF, 0xF7 - }; - HmacEval(pbKey, pbMsg, pbExpc); - } - - [Test] - public void TestHmac2() - { - var pbKey = new byte[131]; - for (var i = 0; i < pbKey.Length; ++i) pbKey[i] = 0xAA; - var pbMsg = StrUtil.Utf8.GetBytes( - "This is a test using a larger than block-size key and " + - "a larger than block-size data. The key needs to be " + - "hashed before being used by the HMAC algorithm."); - var pbExpc = new byte[] { - 0x9B, 0x09, 0xFF, 0xA7, 0x1B, 0x94, 0x2F, 0xCB, - 0x27, 0x63, 0x5F, 0xBC, 0xD5, 0xB0, 0xE9, 0x44, - 0xBF, 0xDC, 0x63, 0x64, 0x4F, 0x07, 0x13, 0x93, - 0x8A, 0x7F, 0x51, 0x53, 0x5C, 0x3A, 0x35, 0xE2 - }; - HmacEval(pbKey, pbMsg, pbExpc); - } - - [Test] - public void TestHmacSha1ComputeHash() - { - var expectedHash = "AC2C2E614882CE7158F69B7E3B12114465945D01"; - var message = StrUtil.Utf8.GetBytes("testing123"); - var key = StrUtil.Utf8.GetBytes("hello"); - using (var result = new HMACSHA1(key)) - { - Assert.That(ByteToString(result.ComputeHash(message)), Is.EqualTo(expectedHash)); - } - } - - [Test] - public void TestHmacSha256ComputeHash() - { - var expectedHash = "09C1BD2DE4E5659C0EFAF9E6AE4723E9CF96B69609B4E562F6AFF1745D7BF4E0"; - var message = StrUtil.Utf8.GetBytes("testing123"); - var key = StrUtil.Utf8.GetBytes("hello"); - using (var result = new HMACSHA256(key)) - { - Assert.That(ByteToString(result.ComputeHash(message)), Is.EqualTo(expectedHash)); - } - } - - private static string ByteToString(byte[] buff) - { - string sbinary = ""; - - for (int i = 0; i < buff.Length; i++) - { - sbinary += buff[i].ToString("X2"); // hex format - } - return (sbinary); - } - - [Test] - public void TestHmacOtp() - { - var pbSecret = StrUtil.Utf8.GetBytes("12345678901234567890"); - var vExp = new []{ "755224", "287082", "359152", - "969429", "338314", "254676", "287922", "162583", "399871", - "520489" }; - - for (var i = 0; i < vExp.Length; ++i) - { - Assert.That(HmacOtp.Generate(pbSecret, (ulong)i, 6, false, -1), Is.EqualTo(vExp[i])); - } - } - - private static void HmacEval(byte[] pbKey, byte[] pbMsg, - byte[] pbExpc) - { - using (var h = new HMACSHA256(pbKey)) - { - h.TransformBlock(pbMsg, 0, pbMsg.Length, pbMsg, 0); - h.TransformFinalBlock(MemUtil.EmptyByteArray, 0, 0); - - byte[] pbHash = h.Hash; - Assert.That(MemUtil.ArraysEqual(pbHash, pbExpc), Is.True); - - // Reuse the object - h.Initialize(); - h.TransformBlock(pbMsg, 0, pbMsg.Length, pbMsg, 0); - h.TransformFinalBlock(MemUtil.EmptyByteArray, 0, 0); - - pbHash = h.Hash; - Assert.That(MemUtil.ArraysEqual(pbHash, pbExpc), Is.True); - } - } - } -} \ No newline at end of file diff --git a/ModernKeePassLib.Test.old/Cryptography/Hash/SHAManagedTests.cs b/ModernKeePassLib.Test.old/Cryptography/Hash/SHAManagedTests.cs deleted file mode 100644 index 25c55f8..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/Hash/SHAManagedTests.cs +++ /dev/null @@ -1,42 +0,0 @@ -using ModernKeePassLib.Cryptography.Hash; -using ModernKeePassLib.Utility; -using NUnit.Framework; - -namespace ModernKeePassLib.Test.Cryptography.Hash -{ - [TestFixture] - public class SHAManagedTests - { - [Test] - public void TestSha256ComputeHash() - { - var expectedHash = "B822F1CD2DCFC685B47E83E3980289FD5D8E3FF3A82DEF24D7D1D68BB272EB32"; - var message = StrUtil.Utf8.GetBytes("testing123"); - using (var result = new SHA256Managed()) - { - Assert.That(ByteToString(result.ComputeHash(message)), Is.EqualTo(expectedHash)); - } - } - - [Test] - public void TestSha512ComputeHash() - { - var expectedHash = "4120117B3190BA5E24044732B0B09AA9ED50EB1567705ABCBFA78431A4E0A96B1152ED7F4925966B1C82325E186A8100E692E6D2FCB6702572765820D25C7E9E"; - var message = StrUtil.Utf8.GetBytes("testing123"); - using (var result = new SHA512Managed()) - { - Assert.That(ByteToString(result.ComputeHash(message)), Is.EqualTo(expectedHash)); - } - } - private static string ByteToString(byte[] buff) - { - string sbinary = ""; - - for (int i = 0; i < buff.Length; i++) - { - sbinary += buff[i].ToString("X2"); // hex format - } - return (sbinary); - } - } -} \ No newline at end of file diff --git a/ModernKeePassLib.Test.old/Cryptography/HashingStreamExTests.cs b/ModernKeePassLib.Test.old/Cryptography/HashingStreamExTests.cs deleted file mode 100644 index cb0c48f..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/HashingStreamExTests.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System.IO; -using NUnit.Framework; - -using ModernKeePassLib.Cryptography; - -namespace ModernKeePassLib.Test.Cryptography -{ - [TestFixture ()] - public class HashingStreamExTests - { - const string data = "test"; - - // The expected hash includes the \n added by WriteLine - static readonly byte[] sha256HashOfData = { - 0xf2, 0xca, 0x1b, 0xb6, 0xc7, 0xe9, 0x07, 0xd0, - 0x6d, 0xaf, 0xe4, 0x68, 0x7e, 0x57, 0x9f, 0xce, - 0x76, 0xb3, 0x7e, 0x4e, 0x93, 0xb7, 0x60, 0x50, - 0x22, 0xda, 0x52, 0xe6, 0xcc, 0xc2, 0x6f, 0xd2 - }; - - [Test ()] - public void TestRead () - { - // if we use larger size, StreamReader will read past newline and cause bad hash - var bytes = new byte[data.Length + 1]; - using (var ms = new MemoryStream (bytes)) { - using (var sw = new StreamWriter (ms)) { - // set NewLine to ensure we don't run into cross-platform issues on Windows - sw.NewLine = "\n"; - sw.WriteLine (data); - } - } - using (var ms = new MemoryStream (bytes)) { - using (var hs = new HashingStreamEx (ms, false, null)) { - using (var sr = new StreamReader (hs)) { - var read = sr.ReadLine (); - Assert.That (read, Is.EqualTo (data)); - } - // When the StreamReader is disposed, it calls Dispose on the - //HasingStreamEx, which computes the hash. - Assert.That (hs.Hash, Is.EqualTo (sha256HashOfData)); - } - } - } - - [Test ()] - public void TestWrite () - { - var bytes = new byte[16]; - using (var ms = new MemoryStream (bytes)) { - using (var hs = new HashingStreamEx (ms, true, null)) { - using (var sw = new StreamWriter (hs)) { - // set NewLine to ensure we don't run into cross-platform issues on Windows - sw.NewLine = "\n"; - sw.WriteLine (data); - } - // When the StreamWriter is disposed, it calls Dispose on the - //HasingStreamEx, which computes the hash. - Assert.That (hs.Hash, Is.EqualTo (sha256HashOfData)); - } - } - using (var ms = new MemoryStream (bytes)) { - using (var sr = new StreamReader (ms)) { - var read = sr.ReadLine (); - Assert.That (read, Is.EqualTo (data)); - } - } - } - } -} - diff --git a/ModernKeePassLib.Test.old/Cryptography/HmacOtpTests.cs b/ModernKeePassLib.Test.old/Cryptography/HmacOtpTests.cs deleted file mode 100644 index 0892c6d..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/HmacOtpTests.cs +++ /dev/null @@ -1,36 +0,0 @@ -using NUnit.Framework; -using System; -using System.Text; - -#if KeePassLib -using KeePassLib.Cryptography; -#else -using ModernKeePassLib.Cryptography; -#endif - -namespace ModernKeePassLib.Test.Cryptography -{ - [TestFixture ()] - public class HmacOtpTests - { - // Using the test case from Appendix D of RFC 4226 - - const string secret = "12345678901234567890"; - static readonly string[] expectedHOTP = new string[] { - "755224", "287082", "359152", "969429", "338314", - "254676", "287922", "162583", "399871", "520489" - }; - - [Test ()] - public void TestGenerate () - { - var secretBytes = Encoding.UTF8.GetBytes (secret); - - for (ulong i = 0; i < 10; i++) { - var hotp = HmacOtp.Generate (secretBytes, i, 6, false, -1); - Assert.That (hotp, Is.EqualTo (expectedHOTP[i])); - } - } - } -} - diff --git a/ModernKeePassLib.Test.old/Cryptography/KeyDerivation/AesKdfTests.cs b/ModernKeePassLib.Test.old/Cryptography/KeyDerivation/AesKdfTests.cs deleted file mode 100644 index b43aa71..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/KeyDerivation/AesKdfTests.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.KeyDerivation; -using ModernKeePassLib.Utility; -using NUnit.Framework; - -namespace ModernKeePassLib.Test.Cryptography.KeyDerivation -{ - [TestFixture] - public class AesKdfTests - { - [Test] - public void TestAesKdf() - { - // Up to KeePass 2.34, the OtpKeyProv plugin used the public - // CompositeKey.TransformKeyManaged method (and a finalizing - // SHA-256 computation), which became an internal method of - // the AesKdf class in KeePass 2.35, thus OtpKeyProv now - // uses the AesKdf class; here we ensure that the results - // are the same - var r = CryptoRandom.NewWeakRandom(); - var pbKey = new byte[32]; - r.NextBytes(pbKey); - var pbSeed = new byte[32]; - r.NextBytes(pbSeed); - var uRounds = (ulong)r.Next(1, 0x7FFF); - - var pbMan = new byte[pbKey.Length]; - Array.Copy(pbKey, pbMan, pbKey.Length); - Assert.That(AesKdf.TransformKeyManaged(pbMan, pbSeed, uRounds), Is.True); - pbMan = CryptoUtil.HashSha256(pbMan); - - var kdf = new AesKdf(); - var p = kdf.GetDefaultParameters(); - p.SetUInt64(AesKdf.ParamRounds, uRounds); - p.SetByteArray(AesKdf.ParamSeed, pbSeed); - var pbKdf = kdf.Transform(pbKey, p); - - Assert.That(MemUtil.ArraysEqual(pbMan, pbKdf), Is.True); - } - } -} \ No newline at end of file diff --git a/ModernKeePassLib.Test.old/Cryptography/KeyDerivation/Argon2Tests.cs b/ModernKeePassLib.Test.old/Cryptography/KeyDerivation/Argon2Tests.cs deleted file mode 100644 index 44c34ff..0000000 --- a/ModernKeePassLib.Test.old/Cryptography/KeyDerivation/Argon2Tests.cs +++ /dev/null @@ -1,145 +0,0 @@ -using ModernKeePassLib.Cryptography.KeyDerivation; -using ModernKeePassLib.Utility; -using NUnit.Framework; - -namespace ModernKeePassLib.Test.Cryptography.KeyDerivation -{ - [TestFixture] - public class Argon2Tests - { - [Test] - public void TestArgon2() - { - Argon2Kdf kdf = new Argon2Kdf(); - - // ====================================================== - // From the official Argon2 1.3 reference code package - // (test vector for Argon2d 1.3); also on - // https://tools.ietf.org/html/draft-irtf-cfrg-argon2-00 - - var p = kdf.GetDefaultParameters(); - kdf.Randomize(p); - - Assert.That(p.GetUInt32(Argon2Kdf.ParamVersion, 0), Is.EqualTo(0x13U)); - - byte[] pbMsg = new byte[32]; - for (int i = 0; i < pbMsg.Length; ++i) pbMsg[i] = 1; - - p.SetUInt64(Argon2Kdf.ParamMemory, 32 * 1024); - p.SetUInt64(Argon2Kdf.ParamIterations, 3); - p.SetUInt32(Argon2Kdf.ParamParallelism, 4); - - byte[] pbSalt = new byte[16]; - for (int i = 0; i < pbSalt.Length; ++i) pbSalt[i] = 2; - p.SetByteArray(Argon2Kdf.ParamSalt, pbSalt); - - byte[] pbKey = new byte[8]; - for (int i = 0; i < pbKey.Length; ++i) pbKey[i] = 3; - p.SetByteArray(Argon2Kdf.ParamSecretKey, pbKey); - - byte[] pbAssoc = new byte[12]; - for (int i = 0; i < pbAssoc.Length; ++i) pbAssoc[i] = 4; - p.SetByteArray(Argon2Kdf.ParamAssocData, pbAssoc); - - byte[] pbExpc = new byte[32] { - 0x51, 0x2B, 0x39, 0x1B, 0x6F, 0x11, 0x62, 0x97, - 0x53, 0x71, 0xD3, 0x09, 0x19, 0x73, 0x42, 0x94, - 0xF8, 0x68, 0xE3, 0xBE, 0x39, 0x84, 0xF3, 0xC1, - 0xA1, 0x3A, 0x4D, 0xB9, 0xFA, 0xBE, 0x4A, 0xCB - }; - - byte[] pb = kdf.Transform(pbMsg, p); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - - // ====================================================== - // From the official Argon2 1.3 reference code package - // (test vector for Argon2d 1.0) - - p.SetUInt32(Argon2Kdf.ParamVersion, 0x10); - - pbExpc = new byte[32] { - 0x96, 0xA9, 0xD4, 0xE5, 0xA1, 0x73, 0x40, 0x92, - 0xC8, 0x5E, 0x29, 0xF4, 0x10, 0xA4, 0x59, 0x14, - 0xA5, 0xDD, 0x1F, 0x5C, 0xBF, 0x08, 0xB2, 0x67, - 0x0D, 0xA6, 0x8A, 0x02, 0x85, 0xAB, 0xF3, 0x2B - }; - - pb = kdf.Transform(pbMsg, p); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - - // ====================================================== - // From the official 'phc-winner-argon2-20151206.zip' - // (test vector for Argon2d 1.0) - - p.SetUInt64(Argon2Kdf.ParamMemory, 16 * 1024); - - pbExpc = new byte[32] { - 0x57, 0xB0, 0x61, 0x3B, 0xFD, 0xD4, 0x13, 0x1A, - 0x0C, 0x34, 0x88, 0x34, 0xC6, 0x72, 0x9C, 0x2C, - 0x72, 0x29, 0x92, 0x1E, 0x6B, 0xBA, 0x37, 0x66, - 0x5D, 0x97, 0x8C, 0x4F, 0xE7, 0x17, 0x5E, 0xD2 - }; - - pb = kdf.Transform(pbMsg, p); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - - // ====================================================== - // Computed using the official 'argon2' application - // (test vectors for Argon2d 1.3) - - p = kdf.GetDefaultParameters(); - - pbMsg = StrUtil.Utf8.GetBytes("ABC1234"); - - p.SetUInt64(Argon2Kdf.ParamMemory, (1 << 11) * 1024); // 2 MB - p.SetUInt64(Argon2Kdf.ParamIterations, 2); - p.SetUInt32(Argon2Kdf.ParamParallelism, 2); - - pbSalt = StrUtil.Utf8.GetBytes("somesalt"); - p.SetByteArray(Argon2Kdf.ParamSalt, pbSalt); - - pbExpc = new byte[32] { - 0x29, 0xCB, 0xD3, 0xA1, 0x93, 0x76, 0xF7, 0xA2, - 0xFC, 0xDF, 0xB0, 0x68, 0xAC, 0x0B, 0x99, 0xBA, - 0x40, 0xAC, 0x09, 0x01, 0x73, 0x42, 0xCE, 0xF1, - 0x29, 0xCC, 0xA1, 0x4F, 0xE1, 0xC1, 0xB7, 0xA3 - }; - - pb = kdf.Transform(pbMsg, p); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - - p.SetUInt64(Argon2Kdf.ParamMemory, (1 << 10) * 1024); // 1 MB - p.SetUInt64(Argon2Kdf.ParamIterations, 3); - - pbExpc = new byte[32] { - 0x7A, 0xBE, 0x1C, 0x1C, 0x8D, 0x7F, 0xD6, 0xDC, - 0x7C, 0x94, 0x06, 0x3E, 0xD8, 0xBC, 0xD8, 0x1C, - 0x2F, 0x87, 0x84, 0x99, 0x12, 0x83, 0xFE, 0x76, - 0x00, 0x64, 0xC4, 0x58, 0xA4, 0xDA, 0x35, 0x70 - }; - - pb = kdf.Transform(pbMsg, p); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - - p.SetUInt64(Argon2Kdf.ParamMemory, (1 << 20) * 1024); // 1 GB - p.SetUInt64(Argon2Kdf.ParamIterations, 2); - p.SetUInt32(Argon2Kdf.ParamParallelism, 3); - - pbExpc = new byte[32] { - 0xE6, 0xE7, 0xCB, 0xF5, 0x5A, 0x06, 0x93, 0x05, - 0x32, 0xBA, 0x86, 0xC6, 0x1F, 0x45, 0x17, 0x99, - 0x65, 0x41, 0x77, 0xF9, 0x30, 0x55, 0x9A, 0xE8, - 0x3D, 0x21, 0x48, 0xC6, 0x2D, 0x0C, 0x49, 0x11 - }; - - pb = kdf.Transform(pbMsg, p); - - Assert.That(MemUtil.ArraysEqual(pb, pbExpc), Is.True); - } - } -} \ No newline at end of file diff --git a/ModernKeePassLib.Test.old/Keys/CompositeKeyTests.cs b/ModernKeePassLib.Test.old/Keys/CompositeKeyTests.cs deleted file mode 100644 index ed5118c..0000000 --- a/ModernKeePassLib.Test.old/Keys/CompositeKeyTests.cs +++ /dev/null @@ -1,33 +0,0 @@ -using NUnit.Framework; -using ModernKeePassLib.Cryptography.KeyDerivation; -using ModernKeePassLib.Keys; - -namespace ModernKeePassLib.Test.Keys -{ - [TestFixture ()] - public class CompositeKeyTests - { - [Test] - public void TestGenerateKey32 () - { - var originalKey = new byte[32]; - var expectedKey = new byte[32] { - 0xF0, 0xED, 0x57, 0xD5, 0xF0, 0xDA, 0xF3, 0x47, - 0x90, 0xD0, 0xDB, 0x43, 0x25, 0xC6, 0x81, 0x2C, - 0x81, 0x6A, 0x0D, 0x94, 0x96, 0xA9, 0x03, 0xE1, - 0x20, 0xD4, 0x3A, 0x3E, 0x45, 0xAD, 0x02, 0x65 - }; - const ulong rounds = 1; - - var composite = new CompositeKey (); - AesKdf kdf = new AesKdf(); - KdfParameters p = kdf.GetDefaultParameters(); - p.SetUInt64(AesKdf.ParamRounds, rounds); - p.SetByteArray(AesKdf.ParamSeed, originalKey); - var key = composite.GenerateKey32(p); - Assert.That (key, Is.Not.Null); - var keyData = key.ReadData (); - Assert.That (keyData, Is.EqualTo (expectedKey)); - } - } -} diff --git a/ModernKeePassLib.Test.old/Keys/KcpCustomKeyTests.cs b/ModernKeePassLib.Test.old/Keys/KcpCustomKeyTests.cs deleted file mode 100644 index ecacde5..0000000 --- a/ModernKeePassLib.Test.old/Keys/KcpCustomKeyTests.cs +++ /dev/null @@ -1,39 +0,0 @@ -using NUnit.Framework; -using System; - -#if KeePassLib -using KeePassLib.Keys; -#else -using ModernKeePassLib.Keys; -#endif - -namespace ModernKeePassLib.Test.Keys -{ - [TestFixture ()] - public class KcpCustomKeyTests - { - static readonly byte[] testData = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - [Test ()] - public void TestConstruct () - { - var expectedHash = new byte[32] { - 0xAF, 0x55, 0x70, 0xF5, 0xA1, 0x81, 0x0B, 0x7A, - 0xF7, 0x8C, 0xAF, 0x4B, 0xC7, 0x0A, 0x66, 0x0F, - 0x0D, 0xF5, 0x1E, 0x42, 0xBA, 0xF9, 0x1D, 0x4D, - 0xE5, 0xB2, 0x32, 0x8D, 0xE0, 0xE8, 0x3D, 0xFC - }; - - var key = new KcpCustomKey ("test1", testData, false); - var keyData = key.KeyData.ReadData (); - Assert.That (keyData, Is.EqualTo (testData)); - - key = new KcpCustomKey ("test2", testData, true); - keyData = key.KeyData.ReadData (); - Assert.That (keyData, Is.EqualTo (expectedHash)); - } - } -} - diff --git a/ModernKeePassLib.Test.old/Keys/KcpKeyFileTests.cs b/ModernKeePassLib.Test.old/Keys/KcpKeyFileTests.cs deleted file mode 100644 index 06e4c75..0000000 --- a/ModernKeePassLib.Test.old/Keys/KcpKeyFileTests.cs +++ /dev/null @@ -1,76 +0,0 @@ -using NUnit.Framework; -using System; -using System.IO; - -#if KeePassLib -using KeePassLib.Keys; -#else -using ModernKeePassLib.Keys; -#endif - -namespace ModernKeePassLib.Test.Keys -{ - [TestFixture ()] - public class KcpKeyFileTests - { - const string testCreateFile = "TestCreate.xml"; - const string testKey = "0123456789"; - - const string expectedFileStart = - "\r\n" + - "\r\n" + - "\t\r\n" + - "\t\t1.00\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t"; - - const string expectedFileEnd = "\t\r\n" + - "\r\n"; - - [Test ()] - public void TestConstruct () - { - var expectedKeyData = new byte[32] { - 0xC1, 0xB1, 0x12, 0x77, 0x23, 0xB8, 0x99, 0xB8, - 0xB9, 0x3B, 0x1B, 0xFF, 0x6C, 0xBE, 0xA1, 0x5B, - 0x8B, 0x99, 0xAC, 0xBD, 0x99, 0x51, 0x85, 0x95, - 0x31, 0xAA, 0x14, 0x3D, 0x95, 0xBF, 0x63, 0xFF - }; - - var fullPath = Path.Combine(Path.GetTempPath(), testCreateFile); - using (var fs = new FileStream(fullPath, FileMode.Create)) { - using (var sw = new StreamWriter(fs)) { - sw.Write (expectedFileStart); - sw.Write (testKey); - sw.Write (expectedFileEnd); - } - } - - try { - var keyFile = new KcpKeyFile (fullPath); - var keyData = keyFile.KeyData.ReadData (); - Assert.That (keyData, Is.EqualTo (expectedKeyData)); - } finally { - File.Delete (fullPath); - } - } - - [Test ()] - public void TestCreate () - { - var fullPath = Path.Combine(Path.GetTempPath(), testCreateFile); - File.Create(fullPath).Close(); - KcpKeyFile.Create (fullPath, null); - try { - var fileContents = File.ReadAllText (fullPath); - Assert.That (fileContents.Length, Is.EqualTo (187)); - Assert.That (fileContents, Does.StartWith (expectedFileStart)); - Assert.That (fileContents, Does.EndWith (expectedFileEnd)); - } finally { - File.Delete (fullPath); - } - } - } -} - diff --git a/ModernKeePassLib.Test.old/Keys/KcpPasswordTests.cs b/ModernKeePassLib.Test.old/Keys/KcpPasswordTests.cs deleted file mode 100644 index 4fbc4a7..0000000 --- a/ModernKeePassLib.Test.old/Keys/KcpPasswordTests.cs +++ /dev/null @@ -1,33 +0,0 @@ -using NUnit.Framework; -using System; - -#if KeePassLib -using KeePassLib.Keys; -#else -using ModernKeePassLib.Keys; -#endif - -namespace ModernKeePassLib.Test.Keys -{ - [TestFixture ()] - public class KcpPasswordTests - { - const string testPassword = "password"; - - [Test ()] - public void TestConstruct () - { - var expectedHash = new byte[32] { - 0x5E, 0x88, 0x48, 0x98, 0xDA, 0x28, 0x04, 0x71, - 0x51, 0xD0, 0xE5, 0x6F, 0x8D, 0xC6, 0x29, 0x27, - 0x73, 0x60, 0x3D, 0x0D, 0x6A, 0xAB, 0xBD, 0xD6, - 0x2A, 0x11, 0xEF, 0x72, 0x1D, 0x15, 0x42, 0xD8 - }; - - var key = new KcpPassword (testPassword); - var keyData = key.KeyData.ReadData (); - Assert.That (keyData, Is.EqualTo (expectedHash)); - } - } -} - diff --git a/ModernKeePassLib.Test.old/ModernKeePassLib.Test.old.csproj b/ModernKeePassLib.Test.old/ModernKeePassLib.Test.old.csproj deleted file mode 100644 index d80a400..0000000 --- a/ModernKeePassLib.Test.old/ModernKeePassLib.Test.old.csproj +++ /dev/null @@ -1,104 +0,0 @@ - - - - Debug - AnyCPU - {067456C0-086C-46A8-B37F-1405717B7BFC} - Library - Properties - ModernKeePassLib.Test - ModernKeePassLib.Test - v4.5.1 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\Portable.BouncyCastle.1.8.1.3\lib\net40\BouncyCastle.Crypto.dll - - - ..\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll - True - - - ..\packages\Splat.2.0.0\lib\Net45\Splat.dll - True - - - - - - - - ..\packages\Validation.2.4.18\lib\net45\Validation.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {2e710089-9559-4967-846c-e763dd1f3acb} - ModernKeePassLib - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/ModernKeePassLib.Test.old/Properties/AssemblyInfo.cs b/ModernKeePassLib.Test.old/Properties/AssemblyInfo.cs deleted file mode 100644 index 806911d..0000000 --- a/ModernKeePassLib.Test.old/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ModernKeePassLib.Test")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ModernKeePassLib.Test")] -[assembly: AssemblyCopyright("Copyright © 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("067456c0-086c-46a8-b37f-1405717b7bfc")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ModernKeePassLib.Test.old/Serialization/HashedBlockStreamTests.cs b/ModernKeePassLib.Test.old/Serialization/HashedBlockStreamTests.cs deleted file mode 100644 index e26d2ec..0000000 --- a/ModernKeePassLib.Test.old/Serialization/HashedBlockStreamTests.cs +++ /dev/null @@ -1,71 +0,0 @@ -using NUnit.Framework; -using System; -using System.IO; - -#if KeePassLib -using KeePassLib.Serialization; -#else -using ModernKeePassLib.Serialization; -#endif - -namespace ModernKeePassLib.Test.Serialization -{ - [TestFixture ()] - public class HashedBlockStreamTests - { - static readonly byte[] data = new byte[16]; - - static readonly byte[] hashStreamData = new byte[] { - // The first 4 bytes are an integer indicating the block index - 0x00, 0x00, 0x00, 0x00, - // Then the SHA-256 hash of the data - 0x37, 0x47, 0x08, 0xFF, 0xF7, 0x71, 0x9D, 0xD5, - 0x97, 0x9E, 0xC8, 0x75, 0xD5, 0x6C, 0xD2, 0x28, - 0x6F, 0x6D, 0x3C, 0xF7, 0xEC, 0x31, 0x7A, 0x3B, - 0x25, 0x63, 0x2A, 0xAB, 0x28, 0xEC, 0x37, 0xBB, - // then an integer that is the length of the data - 0x10, 0x00, 0x00, 0x00, - // and finally the data itself - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Next, a terminating block - 0x01, 0x00, 0x00, 0x00, - // terminating block is indicated by a hash of all 0s... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // ...and by a size of 0 - 0x00, 0x00, 0x00, 0x00 - }; - - [Test ()] - public void TestRead () - { - using (var ms = new MemoryStream (hashStreamData)) { - using (var hbs = new HashedBlockStream (ms, false)) { - using (var br = new BinaryReader(hbs)) { - var bytes = br.ReadBytes (data.Length); - Assert.That (bytes, Is.EqualTo (data)); - Assert.That (() => br.ReadByte (), Throws.InstanceOf ()); - } - } - } - } - - [Test ()] - public void TestWrite () - { - var buffer = new byte[hashStreamData.Length]; - using (var ms = new MemoryStream (buffer)) { - using (var hbs = new HashedBlockStream (ms, true)) { - using (var bw = new BinaryWriter(hbs)) { - bw.Write (data); - } - } - Assert.That (buffer, Is.EqualTo (hashStreamData)); - } - } - } -} - diff --git a/ModernKeePassLib.Test.old/Serialization/KdbxFileTests.cs b/ModernKeePassLib.Test.old/Serialization/KdbxFileTests.cs deleted file mode 100644 index 67e4edd..0000000 --- a/ModernKeePassLib.Test.old/Serialization/KdbxFileTests.cs +++ /dev/null @@ -1,172 +0,0 @@ -using NUnit.Framework; -using System; -using System.Globalization; -using System.IO; -using System.Text; -using ModernKeePassLib.Keys; -using ModernKeePassLib.Security; -using ModernKeePassLib.Serialization; -using ModernKeePassLib.Collections; - -namespace ModernKeePassLib.Test.Serialization -{ - [TestFixture()] - public class KdbxFileTests - { - const string TestLocalizedAppName = "My Localized App Name"; - - const string TestDatabaseName = "My Database Name"; - const string TestDatabaseDescription = "My Database Description"; - const string TestDefaultUserName = "My Default User Name"; - const string TestColor = "#FF0000"; // Red - - const string TestRootGroupName = "My Root Group Name"; - const string TestRootGroupNotes = "My Root Group Notes"; - const string TestRootGroupDefaultAutoTypeSequence = "My Root Group Default Auto Type Sequence"; - - const string TestDatabase = "\r\n" + - "\r\n" + - "\t\r\n" + - "\t\t" + TestLocalizedAppName + "\r\n" + - "\t\t" + TestDatabaseName + "\r\n" + - "\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t" + TestDatabaseDescription + "\r\n" + - "\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t" + TestDefaultUserName + "\r\n" + - "\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t365\r\n" + - //"\t\t" + testColor + "\r\n" + - "\t\t\r\n" + - "\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t-1\r\n" + - "\t\t-1\r\n" + - "\t\t\r\n" + - "\t\t\tFalse\r\n" + - "\t\t\tFalse\r\n" + - "\t\t\tTrue\r\n" + - "\t\t\tFalse\r\n" + - "\t\t\tFalse\r\n" + - "\t\t\r\n" + - "\t\tTrue\r\n" + - "\t\tAAAAAAAAAAAAAAAAAAAAAA==\r\n" + - "\t\t2017-10-23T08:03:55Z\r\n" + - "\t\tAAAAAAAAAAAAAAAAAAAAAA==\r\n" + - "\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t10\r\n" + - "\t\t6291456\r\n" + - "\t\tAAAAAAAAAAAAAAAAAAAAAA==\r\n" + - "\t\tAAAAAAAAAAAAAAAAAAAAAA==\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\tAAAAAAAAAAAAAAAAAAAAAA==\r\n" + - "\t\t\t" + TestRootGroupName + "\r\n" + - "\t\t\t" + TestRootGroupNotes + "\r\n" + - "\t\t\t49\r\n" + - "\t\t\t\r\n" + - "\t\t\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t\t\tFalse\r\n" + - "\t\t\t\t0\r\n" + - "\t\t\t\t2017-10-23T08:03:55Z\r\n" + - "\t\t\t\r\n" + - "\t\t\tTrue\r\n" + - "\t\t\t" + TestRootGroupDefaultAutoTypeSequence + "\r\n" + - "\t\t\tnull\r\n" + - "\t\t\tnull\r\n" + - "\t\t\tAAAAAAAAAAAAAAAAAAAAAA==\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; - - const string TestDate = "2017-10-23T08:03:55Z"; - - [Test()] - public void TestLoad() - { - var database = new PwDatabase(); - using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(TestDatabase))) - { - var file = new KdbxFile(database); - file.Load(ms, KdbxFormat.PlainXml, null); - } - //Assert.That(database.Color.ToArgb(), Is.EqualTo(Color.Red.ToArgb())); - Assert.That(database.Compression, Is.EqualTo(PwCompressionAlgorithm.GZip)); - //Assert.That (database.CustomData, Is.EqualTo ()); - Assert.That(database.CustomIcons, Is.Empty); - } - - [Test()] - public void TestSave() - { - var buffer = new byte[4096]; - using (var ms = new MemoryStream(buffer)) - { - var database = new PwDatabase(); - database.New(new IOConnectionInfo(), new CompositeKey()); - var date = DateTime.Parse(TestDate, CultureInfo.CurrentCulture, DateTimeStyles.AdjustToUniversal); - //var date = DateTime.UtcNow; - PwDatabase.LocalizedAppName = TestLocalizedAppName; - database.Name = TestDatabaseName; - database.NameChanged = date; - database.Description = TestDatabaseDescription; - database.DescriptionChanged = date; - database.DefaultUserName = TestDefaultUserName; - database.DefaultUserNameChanged = date; - //database.Color = Color.Red; - database.MasterKeyChanged = date; - database.RecycleBinChanged = date; - database.EntryTemplatesGroupChanged = date; - database.RootGroup.Uuid = PwUuid.Zero; - database.RootGroup.Name = TestRootGroupName; - database.RootGroup.Notes = TestRootGroupNotes; - database.RootGroup.DefaultAutoTypeSequence = TestRootGroupDefaultAutoTypeSequence; - database.RootGroup.CreationTime = date; - database.RootGroup.LastModificationTime = date; - database.RootGroup.LastAccessTime = date; - database.RootGroup.ExpiryTime = date; - database.RootGroup.LocationChanged = date; - var file = new KdbxFile(database); - file.Save(ms, null, KdbxFormat.PlainXml, null); - } - var fileContents = Encoding.UTF8.GetString(buffer).Replace("\0", ""); - if (typeof(KdbxFile).Namespace.StartsWith("KeePassLib.") - && Environment.OSVersion.Platform != PlatformID.Win32NT) - { - // Upstream KeePassLib does not specify line endings for XmlTextWriter, - // so it uses native line endings. - fileContents = fileContents.Replace("\n", "\r\n"); - } - Assert.That(fileContents, Is.EqualTo(TestDatabase)); - } - - [Test] - public void TestSearch() - { - var database = new PwDatabase(); - using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(TestDatabase))) - { - var file = new KdbxFile(database); - file.Load(ms, KdbxFormat.PlainXml, null); - } - var sp = new SearchParameters() - { - SearchString = "sfsoiwsefsi" - }; - var listStorage = new PwObjectList(); - database.RootGroup.SearchEntries(sp, listStorage); - Assert.AreEqual(0U, listStorage.UCount); - var entry = new PwEntry(true, true); - entry.Strings.Set("Title", new ProtectedString(false, "NaMe")); - database.RootGroup.AddEntry(entry, true); - sp.SearchString = "name"; - database.RootGroup.SearchEntries(sp, listStorage); - Assert.AreEqual(1U, listStorage.UCount); - } - } -} diff --git a/ModernKeePassLib.Test.old/Utility/GfxUtilTests.cs b/ModernKeePassLib.Test.old/Utility/GfxUtilTests.cs deleted file mode 100644 index 64da5ab..0000000 --- a/ModernKeePassLib.Test.old/Utility/GfxUtilTests.cs +++ /dev/null @@ -1,33 +0,0 @@ -using NUnit.Framework; -using System; - -#if KeePassLib -using KeePassLib.Utility; -#else -using Splat; -using ModernKeePassLib.Utility; -#endif - -namespace ModernKeePassLib.Test.Utility -{ - [TestFixture ()] - public class GfxUtilTests - { - // 16x16 all white PNG file, base64 encoded - const string testImageData = - "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAA" + - "LEwEAmpwYAAAAB3RJTUUH3wMOFgIgmTCUMQAAABl0RVh0Q29tbWVudABDcmVhdG" + - "VkIHdpdGggR0lNUFeBDhcAAAAaSURBVCjPY/z//z8DKYCJgUQwqmFUw9DRAABVb" + - "QMdny4VogAAAABJRU5ErkJggg=="; - - [Test ()] - public void TestLoadImage () - { - var testData = Convert.FromBase64String (testImageData); - var image = GfxUtil.ScaleImage(testData, 16, 16).GetAwaiter().GetResult(); - //var image = GfxUtil.LoadImage(testData); - Assert.That (image.Width, Is.EqualTo (16)); - Assert.That (image.Height, Is.EqualTo (16)); - } - } -} diff --git a/ModernKeePassLib.Test.old/Utility/MemUtilTests.cs b/ModernKeePassLib.Test.old/Utility/MemUtilTests.cs deleted file mode 100644 index f57ee2c..0000000 --- a/ModernKeePassLib.Test.old/Utility/MemUtilTests.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System.Text; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Utility; -using NUnit.Framework; - -namespace ModernKeePassLib.Test.Utility -{ - [TestFixture] - public class MemUtilTests - { - private byte[] _pb = CryptoRandom.Instance.GetRandomBytes((uint)CryptoRandom.NewWeakRandom().Next(0, 0x2FFFF)); - - [Test] - public void TestGzip() - { - var pbCompressed = MemUtil.Compress(_pb); - Assert.That(MemUtil.ArraysEqual(MemUtil.Decompress(pbCompressed), _pb), Is.True); - } - - [Test] - public void TestMemUtil() - { - Encoding enc = StrUtil.Utf8; - _pb = enc.GetBytes("012345678901234567890a"); - byte[] pbN = enc.GetBytes("9012"); - Assert.That(MemUtil.IndexOf(_pb, pbN), Is.EqualTo(9)); - - pbN = enc.GetBytes("01234567890123"); - Assert.That(MemUtil.IndexOf(_pb, pbN), Is.EqualTo(0)); - - pbN = enc.GetBytes("a"); - Assert.That(MemUtil.IndexOf(_pb, pbN), Is.EqualTo(21)); - - pbN = enc.GetBytes("0a"); - Assert.That(MemUtil.IndexOf(_pb, pbN), Is.EqualTo(20)); - - pbN = enc.GetBytes("1"); - Assert.That(MemUtil.IndexOf(_pb, pbN), Is.EqualTo(1)); - - pbN = enc.GetBytes("b"); - Assert.That(MemUtil.IndexOf(_pb, pbN), Is.LessThan(0)); - - pbN = enc.GetBytes("012b"); - Assert.That(MemUtil.IndexOf(_pb, pbN), Is.LessThan(0)); - } - - [Test] - public void TestBase32() - { - byte[] pbRes = MemUtil.ParseBase32("MY======"); - byte[] pbExp = Encoding.UTF8.GetBytes("f"); - Assert.That(MemUtil.ArraysEqual(pbRes, pbExp), Is.True); - - pbRes = MemUtil.ParseBase32("MZXQ===="); - pbExp = Encoding.UTF8.GetBytes("fo"); - Assert.That(MemUtil.ArraysEqual(pbRes, pbExp), Is.True); - - pbRes = MemUtil.ParseBase32("MZXW6==="); - pbExp = Encoding.UTF8.GetBytes("foo"); - Assert.That(MemUtil.ArraysEqual(pbRes, pbExp), Is.True); - - pbRes = MemUtil.ParseBase32("MZXW6YQ="); - pbExp = Encoding.UTF8.GetBytes("foob"); - Assert.That(MemUtil.ArraysEqual(pbRes, pbExp), Is.True); - - pbRes = MemUtil.ParseBase32("MZXW6YTB"); - pbExp = Encoding.UTF8.GetBytes("fooba"); - Assert.That(MemUtil.ArraysEqual(pbRes, pbExp), Is.True); - - pbRes = MemUtil.ParseBase32("MZXW6YTBOI======"); - pbExp = Encoding.UTF8.GetBytes("foobar"); - Assert.That(MemUtil.ArraysEqual(pbRes, pbExp), Is.True); - - pbRes = MemUtil.ParseBase32("JNSXSIDQOJXXM2LEMVZCAYTBONSWIIDPNYQG63TFFV2GS3LFEBYGC43TO5XXEZDTFY======"); - pbExp = Encoding.UTF8.GetBytes("Key provider based on one-time passwords."); - Assert.That(MemUtil.ArraysEqual(pbRes, pbExp), Is.True); - } - - [Test] - public void TestMemUtil2() - { - var i = 0 - 0x10203040; - var pbRes = MemUtil.Int32ToBytes(i); - Assert.That(MemUtil.ByteArrayToHexString(pbRes), Is.EqualTo("C0CFDFEF")); - Assert.That(MemUtil.BytesToUInt32(pbRes), Is.EqualTo((uint)i)); - Assert.That(MemUtil.BytesToInt32(pbRes), Is.EqualTo(i)); - } - } -} \ No newline at end of file diff --git a/ModernKeePassLib.Test.old/app.config b/ModernKeePassLib.Test.old/app.config deleted file mode 100644 index 9d20672..0000000 --- a/ModernKeePassLib.Test.old/app.config +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ModernKeePassLib.Test.old/packages.config b/ModernKeePassLib.Test.old/packages.config deleted file mode 100644 index bd4f15c..0000000 --- a/ModernKeePassLib.Test.old/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/UnitTestLibrary/Images/UnitTestLogo.scale-100.png b/UnitTestLibrary/Images/UnitTestLogo.scale-100.png deleted file mode 100644 index ebd735aa9352cf97bfcbe11dc4281617d570dca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5789 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 diff --git a/UnitTestLibrary/Images/UnitTestSmallLogo.scale-100.png b/UnitTestLibrary/Images/UnitTestSmallLogo.scale-100.png deleted file mode 100644 index 92dd1058fbfb70c4491d934fe5f60ff2bacd41e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmVGVQpR4ciyoglSwB91#GhGhn{+`40 zKOYZLtJUy5M#Hz+??BTuEf5G^US9q^+F&rqWU^c?_f@o5EFKPriyn{1Bb7>Dq2Gpm zj6OIx0Dx2~HJwfYfY0ae?(T|2B8f!u{QL|62qB-(r&KC$Z*SK_*J?F}VN52|>FMcU zFfbSl3WWjytX69-my^roXJ=<#ua{)79{TC&>GAP#Z*OmVdpj13x!rDr5V@9aw;PYg zH#axi?RKlx`izXlVo|Hrs#L0EGRd+maoTJ)o6W}O^8uh-F3h|y@YSS;jQC=}8(jWHGo1n>Siolbo|pUdSMkH^GQuh+}v@;m@7 z&Jc>C4i68Hj*hr+T!t~ezP`S?y22R0k0z$q>n|=YHa0d^OdOHmY;9-&aER;zuc8|`*G;bM$g zmK6$x05F+MNKYb!91h14^s=n;`Mg%E?Q}Y^Sj_A71_A*9C=?2bL}EUktX3=67~#xX zqtR?_Z50ZIlarIdV8G+?{C+<<@8RKLe}A70Rh>@PY&O@+Iv5NhgzoO{=BuF5Xoy6j zot>Spu7XS^v$&ZilS!#ml1in7OJvMsGGeiKZ5iKgy!-omnN0R!*h(_~++zV_yx462 b>BH;~a9|}kOw?>(00000NkvXXu0mjfaI93Z diff --git a/UnitTestLibrary/Images/UnitTestSplashScreen.scale-100.png b/UnitTestLibrary/Images/UnitTestSplashScreen.scale-100.png deleted file mode 100644 index 193187f108f50dd242cb5c589b02a29691b7432a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9381 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 - - - - - - UnitTestLibrary - GBE - Images\UnitTestStoreLogo.png - UnitTestLibrary - - - - 6.3.0 - 6.3.0 - - - - - - - - - - - - - - - - - - - - - - - diff --git a/UnitTestLibrary/Properties/AssemblyInfo.cs b/UnitTestLibrary/Properties/AssemblyInfo.cs deleted file mode 100644 index e04d528..0000000 --- a/UnitTestLibrary/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("UnitTestLibrary")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("UnitTestLibrary")] -[assembly: AssemblyCopyright("Copyright © 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/UnitTestLibrary/UnitTest1.cs b/UnitTestLibrary/UnitTest1.cs deleted file mode 100644 index 9f05fc1..0000000 --- a/UnitTestLibrary/UnitTest1.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.VisualStudio.TestPlatform.UnitTestFramework; - -namespace UnitTestLibrary -{ - [TestClass] - public class UnitTest1 - { - [TestMethod] - public void TestMethod1() - { - } - } -} diff --git a/UnitTestLibrary/UnitTestLibrary.csproj b/UnitTestLibrary/UnitTestLibrary.csproj deleted file mode 100644 index d56d1b1..0000000 --- a/UnitTestLibrary/UnitTestLibrary.csproj +++ /dev/null @@ -1,152 +0,0 @@ - - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {ce2b2c45-2b99-46b1-a29e-128e63fd0933} - Library - Properties - UnitTestLibrary - UnitTestLibrary - en-US - 8.1 - 14 - 512 - {BC8A1FFA-BEE3-4634-8014-F334798102B3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - UnitTestLibrary_TemporaryKey.pfx - Never - False - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE;NETFX_CORE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE;NETFX_CORE - prompt - 4 - - - true - bin\ARM\Debug\ - DEBUG;TRACE;NETFX_CORE - ;2008 - full - ARM - false - prompt - true - - - bin\ARM\Release\ - TRACE;NETFX_CORE - true - ;2008 - pdbonly - ARM - false - prompt - true - - - true - bin\x64\Debug\ - DEBUG;TRACE;NETFX_CORE - ;2008 - full - x64 - false - prompt - true - - - bin\x64\Release\ - TRACE;NETFX_CORE - true - ;2008 - pdbonly - x64 - false - prompt - true - - - true - bin\x86\Debug\ - DEBUG;TRACE;NETFX_CORE - ;2008 - full - x86 - false - prompt - true - - - bin\x86\Release\ - TRACE;NETFX_CORE - true - ;2008 - pdbonly - x86 - false - prompt - true - - - True - true - - - - - - - - - - - - - Designer - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - 14.0 - - - - diff --git a/UnitTestLibrary/UnitTestLibrary_TemporaryKey.pfx b/UnitTestLibrary/UnitTestLibrary_TemporaryKey.pfx deleted file mode 100644 index 5b44b83cd438f7de091d47d622aad5978b89c02f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2446 zcmZve2{=@38^_PgoEh5~S)-6wZ?dG$kTuF0lHE|mXbd7!l+i2FDSIecdhOXVmP*+Q z63}=X!qs=f3afx$bk$eGUZk#G+9c2 zja=qOaiMZy9t{xYQAOlE5RB#g*AjLbgs~HdJc`&bj_+SlcwQ7b7Y5fM800{bINpED zNOA(m{psDrGmiR@3mVP!286+0YOP{;Ed9wyJ>T7tO#)^&870@&ZSUVvcnOrLzO|JZ zt34AXU@)-1w3*$+ARJmf?F>)gv>U$!@?9(pT3o*A>FDHCL6Xz9s$|JXx$(iZ2Il5L zOPi#F7IV5JvD0;YdN3pP;XdBz!^H86aK;A}we#&(L5Z(=O^dA8?my@lmkSr~@fonw zzwD7tIUXRN9Jn1c;oYP2ojL6GArIbXT^V)MLF@hey3*OhWuXLG0!VS&oo(9ddMIdi zuZ&GfK}&)wIis<>bR=+x=*V7?y$uwojAQSy+Hj0_Q~q2h!`i7?_lLi!Aue8R%O4%@ z)Q)7j=Gmo1X$yNcQdHhfhM;4$JjSPFtA;P_z|lomIS#@$I$|*oO5MsD3KG*jp1Elz zwUpBaCdj9F!X&cHs?E}bWn{jwN^ghEwXIP5D0uZx!la$7L|>Nk+XX>?uYqk7EnZW1 z^=H|uWENX*?>66f^O%Le@O^9@5(0J@L%W>;Iwy-8p6Qsfi%QWdzWx=b#Mi*+U|9PvWdvPx=qeCkR3lLF_8IPq}xPs;V?7tj%!@?mx0r|+_yRj-UW z{pRLU>Y4TNIK>PR!eo6&METlD31IMChhNDs!#?&;uQinblQUfWK2z=XPsKx$4?5OF zPvbj-J-6!EFzxu>7}*97zRqPaqR|I$ahpf%wsxME?Kt20dA*06RH$WYdqwEPjQ59Q z7B_Ok(~W&kgsep04Q;ZbkM6uE*=U^n>~wj%(C6Wjg8so{SKs9nU1ZtzDK(taqgB6L z8K7zB4D0$WzJB?wzxTq`PqYg4=-k`Ig%}1OiLg~?bpO>?4-K+gX^gDvX-`h{A1Xea zebnFup{-8pY@5lzs#xHoMdgI8hdBAWg7JUpEvBaFQfl$h3#uLFy&o;YE zX8S}|;rCWw-&8jj;;Q*Fx?Pm>UE+fE9`(kWw97uNlK4Jp;TON#_2xUJZ;sjCn(J!` z_r@Noq8T4Q#(k+6dkIw6JV-KESI^8L4voqzWV(K#%$DB|i8rvDWF`!H$V|8nwWjY( z>-k|e7RBDY0v0_ctiy8l{`I{o26cNBGjW9@-$U^R>6On(IsQH6eiuU>i@v`Rto>R$ z8}z;`>uXI=d$Z4xkMh&SIgYVv>8&>U&GhV{g*GvMC{ce#w}F=2w3KotU)owRz~V-| z#LdJ6|ARvQ2~s4#*E1}cI!n8zgcK2RPG&iqtA-M<_JMQ#W`nk=&Ij&}t9j9^+PSRb zI-%8(UFA@E*^ZORrBZs;ckiIJa19CW*3=V5)!jK zUyF`0+jz&_*?n?G#Ks?DYmS(VG1KfRd;=vqZIk4TD9o=R~mYJPshwr zhJrMcFqC@%D&^x=#oY?7qg68P2OuU`l49A^-W)MP;L;`A4ZC{KJKc@)NrHFt`d9H` z+ro@m*48VEImTr*X1k)OtzpDVZIJM6s#eL zB3esZ0v3Qb;v4|@1A&Nn0%rjkzz!KVlv98gLWaovJa8J({1Fa7(wqiP{EU(Ttbh6i zAw)$s41i#a@~@L`d>Am&AdK09$YO{I{oegCxiESPg3+IT^?n{PBmmtF!sre}XF@Ql zIv0aRq0yV9d^*f+{_?Igy76jQ`p0$wi2v6nC_XFz5r}w*7l$E%7-5WwfiWb#nV+aZ zBtq&$b)uFk(FsA#4OCJ2iT~pdqhx&-Ue_4`M^U8&1DjwcSRk?lE#wnnL)D%S*kg)3R-*Pb1?uszz|jl5ah z#igIUDj`rXAJBa{$KooQu7th z7&z3-#Z)sapM<6+U)HN$nd;d?tvn&MMea_)*n?TS@TUdlJl7uRwlH7Qo=LJi9JcPa zOGz!|A8ZeS9;U7Rk=m5x2CL_HO4ZY1!p2CCTW+B-C;*i&56MAzq{>pl zDAW%S4FQnY2JP6OjrwyV4;B{7g~9w@OXT(-wL}3ze)dKJkVwl*M}A0^U#pYPog}QikYxg;a8n{+B_IlJNZq8`c9nL zI{Efg-F&*>_HJGNyN2cm)>Zd;bJLia5z_|P86_KNPFJ2jkhDiHIv6FkeL-xdUq1as zZre#4<@;E`mS50~nK~QDY{KZJ&`R~P7dmIJWdv9jdcC;j>-C|g__o&Nh6=7tQsRSK zdWyg0MNglM3?K%J{yy$C&Ph0J{;9@_W^-^D0_>n!EiswIlp+Ns__-F1S z`=%NpeY$v8&8?e&yJRr