30 lines
855 B
C#
30 lines
855 B
C#
using OtpNet;
|
|
|
|
namespace EnvelopeGenerator.Application.Common.Extensions;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public static class StringExtension
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="totp"></param>
|
|
/// <param name="secret"></param>
|
|
/// <returns></returns>
|
|
public static bool IsValidTotp(this string totp, string secret)
|
|
{
|
|
var secret_bytes = Base32Encoding.ToBytes(secret);
|
|
var secret_totp = new Totp(secret_bytes);
|
|
return secret_totp.VerifyTotp(totp, out _, VerificationWindow.RfcSpecifiedNetworkDelay);
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="seperator"></param>
|
|
/// <param name="values"></param>
|
|
/// <returns></returns>
|
|
public static string Join(this IEnumerable<string> values, string seperator) => string.Join(seperator, values);
|
|
} |