Generalize password hash comparison

This commit is contained in:
Jordan Wages 2026-07-20 00:30:37 -05:00
commit 8405d09992
2 changed files with 61 additions and 29 deletions

View file

@ -83,14 +83,17 @@ namespace Tests.Helpers
}
[Test]
public void VerifyPbkdf2_WithPersistedCredential_ReturnsExpectedResult()
public void CompareHashedPassword_WithPersistedHashAndSalt_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);
Assert.That(SecurityHelper.CompareHashedPassword<Pbkdf2Algorithm>(credential.Hash, Password, credential.Salt), Is.True);
Assert.That(SecurityHelper.CompareHashedPassword<Pbkdf2Algorithm>(credential.Hash, "WrongPassword", credential.Salt), Is.False);
Assert.That(SecurityHelper.CompareHashedPassword<Pbkdf2Algorithm>(
Convert.ToBase64String(credential.Hash), Password, Convert.ToBase64String(credential.Salt)), Is.True);
Assert.That(SecurityHelper.CompareHashedPassword<Pbkdf2Algorithm>("not-base64", Password, "not-base64"), Is.False);
});
}