public (string Otp, string OtpVerificationToken) GenerateAndStoreOtp(OtpOptions otpOptions) { var otp = GenerateOtp(otpOptions); var token = _otpStorage.PutOtp(otp); return(otp, token); }
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); }
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)); }
public string GenerateOtp(OtpOptions otpOptions) { return(GenerateOtpInternal(otpOptions)); }