Source code

Revision control

Copy as Markdown

Other Tools

<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/webauthn/helpers.js"></script>
<script>
'use strict';
const textEncoder = new TextEncoder();
let authenticatorArgs = {
protocol: 'ctap2_1',
transport: 'internal',
hasResidentKey: true,
hasUserVerification: true,
isUserVerified: true,
};
window.onload = async function() {
test_driver.set_test_context(parent);
const authenticator = await window.test_driver.add_virtual_authenticator(authenticatorArgs);
let enabled = true;
let name = `OK`;
try {
const publicKey = {
rp: {
id: window.location.hostname,
name: 'Joe',
},
user: {
name: 'user@domain',
id: Uint8Array.from('id', c => c.charCodeAt(0)),
displayName: 'User',
},
challenge: textEncoder.encode('Enrollment challenge'),
pubKeyCredParams: [{
type: 'public-key',
alg: -7, // ECDSA, not supported on Windows.
}, {
type: 'public-key',
alg: -257, // RSA, supported on Windows.
}],
authenticatorSelection: {
userVerification: 'required',
residentKey: 'required',
authenticatorAttachment: 'platform',
},
extensions: {
payment: {
isPayment: true,
},
}
};
await window.test_driver.bless('user activation');
await navigator.credentials.create({
publicKey
});
} catch (e) {
enabled = false;
name = e.name;
}
await window.test_driver.remove_virtual_authenticator(authenticator);
parent.postMessage({ type: 'availability-result', enabled, name }, '*');
}
</script>