public static void SuccessfullyVerifyPasswordGeneratedForTheSpecifiedIterationNumber(string password, ulong iterationNumber) { var authenticator = new Authenticator(); var verifier = new PasswordVerifier(authenticator); var(isVerified, synchronizationValue) = verifier.VerifyCounterBasedPassword(password, Secret, iterationNumber); Assert.True(isVerified && synchronizationValue == iterationNumber); }
public static void SuccessfullyVerifyPasswordGeneratedWithinTheConfiguredSynchronizationWindow(string password, ulong iterationNumber) { var counterValue = 0uL; // 0 is not one of the input values for iterationNumber var authenticator = new Authenticator(); var verifier = new PasswordVerifier(authenticator, options => options.SynchronizationWindowSize = 13); var(isVerified, synchronizationValue) = verifier.VerifyCounterBasedPassword(password, Secret, counterValue); Assert.True(isVerified && synchronizationValue == iterationNumber); }
[InlineData("520489")] // 9 public static void FailToVerifyPasswordGeneratedOutsideTheConfiguredSynchronizationWindow(string password) { var counterValue = 0uL; var authenticator = new Authenticator(); var verifier = new PasswordVerifier(authenticator, options => options.SynchronizationWindowSize = 7); var(isVerified, synchronizationValue) = verifier.VerifyCounterBasedPassword(password, Secret, counterValue); Assert.False(isVerified); }
public static void FailToVerifyPasswordGeneratedForAnIterationBeforeTheCounterValue() { var password = "******"; // iterationNumber = 7 var counterValue = 9uL; var authenticator = new Authenticator(); var verifier = new PasswordVerifier(authenticator); var(isVerified, synchronizationValue) = verifier.VerifyCounterBasedPassword(password, Secret, counterValue); Assert.False(isVerified); }