1
0
mirror of https://github.com/bitwarden/server synced 2026-01-10 04:23:31 +00:00
Files
server/src/Api/Models/Response/TwoFactor/TwoFactorAuthenticatorResponseModel.cs
2021-12-14 16:05:07 +01:00

37 lines
1.0 KiB
C#

using System;
using Bit.Core.Enums;
using Bit.Core.Models.Api;
using Bit.Core.Models.Table;
using OtpNet;
namespace Bit.Api.Models.Response.TwoFactor
{
public class TwoFactorAuthenticatorResponseModel : ResponseModel
{
public TwoFactorAuthenticatorResponseModel(User user)
: base("twoFactorAuthenticator")
{
if (user == null)
{
throw new ArgumentNullException(nameof(user));
}
var provider = user.GetTwoFactorProvider(TwoFactorProviderType.Authenticator);
if (provider?.MetaData?.ContainsKey("Key") ?? false)
{
Key = (string)provider.MetaData["Key"];
Enabled = provider.Enabled;
}
else
{
var key = KeyGeneration.GenerateRandomKey(20);
Key = Base32Encoding.ToString(key);
Enabled = false;
}
}
public bool Enabled { get; set; }
public string Key { get; set; }
}
}