1
0
mirror of https://github.com/bitwarden/browser.git synced 2025-01-31 22:51:28 +01:00

[EC-598] feat: add general error handling for attestation

This commit is contained in:
Andreas Coroiu 2023-03-30 10:59:19 +02:00
parent b3d5ab4472
commit e7454501ea
No known key found for this signature in database
GPG Key ID: E70B5FFC81DFEC1A
2 changed files with 41 additions and 28 deletions

View File

@ -724,6 +724,15 @@ describe("FidoAuthenticatorService", () => {
// Signatures are non-deterministic, and webcrypto can't verify DER signature format
// expect(result.signature).toMatchSnapshot();
});
/** Spec: If any error occurred while generating the assertion signature, return an error code equivalent to "UnknownError" and terminate the operation. */
it("should throw unkown error if creation fails", async () => {
cipherService.updateWithServer.mockRejectedValue(new Error("Internal error"));
const result = async () => await authenticator.getAssertion(params);
await expect(result).rejects.toThrowError(Fido2AutenticatorErrorCode.Unknown);
});
});
}

View File

@ -173,6 +173,7 @@ export class Fido2AuthenticatorService implements Fido2AuthenticatorServiceAbstr
throw new Fido2AutenticatorError(Fido2AutenticatorErrorCode.NotAllowed);
}
try {
const selectedCredentialId =
params.allowCredentialDescriptorList?.length > 0
? selectedCipher.fido2Key.nonDiscoverableId
@ -205,6 +206,9 @@ export class Fido2AuthenticatorService implements Fido2AuthenticatorServiceAbstr
},
signature,
};
} catch {
throw new Fido2AutenticatorError(Fido2AutenticatorErrorCode.Unknown);
}
}
private async vaultContainsCredentials(