mirror of
https://github.com/wismna/ModernKeePassLib.git
synced 2025-10-04 16:10:16 -04:00
Setup solution
This commit is contained in:
34
ModernKeePassLib.Test/Keys/CompositeKeyTests.cs
Normal file
34
ModernKeePassLib.Test/Keys/CompositeKeyTests.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using ModernKeePassLib.Cryptography.KeyDerivation;
|
||||
using ModernKeePassLib.Keys;
|
||||
using ModernKeePassLib.Utility;
|
||||
using Xunit;
|
||||
|
||||
namespace ModernKeePassLib.Test.Keys
|
||||
{
|
||||
public class CompositeKeyTests
|
||||
{
|
||||
[Fact]
|
||||
public void TestGenerateKey32()
|
||||
{
|
||||
var originalKey = new byte[32];
|
||||
var expectedKey = new byte[]
|
||||
{
|
||||
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.NotNull(key);
|
||||
var keyData = key.ReadData();
|
||||
Assert.True(MemUtil.ArraysEqual(keyData, expectedKey));
|
||||
}
|
||||
}
|
||||
}
|
34
ModernKeePassLib.Test/Keys/KcpCustomKeyTests.cs
Normal file
34
ModernKeePassLib.Test/Keys/KcpCustomKeyTests.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using ModernKeePassLib.Keys;
|
||||
using ModernKeePassLib.Utility;
|
||||
using Xunit;
|
||||
|
||||
namespace ModernKeePassLib.Test.Keys
|
||||
{
|
||||
public class KcpCustomKeyTests
|
||||
{
|
||||
static readonly byte[] testData =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
[Fact]
|
||||
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.True(MemUtil.ArraysEqual(keyData, testData));
|
||||
|
||||
key = new KcpCustomKey("test2", testData, true);
|
||||
keyData = key.KeyData.ReadData();
|
||||
Assert.True(MemUtil.ArraysEqual(keyData, expectedHash));
|
||||
}
|
||||
}
|
||||
}
|
82
ModernKeePassLib.Test/Keys/KcpKeyFileTests.cs
Normal file
82
ModernKeePassLib.Test/Keys/KcpKeyFileTests.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using ModernKeePassLib.Keys;
|
||||
using ModernKeePassLib.Utility;
|
||||
using Windows.Storage;
|
||||
using Xunit;
|
||||
|
||||
namespace ModernKeePassLib.Test.Keys
|
||||
{
|
||||
public class KcpKeyFileTests
|
||||
{
|
||||
private const string TestCreateFile = "TestCreate.xml";
|
||||
private const string TestKey = "0123456789";
|
||||
|
||||
private const string ExpectedFileStart =
|
||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" +
|
||||
"<KeyFile>\r\n" +
|
||||
"\t<Meta>\r\n" +
|
||||
"\t\t<Version>1.00</Version>\r\n" +
|
||||
"\t</Meta>\r\n" +
|
||||
"\t<Key>\r\n" +
|
||||
"\t\t<Data>";
|
||||
|
||||
private const string ExpectedFileEnd = "</Data>\r\n\t</Key>\r\n</KeyFile>";
|
||||
|
||||
[Fact]
|
||||
public void TestConstruct()
|
||||
{
|
||||
var expectedKeyData = new byte[]
|
||||
{
|
||||
0x95, 0x94, 0xdc, 0xb9, 0x91, 0xc6, 0x65, 0xa0,
|
||||
0x81, 0xf6, 0x6f, 0xca, 0x07, 0x1a, 0x30, 0xd1,
|
||||
0x1d, 0x65, 0xcf, 0x8d, 0x9c, 0x60, 0xfb, 0xe6,
|
||||
0x45, 0xfc, 0xc8, 0x92, 0xbd, 0xeb, 0xaf, 0xc3
|
||||
};
|
||||
|
||||
var folder = StorageFolder.GetFolderFromPathAsync(Path.GetTempPath()).GetAwaiter().GetResult();
|
||||
var file = folder.CreateFileAsync(TestCreateFile, CreationCollisionOption.ReplaceExisting).GetAwaiter().GetResult();
|
||||
using (var fs = file.OpenStreamForWriteAsync().GetAwaiter().GetResult())
|
||||
{
|
||||
using (var sw = new StreamWriter(fs))
|
||||
{
|
||||
sw.Write(ExpectedFileStart);
|
||||
sw.Write(TestKey);
|
||||
sw.Write(ExpectedFileEnd);
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var keyFile = new KcpKeyFile(file);
|
||||
var keyData = keyFile.KeyData.ReadData();
|
||||
Assert.True(MemUtil.ArraysEqual(keyData, expectedKeyData));
|
||||
}
|
||||
finally
|
||||
{
|
||||
file.DeleteAsync().GetAwaiter().GetResult();
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestCreate()
|
||||
{
|
||||
var folder = StorageFolder.GetFolderFromPathAsync(Path.GetTempPath()).GetAwaiter().GetResult();
|
||||
var file = folder.CreateFileAsync(TestCreateFile, CreationCollisionOption.ReplaceExisting).GetAwaiter().GetResult();
|
||||
KcpKeyFile.Create(file, null);
|
||||
try
|
||||
{
|
||||
var fileContents = FileIO.ReadTextAsync(file).GetAwaiter().GetResult();
|
||||
|
||||
Assert.Equal(185, fileContents.Length);
|
||||
Assert.StartsWith(ExpectedFileStart, fileContents);
|
||||
Assert.EndsWith(ExpectedFileEnd, fileContents);
|
||||
}
|
||||
finally
|
||||
{
|
||||
file.DeleteAsync().GetAwaiter().GetResult();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
28
ModernKeePassLib.Test/Keys/KcpPasswordTests.cs
Normal file
28
ModernKeePassLib.Test/Keys/KcpPasswordTests.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using ModernKeePassLib.Keys;
|
||||
using ModernKeePassLib.Utility;
|
||||
using Xunit;
|
||||
|
||||
namespace ModernKeePassLib.Test.Keys
|
||||
{
|
||||
public class KcpPasswordTests
|
||||
{
|
||||
const string testPassword = "password";
|
||||
|
||||
[Fact]
|
||||
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.True(MemUtil.ArraysEqual(keyData, expectedHash));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user