From 24dcedb4982abe694d808bab96164395c5ee99d6 Mon Sep 17 00:00:00 2001 From: Andreas Coroiu Date: Fri, 10 Feb 2023 13:22:39 +0100 Subject: [PATCH] [EC-598] chore: collect all passkeys stuff under common folder --- apps/browser/src/background/main.background.ts | 6 +++--- apps/browser/src/browser/webauthn-utils.ts | 4 ++-- .../browser-fido2-user-interface.service.ts | 6 +++--- .../src/webauthn/content/messaging/message.ts | 2 +- .../webauthn/popup/fido2/fido2.component.ts | 2 +- .../src/vault/models/data/cipher.data.ts | 2 +- libs/common/src/vault/models/domain/cipher.ts | 2 +- .../src/vault/models/request/cipher.request.ts | 2 +- .../vault/models/response/cipher.response.ts | 2 +- .../src/vault/models/view/cipher.view.ts | 2 +- .../src/vault/services/cipher.service.ts | 2 +- ...fido2-user-interface.service.abstraction.ts | 0 .../abstractions}/fido2-utils.ts | 0 .../abstractions}/fido2.service.abstraction.ts | 0 .../{ => webauthn}/models/api/fido2-key.api.ts | 2 +- .../models/data/fido2-key.data.ts | 0 .../{ => webauthn}/models/domain/fido2-key.ts | 7 +++---- .../models/view/fido2-key.view.ts | 2 +- .../services}/credential-id.ts | 2 +- .../fido2 => webauthn/services}/ecdsa-utils.ts | 0 .../services}/fido2.service.ts | 18 +++++++++--------- .../noop-fido2-user-interface.service.ts | 4 ++-- 22 files changed, 33 insertions(+), 34 deletions(-) rename libs/common/src/{abstractions/fido2 => webauthn/abstractions}/fido2-user-interface.service.abstraction.ts (100%) rename libs/common/src/{abstractions/fido2 => webauthn/abstractions}/fido2-utils.ts (100%) rename libs/common/src/{abstractions/fido2 => webauthn/abstractions}/fido2.service.abstraction.ts (100%) rename libs/common/src/{ => webauthn}/models/api/fido2-key.api.ts (91%) rename libs/common/src/{ => webauthn}/models/data/fido2-key.data.ts (100%) rename libs/common/src/{ => webauthn}/models/domain/fido2-key.ts (91%) rename libs/common/src/{ => webauthn}/models/view/fido2-key.view.ts (86%) rename libs/common/src/{services/fido2 => webauthn/services}/credential-id.ts (95%) rename libs/common/src/{services/fido2 => webauthn/services}/ecdsa-utils.ts (100%) rename libs/common/src/{services/fido2 => webauthn/services}/fido2.service.ts (97%) rename libs/common/src/{services/fido2 => webauthn/services}/noop-fido2-user-interface.service.ts (70%) diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index 9ecafcf9d97..364871e1d7f 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -9,8 +9,6 @@ import { EncryptService } from "@bitwarden/common/abstractions/encrypt.service"; import { EventCollectionService as EventCollectionServiceAbstraction } from "@bitwarden/common/abstractions/event/event-collection.service"; import { EventUploadService as EventUploadServiceAbstraction } from "@bitwarden/common/abstractions/event/event-upload.service"; import { ExportService as ExportServiceAbstraction } from "@bitwarden/common/abstractions/export.service"; -import { Fido2UserInterfaceService as Fido2UserInterfaceServiceAbstraction } from "@bitwarden/common/abstractions/fido2/fido2-user-interface.service.abstraction"; -import { Fido2Service as Fido2ServiceAbstraction } from "@bitwarden/common/abstractions/fido2/fido2.service.abstraction"; import { FileUploadService as FileUploadServiceAbstraction } from "@bitwarden/common/abstractions/fileUpload.service"; import { I18nService as I18nServiceAbstraction } from "@bitwarden/common/abstractions/i18n.service"; import { LogService as LogServiceAbstraction } from "@bitwarden/common/abstractions/log.service"; @@ -60,7 +58,6 @@ import { MultithreadEncryptServiceImplementation } from "@bitwarden/common/servi import { EventCollectionService } from "@bitwarden/common/services/event/event-collection.service"; import { EventUploadService } from "@bitwarden/common/services/event/event-upload.service"; import { ExportService } from "@bitwarden/common/services/export.service"; -import { Fido2Service } from "@bitwarden/common/services/fido2/fido2.service"; import { FileUploadService } from "@bitwarden/common/services/fileUpload.service"; import { MemoryStorageService } from "@bitwarden/common/services/memoryStorage.service"; import { NotificationsService } from "@bitwarden/common/services/notifications.service"; @@ -85,6 +82,9 @@ import { CipherService } from "@bitwarden/common/vault/services/cipher.service"; import { FolderApiService } from "@bitwarden/common/vault/services/folder/folder-api.service"; import { SyncNotifierService } from "@bitwarden/common/vault/services/sync/sync-notifier.service"; import { SyncService } from "@bitwarden/common/vault/services/sync/sync.service"; +import { Fido2UserInterfaceService as Fido2UserInterfaceServiceAbstraction } from "@bitwarden/common/webauthn/abstractions/fido2-user-interface.service.abstraction"; +import { Fido2Service as Fido2ServiceAbstraction } from "@bitwarden/common/webauthn/abstractions/fido2.service.abstraction"; +import { Fido2Service } from "@bitwarden/common/webauthn/services/fido2.service"; import ContextMenusBackground from "../autofill/background/context-menus.background"; import NotificationBackground from "../autofill/background/notification.background"; diff --git a/apps/browser/src/browser/webauthn-utils.ts b/apps/browser/src/browser/webauthn-utils.ts index c11dfcb5d4f..88471eefbea 100644 --- a/apps/browser/src/browser/webauthn-utils.ts +++ b/apps/browser/src/browser/webauthn-utils.ts @@ -1,10 +1,10 @@ -import { Fido2Utils } from "@bitwarden/common/abstractions/fido2/fido2-utils"; +import { Fido2Utils } from "@bitwarden/common/webauthn/abstractions/fido2-utils"; import { CredentialAssertParams, CredentialAssertResult, CredentialRegistrationParams, CredentialRegistrationResult, -} from "@bitwarden/common/abstractions/fido2/fido2.service.abstraction"; +} from "@bitwarden/common/webauthn/abstractions/fido2.service.abstraction"; class BitAuthenticatorAttestationResponse implements AuthenticatorAttestationResponse { clientDataJSON: ArrayBuffer; diff --git a/apps/browser/src/services/fido2/browser-fido2-user-interface.service.ts b/apps/browser/src/services/fido2/browser-fido2-user-interface.service.ts index 304f529a9b2..d3ea3c2ec63 100644 --- a/apps/browser/src/services/fido2/browser-fido2-user-interface.service.ts +++ b/apps/browser/src/services/fido2/browser-fido2-user-interface.service.ts @@ -1,12 +1,12 @@ import { filter, first, lastValueFrom, Observable, Subject, takeUntil } from "rxjs"; +import { Utils } from "@bitwarden/common/misc/utils"; import { Fido2UserInterfaceService as Fido2UserInterfaceServiceAbstraction, NewCredentialParams, -} from "@bitwarden/common/abstractions/fido2/fido2-user-interface.service.abstraction"; -import { Utils } from "@bitwarden/common/misc/utils"; +} from "@bitwarden/common/webauthn/abstractions/fido2-user-interface.service.abstraction"; +import { RequestAbortedError } from "@bitwarden/common/webauthn/abstractions/fido2.service.abstraction"; -import { RequestAbortedError } from "../../../../../libs/common/src/abstractions/fido2/fido2.service.abstraction"; import { BrowserApi } from "../../browser/browserApi"; import { PopupUtilsService } from "../../popup/services/popup-utils.service"; diff --git a/apps/browser/src/webauthn/content/messaging/message.ts b/apps/browser/src/webauthn/content/messaging/message.ts index 17b952ecccf..3fb93c6a623 100644 --- a/apps/browser/src/webauthn/content/messaging/message.ts +++ b/apps/browser/src/webauthn/content/messaging/message.ts @@ -3,7 +3,7 @@ import { CredentialAssertResult, CredentialRegistrationParams, CredentialRegistrationResult, -} from "@bitwarden/common/abstractions/fido2/fido2.service.abstraction"; +} from "@bitwarden/common/webauthn/abstractions/fido2.service.abstraction"; export enum MessageType { CredentialCreationRequest, diff --git a/apps/browser/src/webauthn/popup/fido2/fido2.component.ts b/apps/browser/src/webauthn/popup/fido2/fido2.component.ts index c8d510ebb20..53a010f94ea 100644 --- a/apps/browser/src/webauthn/popup/fido2/fido2.component.ts +++ b/apps/browser/src/webauthn/popup/fido2/fido2.component.ts @@ -2,10 +2,10 @@ import { Component, HostListener, OnDestroy, OnInit } from "@angular/core"; import { ActivatedRoute } from "@angular/router"; import { concatMap, Subject, switchMap, takeUntil } from "rxjs"; -import { Fido2KeyView } from "@bitwarden/common/models/view/fido2-key.view"; import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { Fido2KeyView } from "@bitwarden/common/webauthn/models/view/fido2-key.view"; import { BrowserFido2Message, diff --git a/libs/common/src/vault/models/data/cipher.data.ts b/libs/common/src/vault/models/data/cipher.data.ts index fafc6d14c41..7c2d4bc3915 100644 --- a/libs/common/src/vault/models/data/cipher.data.ts +++ b/libs/common/src/vault/models/data/cipher.data.ts @@ -1,4 +1,4 @@ -import { Fido2KeyData } from "../../../models/data/fido2-key.data"; +import { Fido2KeyData } from "../../../webauthn/models/data/fido2-key.data"; import { CipherRepromptType } from "../../enums/cipher-reprompt-type"; import { CipherType } from "../../enums/cipher-type"; import { CipherResponse } from "../response/cipher.response"; diff --git a/libs/common/src/vault/models/domain/cipher.ts b/libs/common/src/vault/models/domain/cipher.ts index 055ab255904..d1c8117dc82 100644 --- a/libs/common/src/vault/models/domain/cipher.ts +++ b/libs/common/src/vault/models/domain/cipher.ts @@ -3,9 +3,9 @@ import { Jsonify } from "type-fest"; import { Decryptable } from "../../../interfaces/decryptable.interface"; import Domain from "../../../models/domain/domain-base"; import { EncString } from "../../../models/domain/enc-string"; -import { Fido2Key } from "../../../models/domain/fido2-key"; import { SymmetricCryptoKey } from "../../../models/domain/symmetric-crypto-key"; import { InitializerKey } from "../../../services/cryptography/initializer-key"; +import { Fido2Key } from "../../../webauthn/models/domain/fido2-key"; import { CipherRepromptType } from "../../enums/cipher-reprompt-type"; import { CipherType } from "../../enums/cipher-type"; import { CipherData } from "../data/cipher.data"; diff --git a/libs/common/src/vault/models/request/cipher.request.ts b/libs/common/src/vault/models/request/cipher.request.ts index b691811901a..dc0e14ea702 100644 --- a/libs/common/src/vault/models/request/cipher.request.ts +++ b/libs/common/src/vault/models/request/cipher.request.ts @@ -1,10 +1,10 @@ import { CardApi } from "../../../models/api/card.api"; -import { Fido2KeyApi } from "../../../models/api/fido2-key.api"; import { FieldApi } from "../../../models/api/field.api"; import { IdentityApi } from "../../../models/api/identity.api"; import { LoginUriApi } from "../../../models/api/login-uri.api"; import { LoginApi } from "../../../models/api/login.api"; import { SecureNoteApi } from "../../../models/api/secure-note.api"; +import { Fido2KeyApi } from "../../../webauthn/models/api/fido2-key.api"; import { CipherRepromptType } from "../../enums/cipher-reprompt-type"; import { CipherType } from "../../enums/cipher-type"; import { Cipher } from "../domain/cipher"; diff --git a/libs/common/src/vault/models/response/cipher.response.ts b/libs/common/src/vault/models/response/cipher.response.ts index be6b2c3ae50..7145301dfa8 100644 --- a/libs/common/src/vault/models/response/cipher.response.ts +++ b/libs/common/src/vault/models/response/cipher.response.ts @@ -1,10 +1,10 @@ import { CardApi } from "../../../models/api/card.api"; -import { Fido2KeyApi } from "../../../models/api/fido2-key.api"; import { FieldApi } from "../../../models/api/field.api"; import { IdentityApi } from "../../../models/api/identity.api"; import { LoginApi } from "../../../models/api/login.api"; import { SecureNoteApi } from "../../../models/api/secure-note.api"; import { BaseResponse } from "../../../models/response/base.response"; +import { Fido2KeyApi } from "../../../webauthn/models/api/fido2-key.api"; import { CipherRepromptType } from "../../enums/cipher-reprompt-type"; import { AttachmentResponse } from "./attachment.response"; diff --git a/libs/common/src/vault/models/view/cipher.view.ts b/libs/common/src/vault/models/view/cipher.view.ts index 21e75eeccd5..0b0afbe4be5 100644 --- a/libs/common/src/vault/models/view/cipher.view.ts +++ b/libs/common/src/vault/models/view/cipher.view.ts @@ -2,9 +2,9 @@ import { Jsonify } from "type-fest"; import { LinkedIdType } from "../../../enums/linkedIdType"; import { InitializerMetadata } from "../../../interfaces/initializer-metadata.interface"; -import { Fido2KeyView } from "../../../models/view/fido2-key.view"; import { View } from "../../../models/view/view"; import { InitializerKey } from "../../../services/cryptography/initializer-key"; +import { Fido2KeyView } from "../../../webauthn/models/view/fido2-key.view"; import { CipherRepromptType } from "../../enums/cipher-reprompt-type"; import { CipherType } from "../../enums/cipher-type"; import { LocalData } from "../data/local.data"; diff --git a/libs/common/src/vault/services/cipher.service.ts b/libs/common/src/vault/services/cipher.service.ts index 23e9a189442..a34af32e23c 100644 --- a/libs/common/src/vault/services/cipher.service.ts +++ b/libs/common/src/vault/services/cipher.service.ts @@ -17,10 +17,10 @@ import { AccountSettingsSettings } from "../../models/domain/account"; import Domain from "../../models/domain/domain-base"; import { EncArrayBuffer } from "../../models/domain/enc-array-buffer"; import { EncString } from "../../models/domain/enc-string"; -import { Fido2Key } from "../../models/domain/fido2-key"; import { SymmetricCryptoKey } from "../../models/domain/symmetric-crypto-key"; import { ErrorResponse } from "../../models/response/error.response"; import { View } from "../../models/view/view"; +import { Fido2Key } from "../../webauthn/models/domain/fido2-key"; import { CipherService as CipherServiceAbstraction } from "../abstractions/cipher.service"; import { CipherType } from "../enums/cipher-type"; import { CipherData } from "../models/data/cipher.data"; diff --git a/libs/common/src/abstractions/fido2/fido2-user-interface.service.abstraction.ts b/libs/common/src/webauthn/abstractions/fido2-user-interface.service.abstraction.ts similarity index 100% rename from libs/common/src/abstractions/fido2/fido2-user-interface.service.abstraction.ts rename to libs/common/src/webauthn/abstractions/fido2-user-interface.service.abstraction.ts diff --git a/libs/common/src/abstractions/fido2/fido2-utils.ts b/libs/common/src/webauthn/abstractions/fido2-utils.ts similarity index 100% rename from libs/common/src/abstractions/fido2/fido2-utils.ts rename to libs/common/src/webauthn/abstractions/fido2-utils.ts diff --git a/libs/common/src/abstractions/fido2/fido2.service.abstraction.ts b/libs/common/src/webauthn/abstractions/fido2.service.abstraction.ts similarity index 100% rename from libs/common/src/abstractions/fido2/fido2.service.abstraction.ts rename to libs/common/src/webauthn/abstractions/fido2.service.abstraction.ts diff --git a/libs/common/src/models/api/fido2-key.api.ts b/libs/common/src/webauthn/models/api/fido2-key.api.ts similarity index 91% rename from libs/common/src/models/api/fido2-key.api.ts rename to libs/common/src/webauthn/models/api/fido2-key.api.ts index 1b65ce36399..5850f65ce12 100644 --- a/libs/common/src/models/api/fido2-key.api.ts +++ b/libs/common/src/webauthn/models/api/fido2-key.api.ts @@ -1,4 +1,4 @@ -import { BaseResponse } from "../response/base.response"; +import { BaseResponse } from "../../../models/response/base.response"; export class Fido2KeyApi extends BaseResponse { keyType: "ECDSA"; diff --git a/libs/common/src/models/data/fido2-key.data.ts b/libs/common/src/webauthn/models/data/fido2-key.data.ts similarity index 100% rename from libs/common/src/models/data/fido2-key.data.ts rename to libs/common/src/webauthn/models/data/fido2-key.data.ts diff --git a/libs/common/src/models/domain/fido2-key.ts b/libs/common/src/webauthn/models/domain/fido2-key.ts similarity index 91% rename from libs/common/src/models/domain/fido2-key.ts rename to libs/common/src/webauthn/models/domain/fido2-key.ts index 4694d739c4b..4df2fe5d01e 100644 --- a/libs/common/src/models/domain/fido2-key.ts +++ b/libs/common/src/webauthn/models/domain/fido2-key.ts @@ -1,12 +1,11 @@ import { Jsonify } from "type-fest"; +import Domain from "../../../models/domain/domain-base"; +import { EncString } from "../../../models/domain/enc-string"; +import { SymmetricCryptoKey } from "../../../models/domain/symmetric-crypto-key"; import { Fido2KeyData } from "../data/fido2-key.data"; import { Fido2KeyView } from "../view/fido2-key.view"; -import Domain from "./domain-base"; -import { EncString } from "./enc-string"; -import { SymmetricCryptoKey } from "./symmetric-crypto-key"; - export class Fido2Key extends Domain { keyType: EncString; keyCurve: EncString; diff --git a/libs/common/src/models/view/fido2-key.view.ts b/libs/common/src/webauthn/models/view/fido2-key.view.ts similarity index 86% rename from libs/common/src/models/view/fido2-key.view.ts rename to libs/common/src/webauthn/models/view/fido2-key.view.ts index dd11128bc88..f69f09cc2fe 100644 --- a/libs/common/src/models/view/fido2-key.view.ts +++ b/libs/common/src/webauthn/models/view/fido2-key.view.ts @@ -1,6 +1,6 @@ import { Jsonify } from "type-fest"; -import { ItemView } from "../../vault/models/view/item.view"; +import { ItemView } from "../../../vault/models/view/item.view"; export class Fido2KeyView extends ItemView { keyType: "ECDSA"; diff --git a/libs/common/src/services/fido2/credential-id.ts b/libs/common/src/webauthn/services/credential-id.ts similarity index 95% rename from libs/common/src/services/fido2/credential-id.ts rename to libs/common/src/webauthn/services/credential-id.ts index e51a37dda73..58e8c89ae1b 100644 --- a/libs/common/src/services/fido2/credential-id.ts +++ b/libs/common/src/webauthn/services/credential-id.ts @@ -1,4 +1,4 @@ -import { Fido2Utils } from "../../abstractions/fido2/fido2-utils"; +import { Fido2Utils } from "../abstractions/fido2-utils"; export class InvalidCredentialIdEncodingError extends Error { constructor(readonly input: unknown) { diff --git a/libs/common/src/services/fido2/ecdsa-utils.ts b/libs/common/src/webauthn/services/ecdsa-utils.ts similarity index 100% rename from libs/common/src/services/fido2/ecdsa-utils.ts rename to libs/common/src/webauthn/services/ecdsa-utils.ts diff --git a/libs/common/src/services/fido2/fido2.service.ts b/libs/common/src/webauthn/services/fido2.service.ts similarity index 97% rename from libs/common/src/services/fido2/fido2.service.ts rename to libs/common/src/webauthn/services/fido2.service.ts index 17a2a3b0af7..4c616d8ab55 100644 --- a/libs/common/src/services/fido2/fido2.service.ts +++ b/libs/common/src/webauthn/services/fido2.service.ts @@ -1,7 +1,12 @@ import { CBOR } from "cbor-redux"; -import { Fido2UserInterfaceService } from "../../abstractions/fido2/fido2-user-interface.service.abstraction"; -import { Fido2Utils } from "../../abstractions/fido2/fido2-utils"; +import { Utils } from "../../misc/utils"; +import { CipherService } from "../../vault/abstractions/cipher.service"; +import { CipherType } from "../../vault/enums/cipher-type"; +import { Cipher } from "../../vault/models/domain/cipher"; +import { CipherView } from "../../vault/models/view/cipher.view"; +import { Fido2UserInterfaceService } from "../abstractions/fido2-user-interface.service.abstraction"; +import { Fido2Utils } from "../abstractions/fido2-utils"; import { CredentialAssertParams, CredentialAssertResult, @@ -9,13 +14,8 @@ import { CredentialRegistrationResult, Fido2Service as Fido2ServiceAbstraction, NoCredentialFoundError, -} from "../../abstractions/fido2/fido2.service.abstraction"; -import { Utils } from "../../misc/utils"; -import { Fido2KeyView } from "../../models/view/fido2-key.view"; -import { CipherService } from "../../vault/abstractions/cipher.service"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { Cipher } from "../../vault/models/domain/cipher"; -import { CipherView } from "../../vault/models/view/cipher.view"; +} from "../abstractions/fido2.service.abstraction"; +import { Fido2KeyView } from "../models/view/fido2-key.view"; import { CredentialId } from "./credential-id"; import { joseToDer } from "./ecdsa-utils"; diff --git a/libs/common/src/services/fido2/noop-fido2-user-interface.service.ts b/libs/common/src/webauthn/services/noop-fido2-user-interface.service.ts similarity index 70% rename from libs/common/src/services/fido2/noop-fido2-user-interface.service.ts rename to libs/common/src/webauthn/services/noop-fido2-user-interface.service.ts index 91df72c6757..fdd32bf5727 100644 --- a/libs/common/src/services/fido2/noop-fido2-user-interface.service.ts +++ b/libs/common/src/webauthn/services/noop-fido2-user-interface.service.ts @@ -1,5 +1,5 @@ -import { Fido2UserInterfaceService as Fido2UserInterfaceServiceAbstraction } from "../../abstractions/fido2/fido2-user-interface.service.abstraction"; -import { RequestAbortedError } from "../../abstractions/fido2/fido2.service.abstraction"; +import { Fido2UserInterfaceService as Fido2UserInterfaceServiceAbstraction } from "../abstractions/fido2-user-interface.service.abstraction"; +import { RequestAbortedError } from "../abstractions/fido2.service.abstraction"; export class Fido2UserInterfaceService implements Fido2UserInterfaceServiceAbstraction { async confirmCredential(cipherId: string): Promise {