| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>TestCredentials</title> |
| <script> |
| var CHALLENGE = new TextEncoder().encode("climb a mountain"); |
| var PUBLIC_KEY_RP = { |
| id: "subdomain.example.test", |
| name: "Acme" |
| }; |
| |
| var PUBLIC_KEY_USER = { |
| id: new TextEncoder().encode("1098237235409872"), |
| name: "avery.a.jones@example.com", |
| displayName: "Avery A. Jones", |
| icon: "https://pics.acme.com/00/p/aBjjjpqPb.png" |
| }; |
| |
| var PUBLIC_KEY_PARAMETERS = [{ |
| type: "public-key", |
| alg: -7, |
| },]; |
| |
| var ACCEPTABLE_CREDENTIAL = { |
| type: "public-key", |
| id: new TextEncoder().encode("acceptableCredential"), |
| transports: ["usb", "nfc", "ble"] |
| }; |
| |
| function doCreatePublicKeyCredential() { |
| if (window.PublicKeyCredential === undefined) { |
| window.document.title = 'Fail: navigator.credentials.create({publicKey}) === undefined'; |
| return; |
| } |
| |
| var customPublicKey = { |
| challenge: CHALLENGE, |
| rp: PUBLIC_KEY_RP, |
| user: PUBLIC_KEY_USER, |
| pubKeyCredParams: PUBLIC_KEY_PARAMETERS, |
| }; |
| |
| navigator.credentials.create({publicKey : customPublicKey}) |
| .then(r => { window.document.title = 'Success'; |
| }).catch(e => { |
| if (e.message == "Not implemented") { |
| window.document.title = 'Success'; |
| } else { |
| window.document.title = 'Fail: ' + e.name + e.message; |
| } |
| }); |
| } |
| |
| function doGetPublicKeyCredential() { |
| if (window.PublicKeyCredential === undefined) { |
| window.document.title = 'Fail: navigator.credentials.get({publicKey}) === undefined'; |
| return; |
| } |
| |
| var customPublicKey = { |
| challenge: CHALLENGE, |
| rpId: "subdomain.example.test", |
| allowCredentials: [ACCEPTABLE_CREDENTIAL] |
| }; |
| |
| navigator.credentials.get({publicKey : customPublicKey}) |
| .then(r => { window.document.title = 'Success'; |
| }).catch(e => { |
| if (e.message == "Not implemented") { |
| window.document.title = 'Success'; |
| } else { |
| window.document.title = 'Fail: ' + e.name + e.message; |
| } |
| }); |
| } |
| |
| function doIsUserVerifyingPlatformAuthenticatorAvailable() { |
| if (window.PublicKeyCredential === undefined) { |
| window.document.title = 'Fail: isUserVerifyingPlatformAuthenticatorAvailable() === undefined'; |
| return; |
| } |
| |
| if (window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable === undefined) { |
| window.document.title = 'Fail: isUserVerifyingPlatformAuthenticatorAvailable() === undefined'; |
| return; |
| } |
| |
| PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() |
| .then(r => { |
| if (r == false) { |
| window.document.title = 'Success'; |
| } else { |
| window.document.title = 'Fail: expected response to be false, got ' + r + ' instead'; |
| } |
| }) |
| .catch(e => { |
| window.document.title = 'Fail: ' + e.name + " " + e.message; |
| }); |
| } |
| </script> |
| </head> |
| <body> |
| </body> |
| </html> |