49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
using OtpNet;
|
|
using System.Globalization;
|
|
|
|
namespace EnvelopeGenerator.Application.Configurations
|
|
{
|
|
public class TotpSmsParams
|
|
{
|
|
/// <summary>
|
|
/// The unit is second.
|
|
/// </summary>
|
|
public int TotpStep { get; init; } = 90;
|
|
|
|
public string Format { get; init; } = "Ihr 2FA-Passwort lautet {0}. Gültig bis {1}";
|
|
|
|
public ExpirationHandler Expiration { get; init; } = new();
|
|
|
|
public VerificationWindow? TotpVerificationWindow { get; private init; } = VerificationWindow.RfcSpecifiedNetworkDelay;
|
|
|
|
private IEnumerable<int>? _tvwParams;
|
|
|
|
public IEnumerable<int>? TotpVerificationWindowParams
|
|
{
|
|
get => _tvwParams;
|
|
init
|
|
{
|
|
_tvwParams = value;
|
|
if(_tvwParams is not null)
|
|
TotpVerificationWindow = new(previous: _tvwParams.ElementAtOrDefault(0), future: _tvwParams.ElementAtOrDefault(0));
|
|
}
|
|
}
|
|
|
|
public class ExpirationHandler
|
|
{
|
|
public string CacheKeyFormat { get; init; } = "e{0}_r{1}_sms_code_expiration";
|
|
|
|
public string Format { get; init; } = "HH:mm:ss";
|
|
|
|
public string CultureName
|
|
{
|
|
get => _cultureInfo.Name;
|
|
init => _cultureInfo = new(value);
|
|
}
|
|
|
|
private CultureInfo _cultureInfo = new("de-DE");
|
|
|
|
public CultureInfo CultureInfo => _cultureInfo;
|
|
}
|
|
}
|
|
} |