|
@@ -11,7 +11,7 @@ import type { KeyAttributes, User } from "../user/types";
|
|
|
|
|
|
export interface VerifyMasterPasswordFormProps {
|
|
|
user: User;
|
|
|
- keyAttributes: KeyAttributes;
|
|
|
+ keyAttributes: KeyAttributes | undefined;
|
|
|
callback: (
|
|
|
key: string,
|
|
|
kek: string,
|
|
@@ -48,14 +48,15 @@ export default function VerifyMasterPasswordForm({
|
|
|
srpAttributes.opsLimit,
|
|
|
srpAttributes.memLimit,
|
|
|
);
|
|
|
- } else {
|
|
|
+ } else if (keyAttributes) {
|
|
|
kek = await cryptoWorker.deriveKey(
|
|
|
passphrase,
|
|
|
keyAttributes.kekSalt,
|
|
|
keyAttributes.opsLimit,
|
|
|
keyAttributes.memLimit,
|
|
|
);
|
|
|
- }
|
|
|
+ } else
|
|
|
+ throw new Error("Both SRP and key attributes are missing");
|
|
|
} catch (e) {
|
|
|
log.error("failed to derive key", e);
|
|
|
throw Error(CustomError.WEAK_DEVICE);
|