23 lines
783 B
TypeScript
23 lines
783 B
TypeScript
import { B64EncryptionResult } from '@ente/shared/crypto/types';
|
|
import { CustomError } from '@ente/shared/error';
|
|
import { getKey, SESSION_KEYS } from '@ente/shared/storage/sessionStorage';
|
|
import ComlinkCryptoWorker from '@ente/shared/crypto';
|
|
|
|
export const getActualKey = async () => {
|
|
try {
|
|
const encryptionKeyAttributes: B64EncryptionResult = getKey(
|
|
SESSION_KEYS.ENCRYPTION_KEY
|
|
);
|
|
|
|
const cryptoWorker = await ComlinkCryptoWorker.getInstance();
|
|
const key = await cryptoWorker.decryptB64(
|
|
encryptionKeyAttributes.encryptedData,
|
|
encryptionKeyAttributes.nonce,
|
|
encryptionKeyAttributes.key
|
|
);
|
|
return key;
|
|
} catch (e) {
|
|
throw new Error(CustomError.KEY_MISSING);
|
|
}
|
|
};
|