[PM-4054] Rename Fido2Key to Fido2Credential (#2821)

* PM-4054 Renamed Fido2Key to Fido2Credential on the entire codebase

* PM-4054 Renamed file Fido2KeyApi to Fido2CredentialApi
This commit is contained in:
Federico Maccaroni 2023-10-12 16:51:19 -03:00 committed by GitHub
parent bb2f1f0f5f
commit f2936c95fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 56 additions and 56 deletions

View File

@ -308,7 +308,7 @@ namespace Bit.App.Pages
public string PasswordVisibilityAccessibilityText => ShowPassword ? AppResources.PasswordIsVisibleTapToHide : AppResources.PasswordIsNotVisibleTapToShow;
public bool HasTotpValue => IsLogin && !string.IsNullOrEmpty(Cipher?.Login?.Totp);
public string SetupTotpText => $"{BitwardenIcons.Camera} {AppResources.SetupTotp}";
public bool ShowPasskeyInfo => Cipher?.HasFido2Key == true && !CloneMode;
public bool ShowPasskeyInfo => Cipher?.HasFido2Credential == true && !CloneMode;
public void Init()
{
@ -370,7 +370,7 @@ namespace Bit.App.Pages
if (Cipher.Type == CipherType.Login)
{
// passkeys can't be cloned
Cipher.Login.Fido2Keys = null;
Cipher.Login.Fido2Credentials = null;
}
}
if (appOptions?.OtpData != null && Cipher.Type == CipherType.Login)

View File

@ -199,12 +199,12 @@
Text="{u:I18n Passkey}"
StyleClass="box-label"
Margin="0,10,0,0"
IsVisible="{Binding Cipher.Login.MainFido2Key, Converter={StaticResource notNull}}"/>
IsVisible="{Binding Cipher.Login.MainFido2Credential, Converter={StaticResource notNull}}"/>
<Entry
Text="{Binding CreationDate}"
IsEnabled="False"
StyleClass="box-value,text-muted"
IsVisible="{Binding Cipher.Login.MainFido2Key, Converter={StaticResource notNull}}" />
IsVisible="{Binding Cipher.Login.MainFido2Credential, Converter={StaticResource notNull}}" />
<Grid StyleClass="box-row"
IsVisible="{Binding ShowTotp}"
AutomationId="ItemRow">

View File

@ -702,7 +702,7 @@ namespace Bit.App.Pages
private async Task<bool> CanCloneAsync()
{
if (!Cipher.HasFido2Key)
if (!Cipher.HasFido2Credential)
{
return true;
}

View File

@ -69,9 +69,9 @@ namespace Bit.Core
public const int MasterPasswordMinimumChars = 12;
public const int CipherKeyRandomBytesLength = 64;
public const string CipherKeyEncryptionMinServerVersion = "2023.9.1";
public const string DefaultFido2KeyType = "public-key";
public const string DefaultFido2KeyAlgorithm = "ECDSA";
public const string DefaultFido2KeyCurve = "P-256";
public const string DefaultFido2CredentialType = "public-key";
public const string DefaultFido2CredentialAlgorithm = "ECDSA";
public const string DefaultFido2CredentialCurve = "P-256";
public static readonly string[] AndroidAllClearCipherCacheKeys =
{

View File

@ -2,13 +2,13 @@
namespace Bit.Core.Models.Api
{
public class Fido2KeyApi
public class Fido2CredentialApi
{
public Fido2KeyApi()
public Fido2CredentialApi()
{
}
public Fido2KeyApi(Fido2Key fido2Key)
public Fido2CredentialApi(Fido2Credential fido2Key)
{
CredentialId = fido2Key.CredentialId?.EncryptedString;
Discoverable = fido2Key.Discoverable?.EncryptedString;
@ -25,9 +25,9 @@ namespace Bit.Core.Models.Api
public string CredentialId { get; set; }
public string Discoverable { get; set; }
public string KeyType { get; set; } = Constants.DefaultFido2KeyType;
public string KeyAlgorithm { get; set; } = Constants.DefaultFido2KeyAlgorithm;
public string KeyCurve { get; set; } = Constants.DefaultFido2KeyCurve;
public string KeyType { get; set; } = Constants.DefaultFido2CredentialType;
public string KeyAlgorithm { get; set; } = Constants.DefaultFido2CredentialAlgorithm;
public string KeyCurve { get; set; } = Constants.DefaultFido2CredentialCurve;
public string KeyValue { get; set; }
public string RpId { get; set; }
public string RpName { get; set; }

View File

@ -10,6 +10,6 @@ namespace Bit.Core.Models.Api
public string Password { get; set; }
public DateTime? PasswordRevisionDate { get; set; }
public string Totp { get; set; }
public List<Fido2KeyApi> Fido2Keys { get; set; }
public List<Fido2CredentialApi> Fido2Credentials { get; set; }
}
}

View File

@ -2,11 +2,11 @@
namespace Bit.Core.Models.Data
{
public class Fido2KeyData : Data
public class Fido2CredentialData : Data
{
public Fido2KeyData() { }
public Fido2CredentialData() { }
public Fido2KeyData(Fido2KeyApi apiData)
public Fido2CredentialData(Fido2CredentialApi apiData)
{
CredentialId = apiData.CredentialId;
Discoverable = apiData.Discoverable;
@ -23,9 +23,9 @@ namespace Bit.Core.Models.Data
public string CredentialId { get; set; }
public string Discoverable { get; set; }
public string KeyType { get; set; } = Constants.DefaultFido2KeyType;
public string KeyAlgorithm { get; set; } = Constants.DefaultFido2KeyAlgorithm;
public string KeyCurve { get; set; } = Constants.DefaultFido2KeyCurve;
public string KeyType { get; set; } = Constants.DefaultFido2CredentialType;
public string KeyAlgorithm { get; set; } = Constants.DefaultFido2CredentialAlgorithm;
public string KeyCurve { get; set; } = Constants.DefaultFido2CredentialCurve;
public string KeyValue { get; set; }
public string RpId { get; set; }
public string RpName { get; set; }

View File

@ -16,7 +16,7 @@ namespace Bit.Core.Models.Data
PasswordRevisionDate = data.PasswordRevisionDate;
Totp = data.Totp;
Uris = data.Uris?.Select(u => new LoginUriData(u)).ToList();
Fido2Keys = data.Fido2Keys?.Select(f => new Fido2KeyData(f)).ToList();
Fido2Credentials = data.Fido2Credentials?.Select(f => new Fido2CredentialData(f)).ToList();
}
public List<LoginUriData> Uris { get; set; }
@ -24,6 +24,6 @@ namespace Bit.Core.Models.Data
public string Password { get; set; }
public DateTime? PasswordRevisionDate { get; set; }
public string Totp { get; set; }
public List<Fido2KeyData> Fido2Keys { get; set; }
public List<Fido2CredentialData> Fido2Credentials { get; set; }
}
}

View File

@ -5,7 +5,7 @@ using Bit.Core.Models.View;
namespace Bit.Core.Models.Domain
{
public class Fido2Key : Domain
public class Fido2Credential : Domain
{
public static HashSet<string> EncryptableProperties => new HashSet<string>
{
@ -22,9 +22,9 @@ namespace Bit.Core.Models.Domain
nameof(Counter)
};
public Fido2Key() { }
public Fido2Credential() { }
public Fido2Key(Fido2KeyData data, bool alreadyEncrypted = false)
public Fido2Credential(Fido2CredentialData data, bool alreadyEncrypted = false)
{
BuildDomainModel(this, data, EncryptableProperties, alreadyEncrypted);
}
@ -41,14 +41,14 @@ namespace Bit.Core.Models.Domain
public EncString UserName { get; set; }
public EncString Counter { get; set; }
public async Task<Fido2KeyView> DecryptAsync(string orgId, SymmetricCryptoKey key = null)
public async Task<Fido2CredentialView> DecryptAsync(string orgId, SymmetricCryptoKey key = null)
{
return await DecryptObjAsync(new Fido2KeyView(), this, EncryptableProperties, orgId, key);
return await DecryptObjAsync(new Fido2CredentialView(), this, EncryptableProperties, orgId, key);
}
public Fido2KeyData ToFido2KeyData()
public Fido2CredentialData ToFido2CredentialData()
{
var data = new Fido2KeyData();
var data = new Fido2CredentialData();
BuildDataModel(this, data, EncryptableProperties);
return data;
}

View File

@ -15,7 +15,7 @@ namespace Bit.Core.Models.Domain
{
PasswordRevisionDate = obj.PasswordRevisionDate;
Uris = obj.Uris?.Select(u => new LoginUri(u, alreadyEncrypted)).ToList();
Fido2Keys = obj.Fido2Keys?.Select(f => new Fido2Key(f, alreadyEncrypted)).ToList();
Fido2Credentials = obj.Fido2Credentials?.Select(f => new Fido2Credential(f, alreadyEncrypted)).ToList();
BuildDomainModel(this, obj, new HashSet<string>
{
"Username",
@ -29,7 +29,7 @@ namespace Bit.Core.Models.Domain
public EncString Password { get; set; }
public DateTime? PasswordRevisionDate { get; set; }
public EncString Totp { get; set; }
public List<Fido2Key> Fido2Keys { get; set; }
public List<Fido2Credential> Fido2Credentials { get; set; }
public async Task<LoginView> DecryptAsync(string orgId, SymmetricCryptoKey key = null)
{
@ -47,12 +47,12 @@ namespace Bit.Core.Models.Domain
view.Uris.Add(await uri.DecryptAsync(orgId, key));
}
}
if (Fido2Keys != null)
if (Fido2Credentials != null)
{
view.Fido2Keys = new List<Fido2KeyView>();
foreach (var fido2Key in Fido2Keys)
view.Fido2Credentials = new List<Fido2CredentialView>();
foreach (var fido2Credential in Fido2Credentials)
{
view.Fido2Keys.Add(await fido2Key.DecryptAsync(orgId, key));
view.Fido2Credentials.Add(await fido2Credential.DecryptAsync(orgId, key));
}
}
return view;
@ -72,9 +72,9 @@ namespace Bit.Core.Models.Domain
{
l.Uris = Uris.Select(u => u.ToLoginUriData()).ToList();
}
if (Fido2Keys != null)
if (Fido2Credentials != null)
{
l.Fido2Keys = Fido2Keys.Select(f => f.ToFido2KeyData()).ToList();
l.Fido2Credentials = Fido2Credentials.Select(f => f.ToFido2CredentialData()).ToList();
}
return l;
}

View File

@ -32,7 +32,7 @@ namespace Bit.Core.Models.Request
Password = cipher.Login.Password?.EncryptedString,
PasswordRevisionDate = cipher.Login.PasswordRevisionDate,
Totp = cipher.Login.Totp?.EncryptedString,
Fido2Keys = cipher.Login.Fido2Keys?.Select(f => new Fido2KeyApi(f)).ToList()
Fido2Credentials = cipher.Login.Fido2Credentials?.Select(f => new Fido2CredentialApi(f)).ToList()
};
break;
case CipherType.Card:

View File

@ -121,6 +121,6 @@ namespace Bit.Core.Models.View
public bool IsClonable => OrganizationId is null;
public bool HasFido2Key => Type == CipherType.Login && Login?.HasFido2Keys == true;
public bool HasFido2Credential => Type == CipherType.Login && Login?.HasFido2Credentials == true;
}
}

View File

@ -3,13 +3,13 @@ using Bit.Core.Enums;
namespace Bit.Core.Models.View
{
public class Fido2KeyView : ItemView, ILaunchableView
public class Fido2CredentialView : ItemView, ILaunchableView
{
public string CredentialId { get; set; }
public string Discoverable { get; set; }
public string KeyType { get; set; } = Constants.DefaultFido2KeyType;
public string KeyAlgorithm { get; set; } = Constants.DefaultFido2KeyAlgorithm;
public string KeyCurve { get; set; } = Constants.DefaultFido2KeyCurve;
public string KeyType { get; set; } = Constants.DefaultFido2CredentialType;
public string KeyAlgorithm { get; set; } = Constants.DefaultFido2CredentialAlgorithm;
public string KeyCurve { get; set; } = Constants.DefaultFido2CredentialCurve;
public string KeyValue { get; set; }
public string RpId { get; set; }
public string RpName { get; set; }
@ -23,6 +23,6 @@ namespace Bit.Core.Models.View
public bool CanLaunch => !string.IsNullOrEmpty(RpId);
public string LaunchUri => $"https://{RpId}";
public bool IsUniqueAgainst(Fido2KeyView fido2View) => fido2View?.RpId != RpId || fido2View?.UserName != UserName;
public bool IsUniqueAgainst(Fido2CredentialView fido2View) => fido2View?.RpId != RpId || fido2View?.UserName != UserName;
}
}

View File

@ -20,7 +20,7 @@ namespace Bit.Core.Models.View
public DateTime? PasswordRevisionDate { get; set; }
public string Totp { get; set; }
public List<LoginUriView> Uris { get; set; }
public List<Fido2KeyView> Fido2Keys { get; set; }
public List<Fido2CredentialView> Fido2Credentials { get; set; }
public string Uri => HasUris ? Uris[0].Uri : null;
public string MaskedPassword => Password != null ? "••••••••" : null;
@ -28,8 +28,8 @@ namespace Bit.Core.Models.View
public bool CanLaunch => HasUris && Uris.Any(u => u.CanLaunch);
public string LaunchUri => HasUris ? Uris.FirstOrDefault(u => u.CanLaunch)?.LaunchUri : null;
public bool HasUris => (Uris?.Count ?? 0) > 0;
public bool HasFido2Keys => Fido2Keys?.Any() == true;
public Fido2KeyView MainFido2Key => HasFido2Keys ? Fido2Keys[0] : null;
public bool HasFido2Credentials => Fido2Credentials?.Any() == true;
public Fido2CredentialView MainFido2Credential => HasFido2Credentials ? Fido2Credentials[0] : null;
public override List<KeyValuePair<string, LinkedIdType>> LinkedFieldOptions
{

View File

@ -597,7 +597,7 @@ namespace Bit.Core.Services
private async Task<bool> ValidateCanBeSharedWithOrgAsync(CipherView cipher, string organizationId)
{
if (!cipher.HasFido2Key)
if (!cipher.HasFido2Credential)
{
return true;
}
@ -605,7 +605,7 @@ namespace Bit.Core.Services
var decCiphers = await GetAllDecryptedAsync();
return !decCiphers
.Where(c => c.OrganizationId == organizationId)
.Any(c => !cipher.Login.MainFido2Key.IsUniqueAgainst(c.Login?.MainFido2Key));
.Any(c => !cipher.Login.MainFido2Credential.IsUniqueAgainst(c.Login?.MainFido2Credential));
}
public async Task<Cipher> SaveAttachmentRawWithServerAsync(Cipher cipher, CipherView cipherView, string filename, byte[] data)
@ -1176,14 +1176,14 @@ namespace Bit.Core.Services
cipher.Login.Uris.Add(loginUri);
}
}
if (model.Login.HasFido2Keys)
if (model.Login.HasFido2Credentials)
{
cipher.Login.Fido2Keys = new List<Fido2Key>();
foreach (var fido2Key in model.Login.Fido2Keys)
cipher.Login.Fido2Credentials = new List<Fido2Credential>();
foreach (var fido2Credential in model.Login.Fido2Credentials)
{
var fido2KeyDomain = new Fido2Key();
await EncryptObjPropertyAsync(fido2Key, fido2KeyDomain, Fido2Key.EncryptableProperties, key);
cipher.Login.Fido2Keys.Add(fido2KeyDomain);
var fido2CredentialDomain = new Fido2Credential();
await EncryptObjPropertyAsync(fido2Credential, fido2CredentialDomain, Fido2Credential.EncryptableProperties, key);
cipher.Login.Fido2Credentials.Add(fido2CredentialDomain);
}
}
break;