Add credential verification helpers

This commit is contained in:
Jordan Wages 2026-07-20 00:20:55 -05:00
commit 8b373ebfe8
2 changed files with 108 additions and 36 deletions

View file

@ -13,7 +13,7 @@ namespace Tests.Helpers
internal class SecurityHelperTests
{
private const string Password = "TestPassword";
private static readonly byte[] Salt = SecurityHelper.GetSalt();
private static readonly byte[] Salt = SecurityHelper.GetRandomBytes(32);
[Test]
public void CompareHashedPassword_WithSamePassword_ShouldReturnTrue()
@ -82,6 +82,28 @@ namespace Tests.Helpers
Assert.AreEqual(password1.Hash, password2.Hash);
}
[Test]
public void VerifyPbkdf2_WithPersistedCredential_ReturnsExpectedResult()
{
var credential = SecurityHelper.Pbkdf2(Password, Salt);
Assert.Multiple(() =>
{
Assert.That(SecurityHelper.VerifyPbkdf2(Password, credential.Hash, credential.Salt), Is.True);
Assert.That(SecurityHelper.VerifyPbkdf2("WrongPassword", credential.Hash, credential.Salt), Is.False);
});
}
[Test]
public void HashOpaqueSecret_WithSameSecret_ReturnsStableDigest()
{
var first = SecurityHelper.HashOpaqueSecret("opaque-secret");
var second = SecurityHelper.HashOpaqueSecret("opaque-secret");
Assert.That(first, Is.EqualTo(second));
Assert.That(first, Is.Not.EqualTo("opaque-secret"));
}
//[Test]
//public void GetPassword_WithPBKDF2Algorithm_ShouldReturnValidPasswordObject()
//{