updated generateIntermediateKeyAttribute to save key to localDB

This commit is contained in:
Abhinav-grd 2021-04-05 11:20:40 +05:30
parent 176db8b9ee
commit 6059e63064
4 changed files with 17 additions and 23 deletions

View file

@ -13,7 +13,7 @@ import { getKey, SESSION_KEYS, setKey } from 'utils/storage/sessionStorage';
import { B64EncryptionResult } from 'services/uploadService';
import CryptoWorker, {
setSessionKeys,
generateIntermediateKeyAttributes,
generateAndSaveIntermediateKeyAttributes,
} from 'utils/crypto';
import { Spinner } from 'react-bootstrap';
import { getActualKey } from 'utils/common/key';
@ -94,13 +94,10 @@ export default function Generate() {
keyAttributes,
updatedKey
);
setData(
LS_KEYS.KEY_ATTRIBUTES,
await generateIntermediateKeyAttributes(
passphrase,
updatedKeyAttributes,
key
)
await generateAndSaveIntermediateKeyAttributes(
passphrase,
updatedKeyAttributes,
key
);
setSessionKeys(key);

View file

@ -12,7 +12,7 @@ import * as Yup from 'yup';
import { KeyAttributes } from 'types';
import { setKey, SESSION_KEYS, getKey } from 'utils/storage/sessionStorage';
import CryptoWorker, {
generateIntermediateKeyAttributes,
generateAndSaveIntermediateKeyAttributes,
setSessionKeys,
} from 'utils/crypto';
import { logoutUser } from 'services/userService';
@ -72,12 +72,11 @@ export default function Credentials() {
kek
);
if (isFirstLogin()) {
const intermediateKeyAttributes = await generateIntermediateKeyAttributes(
generateAndSaveIntermediateKeyAttributes(
passphrase,
keyAttributes,
key
);
setData(LS_KEYS.KEY_ATTRIBUTES, intermediateKeyAttributes);
}
setSessionKeys(key);
router.push('/gallery');

View file

@ -14,7 +14,7 @@ import { getKey, SESSION_KEYS, setKey } from 'utils/storage/sessionStorage';
import { B64EncryptionResult } from 'services/uploadService';
import CryptoWorker, {
setSessionKeys,
generateIntermediateKeyAttributes,
generateAndSaveIntermediateKeyAttributes,
} from 'utils/crypto';
import { Spinner } from 'react-bootstrap';
@ -103,14 +103,10 @@ export default function Generate() {
getData(LS_KEYS.USER).name,
keyAttributes
);
setData(
LS_KEYS.KEY_ATTRIBUTES,
await generateIntermediateKeyAttributes(
passphrase,
keyAttributes,
key
)
await generateAndSaveIntermediateKeyAttributes(
passphrase,
keyAttributes,
key
);
setSessionKeys(key);

View file

@ -10,11 +10,11 @@ const CryptoWorker: any =
runningInBrowser() &&
Comlink.wrap(new Worker('worker/crypto.worker.js', { type: 'module' }));
export async function generateIntermediateKeyAttributes(
export async function generateAndSaveIntermediateKeyAttributes(
passphrase,
keyAttributes,
key
): Promise<KeyAttributes> {
) {
const cryptoWorker = await new CryptoWorker();
const intermediateKekSalt: string = await cryptoWorker.generateSaltToDeriveKey();
const intermediateKek: KEK = await cryptoWorker.deriveIntermediateKey(
@ -25,7 +25,8 @@ export async function generateIntermediateKeyAttributes(
key,
intermediateKek.key
);
return {
const updatedKeyAttributes = {
kekSalt: intermediateKekSalt,
encryptedKey: encryptedKeyAttributes.encryptedData,
keyDecryptionNonce: encryptedKeyAttributes.nonce,
@ -35,6 +36,7 @@ export async function generateIntermediateKeyAttributes(
opsLimit: intermediateKek.opsLimit,
memLimit: intermediateKek.memLimit,
};
setData(LS_KEYS.KEY_ATTRIBUTES, updatedKeyAttributes);
}
export const setSessionKeys = async (key: string) => {