Beispiel #1
0
        public (string Otp, string OtpVerificationToken) GenerateAndStoreOtp(OtpOptions otpOptions)
        {
            var otp   = GenerateOtp(otpOptions);
            var token = _otpStorage.PutOtp(otp);

            return(otp, token);
        }
Beispiel #2
0
        public (string Otp, string OtpVerificationToken) GenerateAndStoreOtp(OtpOptions otpOptions)
        {
            var otp = GenerateOtp(otpOptions);

            if (_otpStorage == null)
            {
                throw new ArgumentNullException(nameof(_otpStorage), $"No OTP Storage provided for storing OTP");
            }

            var token = _otpStorage.PutOtp(otp, otpOptions.Expiry);

            return(otp, token);
        }
Beispiel #3
0
 private string GenerateOtpInternal(OtpOptions otpOptions)
 {
     if (!otpOptions.ShouldBeCryptographicallyStrong)
     {
         _randomProvider = new SimpleRandomProvider();
     }
     else
     {
         _randomProvider = new CryptoRandomProvider();
     }
     char[] charset = new char[] { };
     if (otpOptions.OtpContents.HasFlag(OtpContents.Number))
     {
         charset = Enumerable.Range(0, 9).Select(x => char.Parse(x.ToString())).ToArray();
     }
     return(_randomProvider.GetRandom(otpOptions.Length, charset));
 }
Beispiel #4
0
 public string GenerateOtp(OtpOptions otpOptions)
 {
     return(GenerateOtpInternal(otpOptions));
 }