2017-09-25 18:34:27 +02:00
|
|
|
|
using NUnit.Framework;
|
2017-10-23 18:48:46 +02:00
|
|
|
|
using ModernKeePassLib.Cryptography.KeyDerivation;
|
2017-09-26 15:38:58 +02:00
|
|
|
|
using ModernKeePassLib.Keys;
|
2017-09-25 18:34:27 +02:00
|
|
|
|
|
|
|
|
|
namespace ModernKeePassLib.Test.Shared.Keys
|
|
|
|
|
{
|
|
|
|
|
[TestFixture ()]
|
|
|
|
|
public class CompositeKeyTests
|
|
|
|
|
{
|
2017-10-23 18:48:46 +02:00
|
|
|
|
[Test]
|
2017-09-25 18:34:27 +02:00
|
|
|
|
public void TestGenerateKey32 ()
|
|
|
|
|
{
|
2017-10-23 18:48:46 +02:00
|
|
|
|
var originalKey = new byte[32];
|
|
|
|
|
var expectedKey = new byte[32] {
|
2017-09-25 18:34:27 +02:00
|
|
|
|
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
|
2017-10-23 18:48:46 +02:00
|
|
|
|
};
|
|
|
|
|
const ulong rounds = 1;
|
2017-09-25 18:34:27 +02:00
|
|
|
|
|
2017-10-23 18:48:46 +02:00
|
|
|
|
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));
|
2017-09-25 18:34:27 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|