1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-15 15:53:27 +00:00

[Pm-13097] Rename cryptoservice to keyservice and move it to km ownership (#11358)

* Rename cryptoservice to keyservice

* Rename cryptoservice to keyservice

* Move key service to key management ownership

* Remove accidentally added file

* Fix cli build

* Fix browser build

* Run prettier

* Fix builds

* Fix cli build

* Fix tests

* Fix incorrect renames

* Rename webauthn-login-crypto-service

* Fix build errors due to merge conflicts

* Fix linting
This commit is contained in:
Bernd Schoolmann
2024-10-24 19:41:30 +02:00
committed by GitHub
parent 554171b688
commit b486fcc689
229 changed files with 1385 additions and 1446 deletions

View File

@@ -9,13 +9,13 @@ import { OrganizationAuthRequestService } from "@bitwarden/bit-common/admin-cons
import { PendingAuthRequestView } from "@bitwarden/bit-common/admin-console/auth-requests/pending-auth-request.view";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { ValidationService } from "@bitwarden/common/platform/abstractions/validation.service";
import { TableDataSource, NoItemsModule, ToastService } from "@bitwarden/components";
import { KeyService } from "@bitwarden/key-management";
import { Devices } from "@bitwarden/web-vault/app/admin-console/icons";
import { LooseComponentsModule } from "@bitwarden/web-vault/app/shared";
import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
@@ -33,7 +33,7 @@ import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
provide: OrganizationAuthRequestService,
deps: [
OrganizationAuthRequestApiService,
CryptoService,
KeyService,
EncryptService,
OrganizationUserApiService,
],

View File

@@ -12,11 +12,11 @@ import { ProviderUserBulkRequest } from "@bitwarden/common/admin-console/models/
import { ProviderUserBulkPublicKeyResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user-bulk-public-key.response";
import { ProviderUserBulkResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user-bulk.response";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
import { DialogService } from "@bitwarden/components";
import { KeyService } from "@bitwarden/key-management";
import { BaseBulkConfirmComponent } from "@bitwarden/web-vault/app/admin-console/organizations/members/components/bulk/base-bulk-confirm.component";
import { BulkUserDetails } from "@bitwarden/web-vault/app/admin-console/organizations/members/components/bulk/bulk-status.component";
@@ -34,19 +34,19 @@ export class BulkConfirmDialogComponent extends BaseBulkConfirmComponent {
constructor(
private apiService: ApiService,
protected cryptoService: CryptoService,
protected keyService: KeyService,
protected encryptService: EncryptService,
@Inject(DIALOG_DATA) protected dialogParams: BulkConfirmDialogParams,
protected i18nService: I18nService,
) {
super(cryptoService, encryptService, i18nService);
super(keyService, encryptService, i18nService);
this.providerId = dialogParams.providerId;
this.users = dialogParams.users;
}
protected getCryptoKey = (): Promise<SymmetricCryptoKey> =>
this.cryptoService.getProviderKey(this.providerId);
this.keyService.getProviderKey(this.providerId);
protected getPublicKeys = async (): Promise<
ListResponse<OrganizationUserBulkPublicKeyResponse | ProviderUserBulkPublicKeyResponse>

View File

@@ -14,12 +14,12 @@ import { ProviderUserBulkRequest } from "@bitwarden/common/admin-console/models/
import { ProviderUserConfirmRequest } from "@bitwarden/common/admin-console/models/request/provider/provider-user-confirm.request";
import { ProviderUserUserDetailsResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user.response";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
import { ValidationService } from "@bitwarden/common/platform/abstractions/validation.service";
import { DialogService, ToastService } from "@bitwarden/components";
import { KeyService } from "@bitwarden/key-management";
import { BaseMembersComponent } from "@bitwarden/web-vault/app/admin-console/common/base-members.component";
import {
peopleFilter,
@@ -59,7 +59,7 @@ export class MembersComponent extends BaseMembersComponent<ProviderUser> {
constructor(
apiService: ApiService,
cryptoService: CryptoService,
keyService: KeyService,
dialogService: DialogService,
i18nService: I18nService,
logService: LogService,
@@ -75,7 +75,7 @@ export class MembersComponent extends BaseMembersComponent<ProviderUser> {
super(
apiService,
i18nService,
cryptoService,
keyService,
validationService,
logService,
userNamePipe,
@@ -185,7 +185,7 @@ export class MembersComponent extends BaseMembersComponent<ProviderUser> {
}
async confirmUser(user: ProviderUser, publicKey: Uint8Array): Promise<void> {
const providerKey = await this.cryptoService.getProviderKey(this.providerId);
const providerKey = await this.keyService.getProviderKey(this.providerId);
const key = await this.encryptService.rsaEncrypt(providerKey.key, publicKey);
const request = new ProviderUserConfirmRequest();
request.key = key.encryptedString;

View File

@@ -6,16 +6,16 @@ import { ProviderAddOrganizationRequest } from "@bitwarden/common/admin-console/
import { BillingApiServiceAbstraction } from "@bitwarden/common/billing/abstractions/billing-api.service.abstraction";
import { PlanType } from "@bitwarden/common/billing/enums";
import { CreateClientOrganizationRequest } from "@bitwarden/common/billing/models/request/create-client-organization.request";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { OrgKey } from "@bitwarden/common/types/key";
import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction";
import { KeyService } from "@bitwarden/key-management";
@Injectable()
export class WebProviderService {
constructor(
private cryptoService: CryptoService,
private keyService: KeyService,
private syncService: SyncService,
private apiService: ApiService,
private i18nService: I18nService,
@@ -24,8 +24,8 @@ export class WebProviderService {
) {}
async addOrganizationToProvider(providerId: string, organizationId: string) {
const orgKey = await this.cryptoService.getOrgKey(organizationId);
const providerKey = await this.cryptoService.getProviderKey(providerId);
const orgKey = await this.keyService.getOrgKey(organizationId);
const providerKey = await this.keyService.getProviderKey(providerId);
const encryptedOrgKey = await this.encryptService.encrypt(orgKey.key, providerKey);
@@ -45,16 +45,16 @@ export class WebProviderService {
planType: PlanType,
seats: number,
): Promise<void> {
const organizationKey = (await this.cryptoService.makeOrgKey<OrgKey>())[1];
const organizationKey = (await this.keyService.makeOrgKey<OrgKey>())[1];
const [publicKey, encryptedPrivateKey] = await this.cryptoService.makeKeyPair(organizationKey);
const [publicKey, encryptedPrivateKey] = await this.keyService.makeKeyPair(organizationKey);
const encryptedCollectionName = await this.encryptService.encrypt(
this.i18nService.t("defaultCollection"),
organizationKey,
);
const providerKey = await this.cryptoService.getProviderKey(providerId);
const providerKey = await this.keyService.getProviderKey(providerId);
const encryptedProviderKey = await this.encryptService.encrypt(
organizationKey.key,

View File

@@ -10,12 +10,12 @@ import { ProviderSetupRequest } from "@bitwarden/common/admin-console/models/req
import { ExpandedTaxInfoUpdateRequest } from "@bitwarden/common/billing/models/request/expanded-tax-info-update.request";
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { ValidationService } from "@bitwarden/common/platform/abstractions/validation.service";
import { ProviderKey } from "@bitwarden/common/types/key";
import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction";
import { ToastService } from "@bitwarden/components";
import { KeyService } from "@bitwarden/key-management";
@Component({
selector: "provider-setup",
@@ -44,7 +44,7 @@ export class SetupComponent implements OnInit, OnDestroy {
private router: Router,
private i18nService: I18nService,
private route: ActivatedRoute,
private cryptoService: CryptoService,
private keyService: KeyService,
private syncService: SyncService,
private validationService: ValidationService,
private configService: ConfigService,
@@ -124,7 +124,7 @@ export class SetupComponent implements OnInit, OnDestroy {
return;
}
const providerKey = await this.cryptoService.makeOrgKey<ProviderKey>();
const providerKey = await this.keyService.makeOrgKey<ProviderKey>();
const key = providerKey[0].encryptedString;
const request = new ProviderSetupRequest();

View File

@@ -3,10 +3,10 @@ import { Subject } from "rxjs";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
import { KeyService } from "@bitwarden/key-management";
import { ProjectListView } from "../models/view/project-list.view";
import { ProjectView } from "../models/view/project.view";
@@ -24,7 +24,7 @@ export class ProjectService {
project$ = this._project.asObservable();
constructor(
private cryptoService: CryptoService,
private keyService: KeyService,
private apiService: ApiService,
private encryptService: EncryptService,
) {}
@@ -82,7 +82,7 @@ export class ProjectService {
}
private async getOrganizationKey(organizationId: string): Promise<SymmetricCryptoKey> {
return await this.cryptoService.getOrgKey(organizationId);
return await this.keyService.getOrgKey(organizationId);
}
private async getProjectRequest(

View File

@@ -1,9 +1,9 @@
import { mock } from "jest-mock-extended";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
import { KeyService } from "@bitwarden/key-management";
import { SecretAccessPoliciesView } from "../models/view/access-policies/secret-access-policies.view";
import { SecretView } from "../models/view/secret.view";
@@ -14,7 +14,7 @@ import { SecretService } from "./secret.service";
describe("SecretService", () => {
let sut: SecretService;
const cryptoService = mock<CryptoService>();
const keyService = mock<KeyService>();
const apiService = mock<ApiService>();
const encryptService = mock<EncryptService>();
const accessPolicyService = mock<AccessPolicyService>();
@@ -22,7 +22,7 @@ describe("SecretService", () => {
beforeEach(() => {
jest.resetAllMocks();
sut = new SecretService(cryptoService, apiService, encryptService, accessPolicyService);
sut = new SecretService(keyService, apiService, encryptService, accessPolicyService);
encryptService.encrypt.mockResolvedValue({
encryptedString: "mockEncryptedString",

View File

@@ -2,10 +2,10 @@ import { Injectable } from "@angular/core";
import { Subject } from "rxjs";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
import { KeyService } from "@bitwarden/key-management";
import { SecretAccessPoliciesView } from "../models/view/access-policies/secret-access-policies.view";
import { SecretListView } from "../models/view/secret-list.view";
@@ -29,7 +29,7 @@ export class SecretService {
secret$ = this._secret.asObservable();
constructor(
private cryptoService: CryptoService,
private keyService: KeyService,
private apiService: ApiService,
private encryptService: EncryptService,
private accessPolicyService: AccessPolicyService,
@@ -153,7 +153,7 @@ export class SecretService {
}
private async getOrganizationKey(organizationId: string): Promise<SymmetricCryptoKey> {
return await this.cryptoService.getOrgKey(organizationId);
return await this.keyService.getOrgKey(organizationId);
}
private async getSecretRequest(

View File

@@ -3,12 +3,12 @@ import { Subject } from "rxjs";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { KeyGenerationService } from "@bitwarden/common/platform/abstractions/key-generation.service";
import { Utils } from "@bitwarden/common/platform/misc/utils";
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
import { KeyService } from "@bitwarden/key-management";
import { AccessTokenRequest } from "../models/requests/access-token.request";
import { RevokeAccessTokensRequest } from "../models/requests/revoke-access-tokens.request";
@@ -26,7 +26,7 @@ export class AccessService {
accessToken$ = this._accessToken.asObservable();
constructor(
private cryptoService: CryptoService,
private keyService: KeyService,
private apiService: ApiService,
private keyGenerationService: KeyGenerationService,
private encryptService: EncryptService,
@@ -116,7 +116,7 @@ export class AccessService {
}
private async getOrganizationKey(organizationId: string): Promise<SymmetricCryptoKey> {
return await this.cryptoService.getOrgKey(organizationId);
return await this.keyService.getOrgKey(organizationId);
}
private async createAccessTokenViews(

View File

@@ -3,10 +3,10 @@ import { Subject } from "rxjs";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
import { KeyService } from "@bitwarden/key-management";
import {
ServiceAccountSecretsDetailsView,
@@ -29,7 +29,7 @@ export class ServiceAccountService {
serviceAccount$ = this._serviceAccount.asObservable();
constructor(
private cryptoService: CryptoService,
private keyService: KeyService,
private apiService: ApiService,
private encryptService: EncryptService,
) {}
@@ -120,7 +120,7 @@ export class ServiceAccountService {
}
private async getOrganizationKey(organizationId: string): Promise<SymmetricCryptoKey> {
return await this.cryptoService.getOrgKey(organizationId);
return await this.keyService.getOrgKey(organizationId);
}
private async getServiceAccountRequest(

View File

@@ -1,13 +1,13 @@
import { mock } from "jest-mock-extended";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { Utils } from "@bitwarden/common/platform/misc/utils";
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
import { CsprngArray } from "@bitwarden/common/types/csprng";
import { OrgKey } from "@bitwarden/common/types/key";
import { KeyService } from "@bitwarden/key-management";
import { SecretsManagerImportError } from "../models/error/sm-import-error";
import { SecretsManagerImportRequest } from "../models/requests/sm-import.request";
@@ -21,19 +21,19 @@ describe("SecretsManagerPortingApiService", () => {
const apiService = mock<ApiService>();
const encryptService = mock<EncryptService>();
const cryptoService = mock<CryptoService>();
const keyService = mock<KeyService>();
beforeEach(() => {
jest.resetAllMocks();
sut = new SecretsManagerPortingApiService(apiService, encryptService, cryptoService);
sut = new SecretsManagerPortingApiService(apiService, encryptService, keyService);
encryptService.encrypt.mockResolvedValue(mockEncryptedString);
encryptService.decryptToUtf8.mockResolvedValue(mockUnencryptedString);
const mockRandomBytes = new Uint8Array(64) as CsprngArray;
const mockOrgKey = new SymmetricCryptoKey(mockRandomBytes) as OrgKey;
cryptoService.getOrgKey.mockResolvedValue(mockOrgKey);
keyService.getOrgKey.mockResolvedValue(mockOrgKey);
});
it("instantiates", () => {

View File

@@ -3,9 +3,9 @@ import { Subject } from "rxjs";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { ErrorResponse } from "@bitwarden/common/models/response/error.response";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
import { KeyService } from "@bitwarden/key-management";
import { SecretsManagerImportError } from "../models/error/sm-import-error";
import { SecretsManagerImportRequest } from "../models/requests/sm-import.request";
@@ -28,7 +28,7 @@ export class SecretsManagerPortingApiService {
constructor(
private apiService: ApiService,
private encryptService: EncryptService,
private cryptoService: CryptoService,
private keyService: KeyService,
) {}
async export(organizationId: string): Promise<string> {
@@ -76,7 +76,7 @@ export class SecretsManagerPortingApiService {
const encryptedImport = new SecretsManagerImportRequest();
try {
const orgKey = await this.cryptoService.getOrgKey(organizationId);
const orgKey = await this.keyService.getOrgKey(organizationId);
encryptedImport.projects = [];
encryptedImport.secrets = [];
@@ -116,7 +116,7 @@ export class SecretsManagerPortingApiService {
organizationId: string,
exportData: SecretsManagerExportResponse,
): Promise<SecretsManagerExport> {
const orgKey = await this.cryptoService.getOrgKey(organizationId);
const orgKey = await this.keyService.getOrgKey(organizationId);
const decryptedExport = new SecretsManagerExport();
decryptedExport.projects = [];
decryptedExport.secrets = [];

View File

@@ -1,12 +1,12 @@
import { mock } from "jest-mock-extended";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { Utils } from "@bitwarden/common/platform/misc/utils";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
import { CsprngArray } from "@bitwarden/common/types/csprng";
import { OrgKey } from "@bitwarden/common/types/key";
import { KeyService } from "@bitwarden/key-management";
import {
GroupAccessPolicyView,
@@ -31,14 +31,14 @@ import { trackEmissions } from "@bitwarden/common/../spec";
describe("AccessPolicyService", () => {
let sut: AccessPolicyService;
const cryptoService = mock<CryptoService>();
const keyService = mock<KeyService>();
const apiService = mock<ApiService>();
const encryptService = mock<EncryptService>();
beforeEach(() => {
jest.resetAllMocks();
sut = new AccessPolicyService(cryptoService, apiService, encryptService);
sut = new AccessPolicyService(keyService, apiService, encryptService);
});
it("instantiates", () => {
@@ -135,7 +135,7 @@ describe("AccessPolicyService", () => {
const expectedRequest = toServiceAccountGrantedPoliciesRequest(view);
const mockRandomBytes = new Uint8Array(64) as CsprngArray;
const mockOrgKey = new SymmetricCryptoKey(mockRandomBytes) as OrgKey;
cryptoService.getOrgKey.mockResolvedValue(mockOrgKey);
keyService.getOrgKey.mockResolvedValue(mockOrgKey);
encryptService.decryptToUtf8.mockImplementation((c) => Promise.resolve(c.encryptedString));
const organizationId = Utils.newGuid();
const serviceAccountId = Utils.newGuid();
@@ -172,7 +172,7 @@ describe("AccessPolicyService", () => {
const expectedRequest = toProjectServiceAccountsAccessPoliciesRequest(view);
const mockRandomBytes = new Uint8Array(64) as CsprngArray;
const mockOrgKey = new SymmetricCryptoKey(mockRandomBytes) as OrgKey;
cryptoService.getOrgKey.mockResolvedValue(mockOrgKey);
keyService.getOrgKey.mockResolvedValue(mockOrgKey);
encryptService.decryptToUtf8.mockImplementation((c) => Promise.resolve(c.encryptedString));
const organizationId = Utils.newGuid();
const projectId = Utils.newGuid();

View File

@@ -3,10 +3,10 @@ import { Subject } from "rxjs";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
import { KeyService } from "@bitwarden/key-management";
import {
UserAccessPolicyView,
@@ -57,7 +57,7 @@ export class AccessPolicyService {
accessPolicy$ = this._accessPolicy.asObservable();
constructor(
private cryptoService: CryptoService,
private keyService: KeyService,
protected apiService: ApiService,
protected encryptService: EncryptService,
) {}
@@ -267,7 +267,7 @@ export class AccessPolicyService {
}
private async getOrganizationKey(organizationId: string): Promise<SymmetricCryptoKey> {
return await this.cryptoService.getOrgKey(organizationId);
return await this.keyService.getOrgKey(organizationId);
}
private getAccessPolicyRequest(