diff options
Diffstat (limited to 'testing/web-platform/tests/webauthn/createcredential-getpublickey.https.html')
-rw-r--r-- | testing/web-platform/tests/webauthn/createcredential-getpublickey.https.html | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webauthn/createcredential-getpublickey.https.html b/testing/web-platform/tests/webauthn/createcredential-getpublickey.https.html new file mode 100644 index 0000000000..215519913d --- /dev/null +++ b/testing/web-platform/tests/webauthn/createcredential-getpublickey.https.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>WebAuthn getPublicKey</title> +<meta name="timeout" content="long"> +<link rel="help" href="https://w3c.github.io/webauthn/#sctn-public-key-easy"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="helpers.js"></script> +<script src="resources/utils.js"></script> +<script> +function testGetPublicKey() { + standardSetup(function() { + promise_test(async t => { + let cred = await createCredential(); + const response = cred.response; + assert_equals(response.getPublicKeyAlgorithm(), + cose_alg_ECDSA_w_SHA256); + + const attestationObject = + new Cbor(response.attestationObject).getCBOR(); + const claimedAuthDataHex = uint8ArrayToHex( + new Uint8Array(response.getAuthenticatorData())); + const actualAuthDataHex = uint8ArrayToHex(attestationObject.authData); + assert_equals(actualAuthDataHex, claimedAuthDataHex); + + // Check that the x and y coordinates of the public key appear in + // the claimed SPKI, at least. + const spkiHex = uint8ArrayToHex( + new Uint8Array(response.getPublicKey())); + const authData = parseAuthenticatorData(attestationObject.authData); + const pubKey = authData.attestedCredentialData.credentialPublicKey; + const xHex = uint8ArrayToHex(pubKey.x); + const yHex = uint8ArrayToHex(pubKey.y); + assert_not_equals(-1, spkiHex.indexOf(xHex)); + assert_not_equals(-1, spkiHex.indexOf(yHex)); + + t.done(); + }); + }); +} + +testGetPublicKey(); +/* JSHINT */ +/* globals standardSetup, createCredential */ +</script> +</head> +<body></body> +</html> |