@@ -40519,11 +40519,9 @@ function b64ToJsObject(b64, desc) {
40519
40519
return JSON.parse(ab2str(coerceToArrayBuffer(b64, desc)));
40520
40520
}
40521
40521
if (typeof self !== "undefined" && "crypto" in self) {
40522
- console.warn("[FIDO2-LIB] Native crypto is enabled");
40523
40522
webcrypto = self.crypto;
40524
40523
} else {
40525
40524
if (mod1 && mod1.webcrypto) {
40526
- console.warn("[FIDO2-LIB] Native crypto is enabled");
40527
40525
webcrypto = mod1.webcrypto;
40528
40526
} else {
40529
40527
webcrypto = new Crypto();
@@ -43504,7 +43502,7 @@ async function parseAuthnrAssertionResponse(msg) {
43504
43502
throw new TypeError("expected response to be Object");
43505
43503
}
43506
43504
let userHandle;
43507
- if (msg.response.userHandle !== undefined) {
43505
+ if (msg.response.userHandle !== undefined && msg.response.userHandle !== null ) {
43508
43506
userHandle = coerceToArrayBuffer(msg.response.userHandle, "response.userHandle");
43509
43507
if (userHandle.byteLength === 0) {
43510
43508
userHandle = undefined;
@@ -43672,7 +43670,7 @@ function validateAssertionResponse() {
43672
43670
if (typeof req.response.signature !== "string" && !(req.response.signature instanceof ArrayBuffer)) {
43673
43671
throw new TypeError("expected 'response.signature' to be base64 String or ArrayBuffer");
43674
43672
}
43675
- if (typeof req.response.userHandle !== "string" && !(req.response.userHandle instanceof ArrayBuffer) && req.response.userHandle !== undefined) {
43673
+ if (typeof req.response.userHandle !== "string" && !(req.response.userHandle instanceof ArrayBuffer) && req.response.userHandle !== undefined && req.response.userHandle !== null ) {
43676
43674
throw new TypeError("expected 'response.userHandle' to be base64 String, ArrayBuffer, or undefined");
43677
43675
}
43678
43676
this.audit.validRequest = true;
0 commit comments