From cfbbe10fdbe70bd4a9506b61a2be6712a076c476 Mon Sep 17 00:00:00 2001 From: Andreas Coroiu Date: Mon, 11 Sep 2023 14:05:19 +0200 Subject: [PATCH] [PM-3807] feat: remove standalone Fido2Key --- src/Api/Vault/Controllers/SyncController.cs | 20 ++------------- .../Models/Request/CipherRequestModel.cs | 25 ------------------- .../Models/Response/CipherResponseModel.cs | 6 ----- src/Core/Vault/Enums/CipherType.cs | 1 - .../Vault/Models/Data/CipherFido2KeyData.cs | 18 ------------- 5 files changed, 2 insertions(+), 68 deletions(-) delete mode 100644 src/Core/Vault/Models/Data/CipherFido2KeyData.cs diff --git a/src/Api/Vault/Controllers/SyncController.cs b/src/Api/Vault/Controllers/SyncController.cs index 5b85d7f6a5e3..3df216ba9c6b 100644 --- a/src/Api/Vault/Controllers/SyncController.cs +++ b/src/Api/Vault/Controllers/SyncController.cs @@ -1,6 +1,4 @@ using Bit.Api.Vault.Models.Response; -using Bit.Core; -using Bit.Core.Context; using Bit.Core.Entities; using Bit.Core.Enums; using Bit.Core.Enums.Provider; @@ -10,7 +8,6 @@ using Bit.Core.Services; using Bit.Core.Settings; using Bit.Core.Tools.Repositories; -using Bit.Core.Vault.Models.Data; using Bit.Core.Vault.Repositories; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -31,8 +28,6 @@ public class SyncController : Controller private readonly IPolicyRepository _policyRepository; private readonly ISendRepository _sendRepository; private readonly GlobalSettings _globalSettings; - private readonly ICurrentContext _currentContext; - private readonly Version _fido2KeyCipherMinimumVersion = new Version(Constants.Fido2KeyCipherMinimumVersion); public SyncController( IUserService userService, @@ -44,8 +39,7 @@ public SyncController( IProviderUserRepository providerUserRepository, IPolicyRepository policyRepository, ISendRepository sendRepository, - GlobalSettings globalSettings, - ICurrentContext currentContext) + GlobalSettings globalSettings) { _userService = userService; _folderRepository = folderRepository; @@ -57,7 +51,6 @@ public SyncController( _policyRepository = policyRepository; _sendRepository = sendRepository; _globalSettings = globalSettings; - _currentContext = currentContext; } [HttpGet("")] @@ -79,7 +72,7 @@ await _providerUserRepository.GetManyOrganizationDetailsByUserAsync(user.Id, var hasEnabledOrgs = organizationUserDetails.Any(o => o.Enabled); var folders = await _folderRepository.GetManyByUserIdAsync(user.Id); var allCiphers = await _cipherRepository.GetManyByUserIdAsync(user.Id, hasEnabledOrgs); - var ciphers = FilterFidoKeys(allCiphers); + var ciphers = allCiphers; var sends = await _sendRepository.GetManyByUserIdAsync(user.Id); IEnumerable collections = null; @@ -100,13 +93,4 @@ await _providerUserRepository.GetManyOrganizationDetailsByUserAsync(user.Id, collectionCiphersGroupDict, excludeDomains, policies, sends); return response; } - - private ICollection FilterFidoKeys(ICollection ciphers) - { - if (_currentContext.ClientVersion >= _fido2KeyCipherMinimumVersion) - { - return ciphers; - } - return ciphers.Where(c => c.Type != Core.Vault.Enums.CipherType.Fido2Key).ToList(); - } } diff --git a/src/Api/Vault/Models/Request/CipherRequestModel.cs b/src/Api/Vault/Models/Request/CipherRequestModel.cs index 1c42ab86c2b5..4ce5e8f4079e 100644 --- a/src/Api/Vault/Models/Request/CipherRequestModel.cs +++ b/src/Api/Vault/Models/Request/CipherRequestModel.cs @@ -82,9 +82,6 @@ public Cipher ToCipher(Cipher existingCipher) case CipherType.SecureNote: existingCipher.Data = JsonSerializer.Serialize(ToCipherSecureNoteData(), JsonHelpers.IgnoreWritingNull); break; - case CipherType.Fido2Key: - existingCipher.Data = JsonSerializer.Serialize(ToCipherFido2KeyData(), JsonHelpers.IgnoreWritingNull); - break; default: throw new ArgumentException("Unsupported type: " + nameof(Type) + "."); } @@ -232,28 +229,6 @@ private CipherSecureNoteData ToCipherSecureNoteData() Type = SecureNote.Type, }; } - - private CipherFido2KeyData ToCipherFido2KeyData() - { - return new CipherFido2KeyData - { - Name = Name, - Notes = Notes, - Fields = Fields?.Select(f => f.ToCipherFieldData()), - PasswordHistory = PasswordHistory?.Select(ph => ph.ToCipherPasswordHistoryData()), - - CredentialId = Fido2Key.CredentialId, - KeyAlgorithm = Fido2Key.KeyAlgorithm, - KeyType = Fido2Key.KeyType, - KeyCurve = Fido2Key.KeyCurve, - KeyValue = Fido2Key.KeyValue, - RpId = Fido2Key.RpId, - RpName = Fido2Key.RpName, - UserHandle = Fido2Key.UserHandle, - UserDisplayName = Fido2Key.UserDisplayName, - Counter = Fido2Key.Counter - }; - } } public class CipherWithIdRequestModel : CipherRequestModel diff --git a/src/Api/Vault/Models/Response/CipherResponseModel.cs b/src/Api/Vault/Models/Response/CipherResponseModel.cs index df73827456d6..90522926183e 100644 --- a/src/Api/Vault/Models/Response/CipherResponseModel.cs +++ b/src/Api/Vault/Models/Response/CipherResponseModel.cs @@ -48,12 +48,6 @@ public CipherMiniResponseModel(Cipher cipher, IGlobalSettings globalSettings, bo cipherData = identityData; Identity = new CipherIdentityModel(identityData); break; - case CipherType.Fido2Key: - var fido2KeyData = JsonSerializer.Deserialize(cipher.Data); - Data = fido2KeyData; - cipherData = fido2KeyData; - Fido2Key = new CipherFido2KeyModel(fido2KeyData); - break; default: throw new ArgumentException("Unsupported " + nameof(Type) + "."); } diff --git a/src/Core/Vault/Enums/CipherType.cs b/src/Core/Vault/Enums/CipherType.cs index 9abb6330dfe3..f3c7a90f454e 100644 --- a/src/Core/Vault/Enums/CipherType.cs +++ b/src/Core/Vault/Enums/CipherType.cs @@ -8,5 +8,4 @@ public enum CipherType : byte SecureNote = 2, Card = 3, Identity = 4, - Fido2Key = 5, } diff --git a/src/Core/Vault/Models/Data/CipherFido2KeyData.cs b/src/Core/Vault/Models/Data/CipherFido2KeyData.cs deleted file mode 100644 index ab4296953bc0..000000000000 --- a/src/Core/Vault/Models/Data/CipherFido2KeyData.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace Bit.Core.Vault.Models.Data; - -public class CipherFido2KeyData : CipherData -{ - public CipherFido2KeyData() { } - - public string CredentialId { get; set; } - public string KeyType { get; set; } - public string KeyAlgorithm { get; set; } - public string KeyCurve { get; set; } - public string KeyValue { get; set; } - public string RpId { get; set; } - public string RpName { get; set; } - public string UserHandle { get; set; } - public string UserDisplayName { get; set; } - public string Counter { get; set; } - public string Discoverable { get; set; } -}