remove defining type for worker function outputs

This commit is contained in:
Abhinav 2022-12-23 17:22:43 +05:30
parent 93f240c4dc
commit 964af15a5e
13 changed files with 46 additions and 48 deletions

View file

@ -43,7 +43,7 @@ export default function VerifyMasterPasswordForm({
throw Error(CustomError.WEAK_DEVICE);
}
try {
const key: string = await cryptoWorker.decryptB64(
const key = await cryptoWorker.decryptB64(
keyAttributes.encryptedKey,
keyAttributes.keyDecryptionNonce,
kek

View file

@ -73,7 +73,7 @@ export default function Recover() {
recoveryKey = bip39.mnemonicToEntropy(recoveryKey);
}
const cryptoWorker = await new CryptoWorker();
const masterKey: string = await cryptoWorker.decryptB64(
const masterKey = await cryptoWorker.decryptB64(
keyAttributes.masterKeyEncryptedWithRecoveryKey,
keyAttributes.masterKeyDecryptionNonce,
await cryptoWorker.fromHex(recoveryKey)

View file

@ -67,7 +67,7 @@ export default function Recover() {
recoveryKey = bip39.mnemonicToEntropy(recoveryKey);
}
const cryptoWorker = await new CryptoWorker();
const twoFactorSecret: string = await cryptoWorker.decryptB64(
const twoFactorSecret = await cryptoWorker.decryptB64(
encryptedTwoFactorSecret.encryptedData,
encryptedTwoFactorSecret.nonce,
await cryptoWorker.fromHex(recoveryKey)

View file

@ -44,7 +44,6 @@ import constants from 'utils/strings/constants';
import { IsArchived } from 'utils/magicMetadata';
import { User } from 'types/user';
import { getNonHiddenCollections } from 'utils/collection';
import { EncryptionResult } from 'types/crypto';
const ENDPOINT = getEndpoint();
const COLLECTION_TABLE = 'collections';
@ -282,7 +281,7 @@ export const createCollection = async (
const worker = await new CryptoWorker();
const encryptionKey = await getActualKey();
const token = getToken();
const collectionKey: string = await worker.generateEncryptionKey();
const collectionKey = await worker.generateEncryptionKey();
const { encryptedData: encryptedKey, nonce: keyDecryptionNonce } =
await worker.encryptToB64(collectionKey, encryptionKey);
const { encryptedData: encryptedName, nonce: nameDecryptionNonce } =
@ -513,11 +512,10 @@ export const updateCollectionMagicMetadata = async (collection: Collection) => {
const worker = await new CryptoWorker();
const { file: encryptedMagicMetadata }: EncryptionResult<string> =
await worker.encryptMetadata(
collection.magicMetadata.data,
collection.key
);
const { file: encryptedMagicMetadata } = await worker.encryptMetadata(
collection.magicMetadata.data,
collection.key
);
const reqBody: UpdateMagicMetadataRequest = {
id: collection.id,
@ -578,10 +576,7 @@ export const shareCollection = async (
const token = getToken();
const publicKey: string = await getPublicKey(withUserEmail);
const encryptedKey: string = await worker.boxSeal(
collection.key,
publicKey
);
const encryptedKey = await worker.boxSeal(collection.key, publicKey);
const shareCollectionRequest = {
collectionID: collection.id,
email: withUserEmail,

View file

@ -81,7 +81,7 @@ class DownloadManager {
throw Error(CustomError.REQUEST_FAILED);
}
const worker = await new CryptoWorker();
const decrypted: Uint8Array = await worker.decryptThumbnail(
const decrypted = await worker.decryptThumbnail(
new Uint8Array(resp.data),
await worker.fromB64(file.thumbnail.decryptionHeader),
file.key
@ -140,7 +140,7 @@ class DownloadManager {
if (typeof resp.data === 'undefined') {
throw Error(CustomError.REQUEST_FAILED);
}
const decrypted: any = await worker.decryptFile(
const decrypted = await worker.decryptFile(
new Uint8Array(resp.data),
await worker.fromB64(file.file.decryptionHeader),
file.key

View file

@ -19,7 +19,6 @@ import { BulkUpdateMagicMetadataRequest } from 'types/magicMetadata';
import { addLogLine } from 'utils/logging';
import { isCollectionHidden } from 'utils/collection';
import { CustomError } from 'utils/error';
import { EncryptionResult } from 'types/crypto';
const ENDPOINT = getEndpoint();
const FILES_TABLE = 'files';
@ -253,8 +252,10 @@ export const updateFileMagicMetadata = async (files: EnteFile[]) => {
const reqBody: BulkUpdateMagicMetadataRequest = { metadataList: [] };
const worker = await new CryptoWorker();
for (const file of files) {
const { file: encryptedMagicMetadata }: EncryptionResult<string> =
await worker.encryptMetadata(file.magicMetadata.data, file.key);
const { file: encryptedMagicMetadata } = await worker.encryptMetadata(
file.magicMetadata.data,
file.key
);
reqBody.metadataList.push({
id: file.id,
magicMetadata: {
@ -287,7 +288,7 @@ export const updateFilePublicMagicMetadata = async (files: EnteFile[]) => {
const reqBody: BulkUpdateMagicMetadataRequest = { metadataList: [] };
const worker = await new CryptoWorker();
for (const file of files) {
const { file: encryptedPubMagicMetadata }: EncryptionResult<string> =
const { file: encryptedPubMagicMetadata } =
await worker.encryptMetadata(file.pubMagicMetadata.data, file.key);
reqBody.metadataList.push({
id: file.id,

View file

@ -13,7 +13,8 @@ import { getLocalTrash, getTrashedFiles } from './trashService';
import { UploadURL } from 'types/upload';
import { FileAttributes } from 'types/file';
import { USE_CF_PROXY } from 'constants/upload';
import { EncryptionResult } from 'types/crypto';
import { Remote } from 'comlink';
import { DedicatedCryptoWorker } from 'worker/crypto.worker';
const ENDPOINT = getEndpoint();
const REPLACE_THUMBNAIL_THRESHOLD = 500 * 1024; // 500KB
@ -103,13 +104,15 @@ export async function replaceThumbnail(
}
export async function uploadThumbnail(
worker,
worker: Remote<DedicatedCryptoWorker>,
fileKey: string,
updatedThumbnail: Uint8Array,
uploadURL: UploadURL
): Promise<FileAttributes> {
const { file: encryptedThumbnail }: EncryptionResult<Uint8Array> =
await worker.encryptThumbnail(updatedThumbnail, fileKey);
const { file: encryptedThumbnail } = await worker.encryptThumbnail(
updatedThumbnail,
fileKey
);
let thumbnailObjectKey: string = null;
if (USE_CF_PROXY) {
thumbnailObjectKey = await uploadHttpClient.putFileV2(

View file

@ -98,7 +98,7 @@ class PublicCollectionDownloadManager {
throw Error(CustomError.REQUEST_FAILED);
}
const worker = await new CryptoWorker();
const decrypted: Uint8Array = await worker.decryptThumbnail(
const decrypted = await worker.decryptThumbnail(
new Uint8Array(resp.data),
await worker.fromB64(file.thumbnail.decryptionHeader),
file.key
@ -170,7 +170,7 @@ class PublicCollectionDownloadManager {
if (typeof resp.data === 'undefined') {
throw Error(CustomError.REQUEST_FAILED);
}
const decrypted: any = await worker.decryptFile(
const decrypted = await worker.decryptFile(
new Uint8Array(resp.data),
await worker.fromB64(file.file.decryptionHeader),
file.key

View file

@ -23,7 +23,6 @@ import { generateThumbnail } from './thumbnailService';
import { DedicatedCryptoWorker } from 'worker/crypto.worker';
import { Remote } from 'comlink';
import { EncryptedMagicMetadata } from 'types/magicMetadata';
import { EncryptionResult, B64EncryptionResult } from 'types/crypto';
const EDITED_FILE_SUFFIX = '-edited';
@ -107,19 +106,22 @@ export async function encryptFile(
file.filedata
);
const { file: encryptedThumbnail }: EncryptionResult<Uint8Array> =
await worker.encryptThumbnail(file.thumbnail, fileKey);
const { file: encryptedMetadata }: EncryptionResult<string> =
await worker.encryptMetadata(file.metadata, fileKey);
const { file: encryptedThumbnail } = await worker.encryptThumbnail(
file.thumbnail,
fileKey
);
const { file: encryptedMetadata } = await worker.encryptMetadata(
file.metadata,
fileKey
);
let encryptedPubMagicMetadata: EncryptedMagicMetadata;
if (file.pubMagicMetadata) {
const {
file: encryptedPubMagicMetadataData,
}: EncryptionResult<string> = await worker.encryptMetadata(
file.pubMagicMetadata.data,
fileKey
);
const { file: encryptedPubMagicMetadataData } =
await worker.encryptMetadata(
file.pubMagicMetadata.data,
fileKey
);
encryptedPubMagicMetadata = {
version: file.pubMagicMetadata.version,
count: file.pubMagicMetadata.count,
@ -128,10 +130,7 @@ export async function encryptFile(
};
}
const encryptedKey: B64EncryptionResult = await worker.encryptToB64(
fileKey,
encryptionKey
);
const encryptedKey = await worker.encryptToB64(fileKey, encryptionKey);
const result: EncryptedFile = {
file: {

View file

@ -46,7 +46,7 @@ class HEICConverter {
reject(Error('wait time exceeded'));
}, WAIT_TIME_IN_MICROSECONDS);
const startTime = Date.now();
const convertedHEIC: Blob =
const convertedHEIC =
await worker.convertHEIC(
fileBlob,
CONVERT_FORMAT

View file

@ -29,6 +29,7 @@ export const getDedicatedCryptoWorker = () => {
return cryptoComlinkWorker;
}
};
export const CryptoWorker = getDedicatedCryptoWorker()?.remote;
export const getDedicatedConvertWorker = () => {

View file

@ -11,7 +11,7 @@ export const getActualKey = async () => {
);
const cryptoWorker = await new CryptoWorker();
const key: string = await cryptoWorker.decryptB64(
const key = await cryptoWorker.decryptB64(
encryptionKeyAttributes.encryptedData,
encryptionKeyAttributes.nonce,
encryptionKeyAttributes.key

View file

@ -1,4 +1,4 @@
import { KEK, KeyAttributes } from 'types/user';
import { KeyAttributes } from 'types/user';
import { SESSION_KEYS, setKey } from 'utils/storage/sessionStorage';
import { getData, LS_KEYS, setData } from 'utils/storage/localStorage';
import { getActualKey, getToken } from 'utils/common/key';
@ -62,9 +62,8 @@ export async function generateAndSaveIntermediateKeyAttributes(
key: string
): Promise<KeyAttributes> {
const cryptoWorker = await new CryptoWorker();
const intermediateKekSalt: string =
await cryptoWorker.generateSaltToDeriveKey();
const intermediateKek: KEK = await cryptoWorker.deriveInteractiveKey(
const intermediateKekSalt = await cryptoWorker.generateSaltToDeriveKey();
const intermediateKek = await cryptoWorker.deriveInteractiveKey(
passphrase,
intermediateKekSalt
);
@ -131,7 +130,7 @@ async function createNewRecoveryKey() {
const cryptoWorker = await new CryptoWorker();
const recoveryKey: string = await cryptoWorker.generateEncryptionKey();
const recoveryKey = await cryptoWorker.generateEncryptionKey();
const encryptedMasterKey = await cryptoWorker.encryptToB64(
masterKey,
recoveryKey