Files
modernkeepasslib/ModernKeePassLib.Test/Cryptography/CryptoRandomStreamTests.cs

56 lines
1.7 KiB
C#
Raw Normal View History

2019-07-25 16:39:43 +02:00
using ModernKeePassLib.Cryptography;
using ModernKeePassLib.Utility;
using NUnit.Framework;
2019-07-25 16:39:43 +02:00
namespace ModernKeePassLib.Test.Cryptography
{
[TestFixture]
2019-07-25 16:39:43 +02:00
public class CryptoRandomStreamTests
{
private void TestGetRandomBytes(CryptoRandomStream stream)
{
const uint length = 16;
var bytes1 = stream.GetRandomBytes(length);
Assert.That((int)length, Is.EqualTo(bytes1.Length));
2019-07-25 16:39:43 +02:00
var bytes2 = stream.GetRandomBytes(length);
Assert.That(MemUtil.ArraysEqual(bytes2, bytes1), Is.False);
2019-07-25 16:39:43 +02:00
}
[Test]
2019-07-25 16:39:43 +02:00
public void TestGetRandomBytesCrsAlgorithmSalsa20()
{
var stream = new CryptoRandomStream(CrsAlgorithm.Salsa20, new byte[16]);
TestGetRandomBytes(stream);
}
[Test]
2019-07-25 16:39:43 +02:00
public void TestGetRandomBytesCrsAlgorithmArcFourVariant()
{
var stream = new CryptoRandomStream(CrsAlgorithm.ArcFourVariant, new byte[16]);
TestGetRandomBytes(stream);
}
private void TestGetRandomInt64(CryptoRandomStream stream)
{
var value1 = stream.GetRandomUInt64();
var value2 = stream.GetRandomUInt64();
Assert.That(value2, Is.Not.EqualTo(value1));
2019-07-25 16:39:43 +02:00
}
[Test]
2019-07-25 16:39:43 +02:00
public void TestGetRandomInt64AlgorithmSalsa20()
{
var stream = new CryptoRandomStream(CrsAlgorithm.Salsa20, new byte[16]);
TestGetRandomInt64(stream);
}
[Test]
2019-07-25 16:39:43 +02:00
public void TestGetRandomInt64AlgorithmArcFourVariant()
{
var stream = new CryptoRandomStream(CrsAlgorithm.ArcFourVariant, new byte[16]);
TestGetRandomInt64(stream);
}
}
}