mirror of
https://github.com/bitwarden/server
synced 2026-01-10 04:23:31 +00:00
37 lines
1.0 KiB
C#
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; }
|
|
}
|
|
}
|