diff --git a/common/src/abstractions/fileUpload.service.ts b/common/src/abstractions/fileUpload.service.ts index 86e0ef482d..b24ed9f0a6 100644 --- a/common/src/abstractions/fileUpload.service.ts +++ b/common/src/abstractions/fileUpload.service.ts @@ -6,6 +6,6 @@ import { SendFileUploadDataResponse } from '../models/response/sendFileUploadDat export abstract class FileUploadService { uploadSendFile: (uploadData: SendFileUploadDataResponse, fileName: EncString, encryptedFileData: EncArrayBuffer) => Promise; - uploadCipherAttachment: (admin: boolean, uploadData: AttachmentUploadDataResponse, fileName: string, + uploadCipherAttachment: (admin: boolean, uploadData: AttachmentUploadDataResponse, fileName: EncString, encryptedFileData: EncArrayBuffer) => Promise; } diff --git a/common/src/services/cipher.service.ts b/common/src/services/cipher.service.ts index 6fee279de1..f5ac544960 100644 --- a/common/src/services/cipher.service.ts +++ b/common/src/services/cipher.service.ts @@ -638,7 +638,7 @@ export class CipherService implements CipherServiceAbstraction { try { const uploadDataResponse = await this.apiService.postCipherAttachment(cipher.id, request); response = admin ? uploadDataResponse.cipherMiniResponse : uploadDataResponse.cipherResponse; - await this.fileUploadService.uploadCipherAttachment(admin, uploadDataResponse, filename, encData); + await this.fileUploadService.uploadCipherAttachment(admin, uploadDataResponse, encFileName, encData); } catch (e) { if (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404 || (e as ErrorResponse).statusCode === 405) { response = await this.legacyServerAttachmentFileUpload(admin, cipher.id, encFileName, encData, dataEncKey[1]); diff --git a/common/src/services/fileUpload.service.ts b/common/src/services/fileUpload.service.ts index a04cb8eed2..1dedc28926 100644 --- a/common/src/services/fileUpload.service.ts +++ b/common/src/services/fileUpload.service.ts @@ -47,12 +47,13 @@ export class FileUploadService implements FileUploadServiceAbstraction { } } - async uploadCipherAttachment(admin: boolean, uploadData: AttachmentUploadDataResponse, encryptedFileName: string, encryptedFileData: EncArrayBuffer) { + async uploadCipherAttachment(admin: boolean, uploadData: AttachmentUploadDataResponse, encryptedFileName: EncString, + encryptedFileData: EncArrayBuffer) { const response = admin ? uploadData.cipherMiniResponse : uploadData.cipherResponse; try { switch (uploadData.fileUploadType) { case FileUploadType.Direct: - await this.bitwardenFileUploadService.upload(encryptedFileName, encryptedFileData, + await this.bitwardenFileUploadService.upload(encryptedFileName.encryptedString, encryptedFileData, fd => this.apiService.postAttachmentFile(response.id, uploadData.attachmentId, fd)); break; case FileUploadType.Azure: diff --git a/spec/common/services/cipher.service.spec.ts b/spec/common/services/cipher.service.spec.ts index c4fa3bc26b..17f3164d80 100644 --- a/spec/common/services/cipher.service.spec.ts +++ b/spec/common/services/cipher.service.spec.ts @@ -56,6 +56,6 @@ describe('Cipher Service', () => { await cipherService.saveAttachmentRawWithServer(new Cipher(), fileName, fileData); - fileUploadService.received(1).uploadCipherAttachment(Arg.any(), Arg.any(), fileName, ENCRYPTED_BYTES); + fileUploadService.received(1).uploadCipherAttachment(Arg.any(), Arg.any(), new EncString(ENCRYPTED_TEXT), ENCRYPTED_BYTES); }); });