Beispiel #1
0
        public void OneTimePassword_UsingSHA512_IsGeneratedCorrectlyForRfcTests(string dateTimeString, string expectedPassword)
        {
            // Arrange
            var dateTime = DateTime.ParseExact(dateTimeString, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);

            var otpGenerator = new TotpGenerator();

            // Act
            var password = otpGenerator.GeneratePassword(sha512RfcSecret, dateTime, 30, PasswordLengths.EightDigitPassword, Hmac.Sha512);

            // Assert
            Assert.Equal(expectedPassword, password);
        }
        public Task <string> Build(string purpose, string target, int lifeTimeSeconds, int maxErrorCount, string code, string?securityStamp = null)
        {
            if (purpose is null)
            {
                throw new ArgumentNullException(nameof(purpose));
            }
            if (target is null)
            {
                throw new ArgumentNullException(nameof(target));
            }
            if (Options.CurrentValue.LifeTimeSecond <= 0)
            {
                throw new InvalidOperationException("Invalid options: Shashlik.Captcha.LifeTimeSecond");
            }
            if (Options.CurrentValue.MaxErrorCount < 0 || Options.CurrentValue.MaxErrorCount > 99)
            {
                throw new InvalidOperationException("Invalid options: Shashlik.Captcha.MaxErrorCount, should be 0~99");
            }

            var key = GetKey(purpose, target, securityStamp);

            return(Task.FromResult(TotpGenerator.Generate(key).ToString()));
        }
 public TotpValidatorTests()
 {
     this.totpValidator = new TotpValidator();
     this.totpGenerator = new TotpGenerator();
 }
 public TotpValidatorTests()
 {
     totpGenerator = new TotpGenerator();
     totpValidator = new TotpValidator(totpGenerator);
 }
Beispiel #5
0
 /// <summary>
 /// Get current user's code
 /// </summary>
 public static string Generate(string secret)
 {
     _totpGenerator = new TotpGenerator();
     return(_totpGenerator.Generate(secret).ToString());
 }
 public TotpCatpcha(IOptionsMonitor <CaptchaOptions> options)
 {
     Options       = options;
     TotpGenerator = new TotpGenerator();
     TotpValidator = new TotpValidator(TotpGenerator);
 }