DSInternals/Src/DSInternals.Common.Test/Cryptography/OrgIdHashTester.cs
2015-12-26 23:44:43 +01:00

54 lines
2.0 KiB
C#

using DSInternals.Common;
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Security;
namespace DSInternals.Common.Cryptography.Test
{
[TestClass]
public class OrgIdHashTester
{
[TestMethod]
public void OrgIdHash_TestVector1()
{
SecureString password = "Pa$$w0rd".ToSecureString();
byte[] salt = "317ee9d1dec6508fa510".HexToBinary();
string result = OrgIdHash.ComputeFormattedHash(password, salt);
string expected = "v1;PPH1_MD4,317ee9d1dec6508fa510,100,f4a257ffec53809081a605ce8ddedfbc9df9777b80256763bc0a6dd895ef404f;";
Assert.AreEqual(expected, result);
}
[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void OrgIdHash_NullInput()
{
SecureString password = null;
byte[] salt = "317ee9d1dec6508fa510".HexToBinary();
string result = OrgIdHash.ComputeFormattedHash(password, salt);
}
[TestMethod]
public void OrgIdHash_EmptyInput()
{
SecureString password = string.Empty.ToSecureString();
byte[] salt = "317ee9d1dec6508fa510".HexToBinary();
string result = OrgIdHash.ComputeFormattedHash(password, salt);
string expected = "v1;PPH1_MD4,317ee9d1dec6508fa510,100,f56b3637eb57e927438c6d0ebbd69d1d95f8e849912915a6733a33921c8e4806;";
Assert.AreEqual(expected, result);
}
[TestMethod]
public void OrgIdHash_SaltLength()
{
byte[] salt = OrgIdHash.GenerateSalt();
Assert.AreEqual(OrgIdHash.SaltSize, salt.Length);
}
[TestMethod]
public void OrgIdHash_HashLength()
{
SecureString pwd = "Pa$$w0rd".ToSecureString();
byte[] salt = OrgIdHash.GenerateSalt();
byte[] hash = OrgIdHash.ComputeHash(pwd, salt);
Assert.AreEqual(OrgIdHash.HashSize, hash.Length);
}
}
}