updated generateIntermediateKeyAttribute to save key to localDB
This commit is contained in:
parent
176db8b9ee
commit
6059e63064
|
@ -13,7 +13,7 @@ import { getKey, SESSION_KEYS, setKey } from 'utils/storage/sessionStorage';
|
||||||
import { B64EncryptionResult } from 'services/uploadService';
|
import { B64EncryptionResult } from 'services/uploadService';
|
||||||
import CryptoWorker, {
|
import CryptoWorker, {
|
||||||
setSessionKeys,
|
setSessionKeys,
|
||||||
generateIntermediateKeyAttributes,
|
generateAndSaveIntermediateKeyAttributes,
|
||||||
} from 'utils/crypto';
|
} from 'utils/crypto';
|
||||||
import { Spinner } from 'react-bootstrap';
|
import { Spinner } from 'react-bootstrap';
|
||||||
import { getActualKey } from 'utils/common/key';
|
import { getActualKey } from 'utils/common/key';
|
||||||
|
@ -94,13 +94,10 @@ export default function Generate() {
|
||||||
keyAttributes,
|
keyAttributes,
|
||||||
updatedKey
|
updatedKey
|
||||||
);
|
);
|
||||||
setData(
|
await generateAndSaveIntermediateKeyAttributes(
|
||||||
LS_KEYS.KEY_ATTRIBUTES,
|
|
||||||
await generateIntermediateKeyAttributes(
|
|
||||||
passphrase,
|
passphrase,
|
||||||
updatedKeyAttributes,
|
updatedKeyAttributes,
|
||||||
key
|
key
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
setSessionKeys(key);
|
setSessionKeys(key);
|
||||||
|
|
|
@ -12,7 +12,7 @@ import * as Yup from 'yup';
|
||||||
import { KeyAttributes } from 'types';
|
import { KeyAttributes } from 'types';
|
||||||
import { setKey, SESSION_KEYS, getKey } from 'utils/storage/sessionStorage';
|
import { setKey, SESSION_KEYS, getKey } from 'utils/storage/sessionStorage';
|
||||||
import CryptoWorker, {
|
import CryptoWorker, {
|
||||||
generateIntermediateKeyAttributes,
|
generateAndSaveIntermediateKeyAttributes,
|
||||||
setSessionKeys,
|
setSessionKeys,
|
||||||
} from 'utils/crypto';
|
} from 'utils/crypto';
|
||||||
import { logoutUser } from 'services/userService';
|
import { logoutUser } from 'services/userService';
|
||||||
|
@ -72,12 +72,11 @@ export default function Credentials() {
|
||||||
kek
|
kek
|
||||||
);
|
);
|
||||||
if (isFirstLogin()) {
|
if (isFirstLogin()) {
|
||||||
const intermediateKeyAttributes = await generateIntermediateKeyAttributes(
|
generateAndSaveIntermediateKeyAttributes(
|
||||||
passphrase,
|
passphrase,
|
||||||
keyAttributes,
|
keyAttributes,
|
||||||
key
|
key
|
||||||
);
|
);
|
||||||
setData(LS_KEYS.KEY_ATTRIBUTES, intermediateKeyAttributes);
|
|
||||||
}
|
}
|
||||||
setSessionKeys(key);
|
setSessionKeys(key);
|
||||||
router.push('/gallery');
|
router.push('/gallery');
|
||||||
|
|
|
@ -14,7 +14,7 @@ import { getKey, SESSION_KEYS, setKey } from 'utils/storage/sessionStorage';
|
||||||
import { B64EncryptionResult } from 'services/uploadService';
|
import { B64EncryptionResult } from 'services/uploadService';
|
||||||
import CryptoWorker, {
|
import CryptoWorker, {
|
||||||
setSessionKeys,
|
setSessionKeys,
|
||||||
generateIntermediateKeyAttributes,
|
generateAndSaveIntermediateKeyAttributes,
|
||||||
} from 'utils/crypto';
|
} from 'utils/crypto';
|
||||||
import { Spinner } from 'react-bootstrap';
|
import { Spinner } from 'react-bootstrap';
|
||||||
|
|
||||||
|
@ -103,14 +103,10 @@ export default function Generate() {
|
||||||
getData(LS_KEYS.USER).name,
|
getData(LS_KEYS.USER).name,
|
||||||
keyAttributes
|
keyAttributes
|
||||||
);
|
);
|
||||||
|
await generateAndSaveIntermediateKeyAttributes(
|
||||||
setData(
|
|
||||||
LS_KEYS.KEY_ATTRIBUTES,
|
|
||||||
await generateIntermediateKeyAttributes(
|
|
||||||
passphrase,
|
passphrase,
|
||||||
keyAttributes,
|
keyAttributes,
|
||||||
key
|
key
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
setSessionKeys(key);
|
setSessionKeys(key);
|
||||||
|
|
|
@ -10,11 +10,11 @@ const CryptoWorker: any =
|
||||||
runningInBrowser() &&
|
runningInBrowser() &&
|
||||||
Comlink.wrap(new Worker('worker/crypto.worker.js', { type: 'module' }));
|
Comlink.wrap(new Worker('worker/crypto.worker.js', { type: 'module' }));
|
||||||
|
|
||||||
export async function generateIntermediateKeyAttributes(
|
export async function generateAndSaveIntermediateKeyAttributes(
|
||||||
passphrase,
|
passphrase,
|
||||||
keyAttributes,
|
keyAttributes,
|
||||||
key
|
key
|
||||||
): Promise<KeyAttributes> {
|
) {
|
||||||
const cryptoWorker = await new CryptoWorker();
|
const cryptoWorker = await new CryptoWorker();
|
||||||
const intermediateKekSalt: string = await cryptoWorker.generateSaltToDeriveKey();
|
const intermediateKekSalt: string = await cryptoWorker.generateSaltToDeriveKey();
|
||||||
const intermediateKek: KEK = await cryptoWorker.deriveIntermediateKey(
|
const intermediateKek: KEK = await cryptoWorker.deriveIntermediateKey(
|
||||||
|
@ -25,7 +25,8 @@ export async function generateIntermediateKeyAttributes(
|
||||||
key,
|
key,
|
||||||
intermediateKek.key
|
intermediateKek.key
|
||||||
);
|
);
|
||||||
return {
|
|
||||||
|
const updatedKeyAttributes = {
|
||||||
kekSalt: intermediateKekSalt,
|
kekSalt: intermediateKekSalt,
|
||||||
encryptedKey: encryptedKeyAttributes.encryptedData,
|
encryptedKey: encryptedKeyAttributes.encryptedData,
|
||||||
keyDecryptionNonce: encryptedKeyAttributes.nonce,
|
keyDecryptionNonce: encryptedKeyAttributes.nonce,
|
||||||
|
@ -35,6 +36,7 @@ export async function generateIntermediateKeyAttributes(
|
||||||
opsLimit: intermediateKek.opsLimit,
|
opsLimit: intermediateKek.opsLimit,
|
||||||
memLimit: intermediateKek.memLimit,
|
memLimit: intermediateKek.memLimit,
|
||||||
};
|
};
|
||||||
|
setData(LS_KEYS.KEY_ATTRIBUTES, updatedKeyAttributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const setSessionKeys = async (key: string) => {
|
export const setSessionKeys = async (key: string) => {
|
||||||
|
|
Loading…
Reference in a new issue