diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index da47542ee6b..e783d3689e8 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -73,10 +73,7 @@ import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; import { ProcessReloadServiceAbstraction } from "@bitwarden/common/key-management/abstractions/process-reload.service"; import { CryptoFunctionService as CryptoFunctionServiceAbstraction } from "@bitwarden/common/key-management/crypto/abstractions/crypto-function.service"; import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; -import { BulkEncryptServiceImplementation } from "@bitwarden/common/key-management/crypto/services/bulk-encrypt.service.implementation"; import { EncryptServiceImplementation } from "@bitwarden/common/key-management/crypto/services/encrypt.service.implementation"; -import { FallbackBulkEncryptService } from "@bitwarden/common/key-management/crypto/services/fallback-bulk-encrypt.service"; -import { MultithreadEncryptServiceImplementation } from "@bitwarden/common/key-management/crypto/services/multithread-encrypt.service.implementation"; import { WebCryptoFunctionService } from "@bitwarden/common/key-management/crypto/services/web-crypto-function.service"; import { DeviceTrustServiceAbstraction } from "@bitwarden/common/key-management/device-trust/abstractions/device-trust.service.abstraction"; import { DeviceTrustService } from "@bitwarden/common/key-management/device-trust/services/device-trust.service.implementation"; @@ -133,7 +130,6 @@ import { AppIdService } from "@bitwarden/common/platform/services/app-id.service import { ConfigApiService } from "@bitwarden/common/platform/services/config/config-api.service"; import { DefaultConfigService } from "@bitwarden/common/platform/services/config/default-config.service"; import { ConsoleLogService } from "@bitwarden/common/platform/services/console-log.service"; -import { ContainerService } from "@bitwarden/common/platform/services/container.service"; import { Fido2ActiveRequestManager } from "@bitwarden/common/platform/services/fido2/fido2-active-request-manager"; import { Fido2AuthenticatorService } from "@bitwarden/common/platform/services/fido2/fido2-authenticator.service"; import { Fido2ClientService } from "@bitwarden/common/platform/services/fido2/fido2-client.service"; @@ -325,7 +321,6 @@ export default class MainBackground { passwordStrengthService: PasswordStrengthServiceAbstraction; totpService: TotpServiceAbstraction; autofillService: AutofillServiceAbstraction; - containerService: ContainerService; auditService: AuditServiceAbstraction; authService: AuthServiceAbstraction; loginEmailService: LoginEmailServiceAbstraction; @@ -355,7 +350,6 @@ export default class MainBackground { vaultFilterService: VaultFilterService; usernameGenerationService: UsernameGenerationServiceAbstraction; encryptService: EncryptService; - bulkEncryptService: FallbackBulkEncryptService; folderApiService: FolderApiServiceAbstraction; policyApiService: PolicyApiServiceAbstraction; sendApiService: SendApiServiceAbstraction; @@ -563,13 +557,7 @@ export default class MainBackground { storageServiceProvider, ); - this.encryptService = BrowserApi.isManifestVersion(2) - ? new MultithreadEncryptServiceImplementation( - this.cryptoFunctionService, - this.logService, - true, - ) - : new EncryptServiceImplementation(this.cryptoFunctionService, this.logService, true); + this.encryptService = new EncryptServiceImplementation(this.cryptoFunctionService, this.logService, true); this.singleUserStateProvider = new DefaultSingleUserStateProvider( storageServiceProvider, @@ -854,7 +842,6 @@ export default class MainBackground { this.themeStateService = new DefaultThemeStateService(this.globalStateProvider); - this.bulkEncryptService = new FallbackBulkEncryptService(this.encryptService); this.cipherService = new CipherService( this.keyService, @@ -865,7 +852,6 @@ export default class MainBackground { this.stateService, this.autofillSettingsService, this.encryptService, - this.bulkEncryptService, this.cipherFileUploadService, this.configService, this.stateProvider, @@ -924,7 +910,6 @@ export default class MainBackground { lockedCallback, logoutCallback, ); - this.containerService = new ContainerService(this.keyService, this.encryptService); this.sendStateProvider = new SendStateProvider(this.stateProvider); this.sendService = new SendService( @@ -1385,15 +1370,6 @@ export default class MainBackground { this.syncServiceListener?.listener$().subscribe(); await this.autoSubmitLoginBackground.init(); - if ( - BrowserApi.isManifestVersion(2) && - (await this.configService.getFeatureFlag(FeatureFlag.PM4154_BulkEncryptionService)) - ) { - await this.bulkEncryptService.setFeatureFlagEncryptService( - new BulkEncryptServiceImplementation(this.cryptoFunctionService, this.logService), - ); - } - // If the user is logged out, switch to the next account const active = await firstValueFrom(this.accountService.activeAccount$); if (active != null) { diff --git a/apps/cli/src/service-container/service-container.ts b/apps/cli/src/service-container/service-container.ts index de28bc042a8..554afb38cec 100644 --- a/apps/cli/src/service-container/service-container.ts +++ b/apps/cli/src/service-container/service-container.ts @@ -93,7 +93,6 @@ import { import { AppIdService } from "@bitwarden/common/platform/services/app-id.service"; import { ConfigApiService } from "@bitwarden/common/platform/services/config/config-api.service"; import { DefaultConfigService } from "@bitwarden/common/platform/services/config/default-config.service"; -import { ContainerService } from "@bitwarden/common/platform/services/container.service"; import { DefaultEnvironmentService } from "@bitwarden/common/platform/services/default-environment.service"; import { FileUploadService } from "@bitwarden/common/platform/services/file-upload/file-upload.service"; import { KeyGenerationService } from "@bitwarden/common/platform/services/key-generation.service"; @@ -224,7 +223,6 @@ export class ServiceContainer { passwordStrengthService: PasswordStrengthServiceAbstraction; userDecryptionOptionsService: InternalUserDecryptionOptionsServiceAbstraction; totpService: TotpService; - containerService: ContainerService; auditService: AuditService; importService: ImportServiceAbstraction; importApiService: ImportApiServiceAbstraction; @@ -282,7 +280,6 @@ export class ServiceContainer { cipherAuthorizationService: CipherAuthorizationService; ssoUrlService: SsoUrlService; masterPasswordApiService: MasterPasswordApiServiceAbstraction; - bulkEncryptService: FallbackBulkEncryptService; constructor() { let p = null; @@ -314,7 +311,6 @@ export class ServiceContainer { this.logService, true, ); - this.bulkEncryptService = new FallbackBulkEncryptService(this.encryptService); this.storageService = new LowdbStorageService(this.logService, null, p, false, true); this.secureStorageService = new NodeEnvSecureStorageService( this.storageService, diff --git a/apps/desktop/src/app/services/init.service.ts b/apps/desktop/src/app/services/init.service.ts index e68491faaa3..9b20f3aca9c 100644 --- a/apps/desktop/src/app/services/init.service.ts +++ b/apps/desktop/src/app/services/init.service.ts @@ -7,7 +7,6 @@ import { WINDOW } from "@bitwarden/angular/services/injection-tokens"; import { EventUploadService as EventUploadServiceAbstraction } from "@bitwarden/common/abstractions/event/event-upload.service"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { TwoFactorService as TwoFactorServiceAbstraction } from "@bitwarden/common/auth/abstractions/two-factor.service"; -import { BulkEncryptService } from "@bitwarden/common/key-management/crypto/abstractions/bulk-encrypt.service"; import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; import { DefaultVaultTimeoutService } from "@bitwarden/common/key-management/vault-timeout"; import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; @@ -16,7 +15,6 @@ import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from "@bitwar import { SdkLoadService } from "@bitwarden/common/platform/abstractions/sdk/sdk-load.service"; import { StateService as StateServiceAbstraction } from "@bitwarden/common/platform/abstractions/state.service"; import { NotificationsService } from "@bitwarden/common/platform/notifications"; -import { ContainerService } from "@bitwarden/common/platform/services/container.service"; import { UserAutoUnlockKeyService } from "@bitwarden/common/platform/services/user-auto-unlock-key.service"; import { SyncService as SyncServiceAbstraction } from "@bitwarden/common/platform/sync"; import { EventUploadService } from "@bitwarden/common/services/event/event-upload.service"; @@ -52,7 +50,6 @@ export class InitService { private autofillService: DesktopAutofillService, private sdkLoadService: SdkLoadService, private configService: ConfigService, - private bulkEncryptService: BulkEncryptService, @Inject(DOCUMENT) private document: Document, ) {} @@ -66,7 +63,6 @@ export class InitService { this.configService.serverConfig$.subscribe((newConfig) => { if (newConfig != null) { this.encryptService.onServerConfigChange(newConfig); - this.bulkEncryptService.onServerConfigChange(newConfig); } }); @@ -96,9 +92,6 @@ export class InitService { this.versionService.init(); - const containerService = new ContainerService(this.keyService, this.encryptService); - containerService.attachToGlobal(this.win); - await this.autofillService.init(); }; } diff --git a/apps/web/src/app/auth/emergency-access/services/emergency-access.service.spec.ts b/apps/web/src/app/auth/emergency-access/services/emergency-access.service.spec.ts index 6b4b3f2ff1e..130111110b4 100644 --- a/apps/web/src/app/auth/emergency-access/services/emergency-access.service.spec.ts +++ b/apps/web/src/app/auth/emergency-access/services/emergency-access.service.spec.ts @@ -4,7 +4,6 @@ import { MockProxy } from "jest-mock-extended"; import mock from "jest-mock-extended/lib/Mock"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; -import { BulkEncryptService } from "@bitwarden/common/key-management/crypto/abstractions/bulk-encrypt.service"; import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; import { ListResponse } from "@bitwarden/common/models/response/list.response"; import { UserKeyResponse } from "@bitwarden/common/models/response/user-key.response"; @@ -36,7 +35,6 @@ describe("EmergencyAccessService", () => { let apiService: MockProxy; let keyService: MockProxy; let encryptService: MockProxy; - let bulkEncryptService: MockProxy; let cipherService: MockProxy; let logService: MockProxy; let emergencyAccessService: EmergencyAccessService; @@ -50,7 +48,6 @@ describe("EmergencyAccessService", () => { apiService = mock(); keyService = mock(); encryptService = mock(); - bulkEncryptService = mock(); cipherService = mock(); logService = mock(); @@ -59,7 +56,6 @@ describe("EmergencyAccessService", () => { apiService, keyService, encryptService, - bulkEncryptService, cipherService, logService, configService, diff --git a/apps/web/src/app/core/init.service.ts b/apps/web/src/app/core/init.service.ts index 761e3941d3c..ee622b02566 100644 --- a/apps/web/src/app/core/init.service.ts +++ b/apps/web/src/app/core/init.service.ts @@ -52,7 +52,6 @@ export class InitService { this.configService.serverConfig$.subscribe((newConfig) => { if (newConfig != null) { this.encryptService.onServerConfigChange(newConfig); - this.bulkEncryptService.onServerConfigChange(newConfig); } }); @@ -73,9 +72,6 @@ export class InitService { this.themingService.applyThemeChangesTo(this.document); this.versionService.applyVersionToWindow(); void this.ipcService.init(); - - const containerService = new ContainerService(this.keyService, this.encryptService); - containerService.attachToGlobal(this.win); }; } } diff --git a/libs/common/src/key-management/crypto/abstractions/encrypt.service.ts b/libs/common/src/key-management/crypto/abstractions/encrypt.service.ts index 7a6c9bcd800..6821ca5520b 100644 --- a/libs/common/src/key-management/crypto/abstractions/encrypt.service.ts +++ b/libs/common/src/key-management/crypto/abstractions/encrypt.service.ts @@ -1,6 +1,5 @@ import { ServerConfig } from "../../../platform/abstractions/config/server-config"; import { Decryptable } from "../../../platform/interfaces/decryptable.interface"; -import { Encrypted } from "../../../platform/interfaces/encrypted"; import { InitializerMetadata } from "../../../platform/interfaces/initializer-metadata.interface"; import { EncArrayBuffer } from "../../../platform/models/domain/enc-array-buffer"; import { EncString } from "../../../platform/models/domain/enc-string"; @@ -8,49 +7,6 @@ import { SymmetricCryptoKey } from "../../../platform/models/domain/symmetric-cr export abstract class EncryptService { /** - * @deprecated - * Encrypts a string or Uint8Array to an EncString - * @param plainValue - The value to encrypt - * @param key - The key to encrypt the value with - */ - abstract encrypt(plainValue: string | Uint8Array, key: SymmetricCryptoKey): Promise; - /** - * @deprecated - * Encrypts a value to a Uint8Array - * @param plainValue - The value to encrypt - * @param key - The key to encrypt the value with - */ - abstract encryptToBytes(plainValue: Uint8Array, key: SymmetricCryptoKey): Promise; - /** - * @deprecated - * Decrypts an EncString to a string - * @param encString - The EncString to decrypt - * @param key - The key to decrypt the EncString with - * @param decryptTrace - A string to identify the context of the object being decrypted. This can include: field name, encryption type, cipher id, key type, but should not include - * sensitive information like encryption keys or data. This is used for logging when decryption errors occur in order to identify what failed to decrypt - * @returns The decrypted string - */ - abstract decryptToUtf8( - encString: EncString, - key: SymmetricCryptoKey, - decryptTrace?: string, - ): Promise; - /** - * @deprecated - * Decrypts an Encrypted object to a Uint8Array - * @param encThing - The Encrypted object to decrypt - * @param key - The key to decrypt the Encrypted object with - * @param decryptTrace - A string to identify the context of the object being decrypted. This can include: field name, encryption type, cipher id, key type, but should not include - * sensitive information like encryption keys or data. This is used for logging when decryption errors occur in order to identify what failed to decrypt - * @returns The decrypted Uint8Array - */ - abstract decryptToBytes( - encThing: Encrypted, - key: SymmetricCryptoKey, - decryptTrace?: string, - ): Promise; - /** - * @deprecated Replaced by BulkEncryptService, remove once the feature is tested and the featureflag PM-4154-multi-worker-encryption-service is removed * @param items The items to decrypt * @param key The key to decrypt the items with */ diff --git a/libs/common/src/platform/services/container.service.ts b/libs/common/src/platform/services/container.service.ts deleted file mode 100644 index 1428b2bbd7c..00000000000 --- a/libs/common/src/platform/services/container.service.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { KeyService } from "@bitwarden/key-management"; - -import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; - -export class ContainerService { - constructor( - private keyService: KeyService, - private encryptService: EncryptService, - ) {} - - attachToGlobal(global: any) { - if (!global.bitwardenContainerService) { - global.bitwardenContainerService = this; - } - } - - /** - * @throws Will throw if KeyService was not instantiated and provided to the ContainerService constructor - */ - getKeyService(): KeyService { - if (this.keyService == null) { - throw new Error("ContainerService.keyService not initialized."); - } - return this.keyService; - } - - /** - * @throws Will throw if EncryptService was not instantiated and provided to the ContainerService constructor - */ - getEncryptService(): EncryptService { - if (this.encryptService == null) { - throw new Error("ContainerService.encryptService not initialized."); - } - return this.encryptService; - } -} diff --git a/libs/common/src/vault/services/cipher.service.ts b/libs/common/src/vault/services/cipher.service.ts index 0a3bf8dbdd1..be382bf2d33 100644 --- a/libs/common/src/vault/services/cipher.service.ts +++ b/libs/common/src/vault/services/cipher.service.ts @@ -12,7 +12,6 @@ import { AccountService } from "../../auth/abstractions/account.service"; import { AutofillSettingsServiceAbstraction } from "../../autofill/services/autofill-settings.service"; import { DomainSettingsService } from "../../autofill/services/domain-settings.service"; import { FeatureFlag } from "../../enums/feature-flag.enum"; -import { BulkEncryptService } from "../../key-management/crypto/abstractions/bulk-encrypt.service"; import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; import { UriMatchStrategySetting } from "../../models/domain/domain-service"; import { ErrorResponse } from "../../models/response/error.response";