webauthn-rs
webauthn-rs copied to clipboard
Compatibility Test Failure
Please add any extra details here:
- Browser version - Edge 105 on Windows 11 22H2 build 22622.290
- Type of authenticator hardware - TPM attestation with ECC key
- Any other details that may help - When parsing the unique field from pubArea during an attestation verification, unique is a TPM2B_PUBLIC_KEY_RSA only if the TPMI_ALG_PUBLIC is TPM_ALG_RSA. If TPMI_ALG_PUBLIC is TPM_ALG_ECC, unique is a TPMS_ECC_POINT. See TPM Rev 2.0 part 2, structures, section 12.2.3.2. There is a TPMI_ECC_CURVE, TPMT_KDF_SCHEME, then a TPMS_ECC_POINT to parse out instead of the TPMI_RSA_KEY_BITS, exponent, and modulus when the key type is RSA. Compare the curve ID which has to be translated between TCG values to COSE values, along with the X and Y values from the credential public key, they must match. The signature is verified just like any other ECC key.
{"direct_attest_1":{"Failed":{"err":"ParseNOMFailure","ccr":{"publicKey":{"rp":{"name":"webauthn.firstyear.id.au","id":"webauthn.firstyear.id.au"},"user":{"id":"Mhi6ldkISTGNAmP7pzZfIA","name":"compatuser","displayName":"compatuser"},"challenge":"E2YebMmG9992XialpFL1lkPptOIBPeKsphNkt1JcbKk","pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-35},{"type":"public-key","alg":-36},{"type":"public-key","alg":-257},{"type":"public-key","alg":-258},{"type":"public-key","alg":-259},{"type":"public-key","alg":-37},{"type":"public-key","alg":-38},{"type":"public-key","alg":-39},{"type":"public-key","alg":-8},{"type":"public-key","alg":-65535}],"timeout":60000,"attestation":"direct","authenticatorSelection":{"requireResidentKey":false,"userVerification":"discouraged"},"extensions":{"credentialProtectionPolicy":"userVerificationOptionalWithCredentialIDList","enforceCredentialProtectionPolicy":false,"uvm":true,"credProps":true,"minPinLength":true,"hmacCreateSecret":true}}},"rpkc":{"id":"BoLAd0jIDI0ztrH1N45XQ_0w_N5ndt3hpNixQi3J2No","rawId":"BoLAd0jIDI0ztrH1N45XQ_0w_N5ndt3hpNixQi3J2No","response":{"attestationObject":"o2NmbXRjdHBtZ2F0dFN0bXSmY2FsZzn__mNzaWdZAQAzaz3HmrpCUlkEV2iv-TF2_y0MD7MVc0rLyuD_Ah3X9vx3G21WgeI89PyyvEYw3yEUUdO7sn6YxubMfuePpuSawYKAeSbw3O4LkMDC2fqZmlLyTfoC8L1_8vExv6mWPN7H5U6E_K7IZ38H3mO736ie-mDyoXxalj4WkA9zjKXJM5t7GhHQAqtDaX4HmM47pFH25atgQnoLdB0MTzh6jgYjIiDrMSOqhrQYskiaX_LFfKTiWfviwMOYcMA8FkRPc05LKvPTxp-bx_ghHrd_gIAUA3MjfElVYCVfveMnI61ZwARnf0cTrFp7vfga85YeAXaLOu29JifjodW6DsjL_dnXY3ZlcmMyLjBjeDVjglkFtTCCBbEwggOZoAMCAQICEAaSyUKea0mgpfZbwvZ7byMwDQYJKoZIhvcNAQELBQAwQTE_MD0GA1UEAxM2RVVTLU5UQy1LRVlJRC0yM0Y0RTIyQUQzQkUzNzRBNDQ5NzcyOTU0QUEyODNBRUQ3NTI1NzJFMB4XDTIxMTEyNTIxMzA1NFoXDTI3MDYwMzE3NTE0N1owADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANwiGFmQdIOYto4qGegANWT-LdSr5T5_tj7E_aKtLSNP8bqc6eP11VvCi9ZFnbjiFxi1NdY2GAbUDb3zr1PnZpOcwvn1gh704PLtkZYFkwvFRvm5bIvtsuqYgn71MCup1GCTeJ3EcylidbVpmwX5s9XK5vyRsMpQ1TxPwxPq32toIBcQ3pgZyb9Ic_m1IfWE_hC_XlwZzqfFnFL7XszCGwJmziFjML9VeBrdv0dkrDWMv1sNI1PDDm_JQ8iZwZ83At3qsgnmwN4zudOMUPRMJBNeiVBj9GjW7tV9tSG2Oa_F_JUo0b1Gr_y08PSMhAckj6ZaR8_EBppoty9CbTm65nsCAwEAAaOCAeQwggHgMA4GA1UdDwEB_wQEAwIHgDAMBgNVHRMBAf8EAjAAMG0GA1UdIAEB_wRjMGEwXwYJKwYBBAGCNxUfMFIwUAYIKwYBBQUHAgIwRB5CAFQAQwBQAEEAIAAgAFQAcgB1AHMAdABlAGQAIAAgAFAAbABhAHQAZgBvAHIAbQAgACAASQBkAGUAbgB0AGkAdAB5MBAGA1UdJQQJMAcGBWeBBQgDMEoGA1UdEQEB_wRAMD6kPDA6MTgwDgYFZ4EFAgMMBWlkOjcyMBAGBWeBBQICDAdOUENUNzV4MBQGBWeBBQIBDAtpZDo0RTU0NDMwMDAfBgNVHSMEGDAWgBTTjd-fy_wwa14b1TQrBpJk2U7fpTAdBgNVHQ4EFgQUeq9wlX_04m4THgx-yMSO7QwViv8wgbIGCCsGAQUFBwEBBIGlMIGiMIGfBggrBgEFBQcwAoaBkmh0dHA6Ly9hemNzcHJvZGV1c2Fpa3B1Ymxpc2guYmxvYi5jb3JlLndpbmRvd3MubmV0L2V1cy1udGMta2V5aWQtMjNmNGUyMmFkM2JlMzc0YTQ0OTc3Mjk1NGFhMjgzYWVkNzUyNTcyZS8xMzY0YTJkMy1hZTU0LTQ3YjktODdmMy0zMjA1NDE5NDc0MGUuY2VyMA0GCSqGSIb3DQEBCwUAA4ICAQCiPgQwqysYPQpMiRDpxbsx24d1xVX_kiUwwcQJE3mSYvwe4tnaQSHjlfB3OkpDMjotxFl33oUMxxScjSrgp_1o6rdkiO6QvPMgsqDMX4w-dmWn00akwNbMasTxg39Ceqtocw4i-R9AlNwndpe3QUIt8xkQ5dhlcIF8lc1dXmgz4mkMAtOi3VgaNvHTsRF9pLbTczJss608X8b4gHqM4t7lfIcRB8DvSyfXc7T3k21-4_3jvAb2HRoCCAyv8_XXn1UwkWTrXMLUSiE1p5Sl8ba8I_86Hsemsc0aflwRZrrY2pC3aaA3QbbfAyskiaFPw-ZibY9p0_QVq1XhAKa-dDd70mWvTGKQdrqfZI_SC5zccvDAm6aefAfnYBY2fV92ZFriihA2ULcJaESz3X3JkiK4eO1k0T2uf9-rL4lUEADibwpnsZOBeNWBsztvXDmcZGR_MSoRIQygKMw2U7AproqBPDRDFwhS5yc9UHvD6dMZ3PLx4i_eo-BLr-QJ2HARoyK8KuV0xLEq3XyjWdfZDbAueUVgtic14wK9jiSbhycRT2WV3-QU8KPm5_QCt_eBPwY81a-q84jm2ue_ok8-LYrmWpvihqRhFhK9MLVS96QaHeeuDehYNDWsSIVCr9jB-lchueZ-kZqwyl_4pPMrM7wLXBOR-bV5_pAPv3u_RvQmhVkG7zCCBuswggTToAMCAQICEzMAAAQHrjuoB9SvW8wAAAAABAcwDQYJKoZIhvcNAQELBQAwgYwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xNjA0BgNVBAMTLU1pY3Jvc29mdCBUUE0gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxNDAeFw0yMTA2MDMxNzUxNDdaFw0yNzA2MDMxNzUxNDdaMEExPzA9BgNVBAMTNkVVUy1OVEMtS0VZSUQtMjNGNEUyMkFEM0JFMzc0QTQ0OTc3Mjk1NEFBMjgzQUVENzUyNTcyRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMkPU9X8JhPBwDxmFm84D31b8xN5NQz0XR8Nji_-Z8v3WtC4lSdEwJUwqvZkj5OQ3wPA_6haONcCHzqTZhyz1aheOPhXmEeWFWjEiJFj07crEZb9wM4rM1fdcf3vCQNSSDlogC5AM-tITx31hm0YffIrzM3n70fNBBfvlw8t-yhZVOavj7l29gKsyvkR0IadruvLVWWVeH9rueHVrOwlU4wUJpjD41d4U87M3FgUGK2YacQxT0BPHzaOCTE9YhylG5fA_eCF7Q1SxAe347uIaS6I3GhAootzJy9XYeFp_uhc1Yp2hMh5wdeRkm15WKb7tE9T4vwHp0VCQEkUQn1ClN_s7PpfKNFp-DB9ez0Fh7tqag6AssrKE6LgOjfWDWUcgzgIiFLvv9Gx797IZj8LDazK1iGSqI2D8zmmxnGG47MevfY8q2udJW1G4nOcjw49x6XZHmnT3VpVKcTDbI9bEsyc2R9vngftF9FgnEVdyt-QRqE0UqEXJmjLhcxBMeyFZJd_bEAutSBpWugPk10IPFRkXppsuHMZFHJVP96IWwVmm6Q4mX018K996XDubAGblbhvPzJ9NFL_e7xM2ev3rAalz2CzSLYs48EXym7dqGTnP7F9DaF2O0IHT0GQ951wFVoGmA-IYsTMVsdlhVaImCuHgahu1W94H6BvtDkGGku7AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMCAoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsGAQQBgjcVHzASBgNVHRMBAf8ECDAGAQH_AgEAMB0GA1UdDgQWBBTTjd-fy_wwa14b1TQrBpJk2U7fpTAfBgNVHSMEGDAWgBR6jArOL0hiF-KU0a5VwVLscXSkVjBwBgNVHR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBNJTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJKoZIhvcNAQELBQADggIBAIQJqhFB71eZzZMq0w866QXDKlHcGyIa_IkTK4p5ejIdIA7FJ8neeVToAKUt9ULEb1Od2ir1y5Qx5Zp_edf4F8aikn-yw61hNB3FQ4iSV49eqEMe2Fx6OMBmHRWGtUjAlf5g_N2Qc6rHela2d69nQbpSF3Nq7AESguXxnoqZ-4CGUW0jC_b93sTd5fESHs_iwFX-zWKCwCXerqCuI3PqYWOlbCnftYhsI1CD638wJxw4YFXdSmOrF8dDnd6tlH_0qCZrBX-k4N-8QgK1-BDYIxmvUBnpLFDDitB2dP6YIglY0VcjkPd3BDmodHknG4GQeAvJKHpqF91Y3K1rOWvn4JqzHFvL3JgXgL7LbC_h9EF50HeHayPCToTS8Pmg_4dfUaCwNlxPvu9GvjrDKDNNEV5T73iWMV_GQbVsx6JULAljCthYLo-55mONDcr1x7kakXlQT-yIdIQ57Ix8eHz_qkJkvWxbw8vOgrXhkLK0jGAvW_YSkTV7G9_TYDJ--8IjPPHC1bexKq72-L7KetwH6LbWHGeYkJnaZ1zqeN4USxyJn8K4uhwnjSeK2sZ942zn5EnZnjd85yfdkPLcQY8xtYiWNjc_PprTrjhLyMO71VdMkTDiTTtDha37qywNISPV7vBv8YDiDjX8ElsWbTHTC0XgBp0h-RkjaRKI5C4eTUebZ3B1YkFyZWFYdgAjAAsABAByACCd_8vzbDg65pn7mGjcbcuJ1xU4hL4oA5IsEkFYv60irgAQABAAAwAQACCweOEk52r8mnJ6y9bsGcM3V4dL1LWt8I67Jjx5mcrFuAAgjwd_jaCEEOAJLV97kX3VgbxzopPYMC4NqEFjD0m55PpoY2VydEluZm9Yof9UQ0eAFwAiAAvgBLotxyAAbygBG4efe84V0SVYnO6xLrYaC1oyLgTt3QAUjcjAdORvuzxCfLBU7KNxPFSPE84AAAAUHn9jxccO2yRJARoXARNN0IPNWxnEACIACxfcHNQuRgb_05OKyBrS_1kY5IYxOl67gTlqkHd4g6slACIAC7tcXSHNTw8ANLeZd3PKooKsgrMIlGD47aunn05BcquwaGF1dGhEYXRhWKRqubvw35oW-R27M7uxMvr50Xx4LEgmxuxw7O5Y2X71KkUAAAAACJhwWMrcS4G24TDeUNy-lgAgBoLAd0jIDI0ztrH1N45XQ_0w_N5ndt3hpNixQi3J2NqlAQIDJiABIVggsHjhJOdq_JpyesvW7BnDN1eHS9S1rfCOuyY8eZnKxbgiWCCPB3-NoIQQ4AktX3uRfdWBvHOik9gwLg2oQWMPSbnk-g","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiRTJZZWJNbUc5OTkyWGlhbHBGTDFsa1BwdE9JQlBlS3NwaE5rdDFKY2JLayIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlLCJvdGhlcl9rZXlzX2Nhbl9iZV9hZGRlZF9oZXJlIjoiZG8gbm90IGNvbXBhcmUgY2xpZW50RGF0YUpTT04gYWdhaW5zdCBhIHRlbXBsYXRlLiBTZWUgaHR0cHM6Ly9nb28uZ2wveWFiUGV4In0"},"type":"public-key","extensions":{"appid":null,"cred_blob":null,"cred_props":{"rk":true}}}}},"indirect_attest_1":{"Failed":{"err":"ParseNOMFailure","ccr":{"publicKey":{"rp":{"name":"webauthn.firstyear.id.au","id":"webauthn.firstyear.id.au"},"user":{"id":"l3LEQcpJRj6YM94Itzg4jw","name":"compatuser","displayName":"compatuser"},"challenge":"1wJw_zqjY27EBlc1679b7F6nDOJkU5yXOPHxMpNTjOk","pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-35},{"type":"public-key","alg":-36},{"type":"public-key","alg":-257},{"type":"public-key","alg":-258},{"type":"public-key","alg":-259},{"type":"public-key","alg":-37},{"type":"public-key","alg":-38},{"type":"public-key","alg":-39},{"type":"public-key","alg":-8},{"type":"public-key","alg":-65535}],"timeout":60000,"attestation":"indirect","authenticatorSelection":{"requireResidentKey":false,"userVerification":"discouraged"},"extensions":{"credentialProtectionPolicy":"userVerificationOptionalWithCredentialIDList","enforceCredentialProtectionPolicy":false,"uvm":true,"credProps":true,"minPinLength":true,"hmacCreateSecret":true}}},"rpkc":{"id":"fvYIjJhFJ2-BhxQmum7ff-psZimGNGJYTI9qOuMa1Q8","rawId":"fvYIjJhFJ2-BhxQmum7ff-psZimGNGJYTI9qOuMa1Q8","response":{"attestationObject":"o2NmbXRjdHBtZ2F0dFN0bXSmY2FsZzn__mNzaWdZAQCYAmgI7V00NLHPtKfkHAVKr8SrtHIaqpcvGMhHTB43ePFt9aLF185qlJHk7hXVZqjZR_BFFlX0OKLCjLCdI1f1wCqzLxJOpL4ZoL3oAz-tKAD2UGIJL1PGDf6VbWT8STQkOQw9ZCoPCylqGsGRrycnZ36KxFblGA96_yJxrkkYYW2r5sswQPPhGMOsWakGcB_Ado3t6JEQMSQJWF9W-BJD1akpTJ5tQDA1Oc-KSdVYZ6n3b1814lz77vQ2egOFRBZ9S0aKYv7o_D5iesiB4hRaTvX1K96QqcFdjoewkUGKJIeED4zPOQb0EpTvc7Kzv035yRUjUhOsKsTR2aib0XhIY3ZlcmMyLjBjeDVjglkFtTCCBbEwggOZoAMCAQICEAaSyUKea0mgpfZbwvZ7byMwDQYJKoZIhvcNAQELBQAwQTE_MD0GA1UEAxM2RVVTLU5UQy1LRVlJRC0yM0Y0RTIyQUQzQkUzNzRBNDQ5NzcyOTU0QUEyODNBRUQ3NTI1NzJFMB4XDTIxMTEyNTIxMzA1NFoXDTI3MDYwMzE3NTE0N1owADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANwiGFmQdIOYto4qGegANWT-LdSr5T5_tj7E_aKtLSNP8bqc6eP11VvCi9ZFnbjiFxi1NdY2GAbUDb3zr1PnZpOcwvn1gh704PLtkZYFkwvFRvm5bIvtsuqYgn71MCup1GCTeJ3EcylidbVpmwX5s9XK5vyRsMpQ1TxPwxPq32toIBcQ3pgZyb9Ic_m1IfWE_hC_XlwZzqfFnFL7XszCGwJmziFjML9VeBrdv0dkrDWMv1sNI1PDDm_JQ8iZwZ83At3qsgnmwN4zudOMUPRMJBNeiVBj9GjW7tV9tSG2Oa_F_JUo0b1Gr_y08PSMhAckj6ZaR8_EBppoty9CbTm65nsCAwEAAaOCAeQwggHgMA4GA1UdDwEB_wQEAwIHgDAMBgNVHRMBAf8EAjAAMG0GA1UdIAEB_wRjMGEwXwYJKwYBBAGCNxUfMFIwUAYIKwYBBQUHAgIwRB5CAFQAQwBQAEEAIAAgAFQAcgB1AHMAdABlAGQAIAAgAFAAbABhAHQAZgBvAHIAbQAgACAASQBkAGUAbgB0AGkAdAB5MBAGA1UdJQQJMAcGBWeBBQgDMEoGA1UdEQEB_wRAMD6kPDA6MTgwDgYFZ4EFAgMMBWlkOjcyMBAGBWeBBQICDAdOUENUNzV4MBQGBWeBBQIBDAtpZDo0RTU0NDMwMDAfBgNVHSMEGDAWgBTTjd-fy_wwa14b1TQrBpJk2U7fpTAdBgNVHQ4EFgQUeq9wlX_04m4THgx-yMSO7QwViv8wgbIGCCsGAQUFBwEBBIGlMIGiMIGfBggrBgEFBQcwAoaBkmh0dHA6Ly9hemNzcHJvZGV1c2Fpa3B1Ymxpc2guYmxvYi5jb3JlLndpbmRvd3MubmV0L2V1cy1udGMta2V5aWQtMjNmNGUyMmFkM2JlMzc0YTQ0OTc3Mjk1NGFhMjgzYWVkNzUyNTcyZS8xMzY0YTJkMy1hZTU0LTQ3YjktODdmMy0zMjA1NDE5NDc0MGUuY2VyMA0GCSqGSIb3DQEBCwUAA4ICAQCiPgQwqysYPQpMiRDpxbsx24d1xVX_kiUwwcQJE3mSYvwe4tnaQSHjlfB3OkpDMjotxFl33oUMxxScjSrgp_1o6rdkiO6QvPMgsqDMX4w-dmWn00akwNbMasTxg39Ceqtocw4i-R9AlNwndpe3QUIt8xkQ5dhlcIF8lc1dXmgz4mkMAtOi3VgaNvHTsRF9pLbTczJss608X8b4gHqM4t7lfIcRB8DvSyfXc7T3k21-4_3jvAb2HRoCCAyv8_XXn1UwkWTrXMLUSiE1p5Sl8ba8I_86Hsemsc0aflwRZrrY2pC3aaA3QbbfAyskiaFPw-ZibY9p0_QVq1XhAKa-dDd70mWvTGKQdrqfZI_SC5zccvDAm6aefAfnYBY2fV92ZFriihA2ULcJaESz3X3JkiK4eO1k0T2uf9-rL4lUEADibwpnsZOBeNWBsztvXDmcZGR_MSoRIQygKMw2U7AproqBPDRDFwhS5yc9UHvD6dMZ3PLx4i_eo-BLr-QJ2HARoyK8KuV0xLEq3XyjWdfZDbAueUVgtic14wK9jiSbhycRT2WV3-QU8KPm5_QCt_eBPwY81a-q84jm2ue_ok8-LYrmWpvihqRhFhK9MLVS96QaHeeuDehYNDWsSIVCr9jB-lchueZ-kZqwyl_4pPMrM7wLXBOR-bV5_pAPv3u_RvQmhVkG7zCCBuswggTToAMCAQICEzMAAAQHrjuoB9SvW8wAAAAABAcwDQYJKoZIhvcNAQELBQAwgYwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xNjA0BgNVBAMTLU1pY3Jvc29mdCBUUE0gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxNDAeFw0yMTA2MDMxNzUxNDdaFw0yNzA2MDMxNzUxNDdaMEExPzA9BgNVBAMTNkVVUy1OVEMtS0VZSUQtMjNGNEUyMkFEM0JFMzc0QTQ0OTc3Mjk1NEFBMjgzQUVENzUyNTcyRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMkPU9X8JhPBwDxmFm84D31b8xN5NQz0XR8Nji_-Z8v3WtC4lSdEwJUwqvZkj5OQ3wPA_6haONcCHzqTZhyz1aheOPhXmEeWFWjEiJFj07crEZb9wM4rM1fdcf3vCQNSSDlogC5AM-tITx31hm0YffIrzM3n70fNBBfvlw8t-yhZVOavj7l29gKsyvkR0IadruvLVWWVeH9rueHVrOwlU4wUJpjD41d4U87M3FgUGK2YacQxT0BPHzaOCTE9YhylG5fA_eCF7Q1SxAe347uIaS6I3GhAootzJy9XYeFp_uhc1Yp2hMh5wdeRkm15WKb7tE9T4vwHp0VCQEkUQn1ClN_s7PpfKNFp-DB9ez0Fh7tqag6AssrKE6LgOjfWDWUcgzgIiFLvv9Gx797IZj8LDazK1iGSqI2D8zmmxnGG47MevfY8q2udJW1G4nOcjw49x6XZHmnT3VpVKcTDbI9bEsyc2R9vngftF9FgnEVdyt-QRqE0UqEXJmjLhcxBMeyFZJd_bEAutSBpWugPk10IPFRkXppsuHMZFHJVP96IWwVmm6Q4mX018K996XDubAGblbhvPzJ9NFL_e7xM2ev3rAalz2CzSLYs48EXym7dqGTnP7F9DaF2O0IHT0GQ951wFVoGmA-IYsTMVsdlhVaImCuHgahu1W94H6BvtDkGGku7AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMCAoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsGAQQBgjcVHzASBgNVHRMBAf8ECDAGAQH_AgEAMB0GA1UdDgQWBBTTjd-fy_wwa14b1TQrBpJk2U7fpTAfBgNVHSMEGDAWgBR6jArOL0hiF-KU0a5VwVLscXSkVjBwBgNVHR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBNJTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJKoZIhvcNAQELBQADggIBAIQJqhFB71eZzZMq0w866QXDKlHcGyIa_IkTK4p5ejIdIA7FJ8neeVToAKUt9ULEb1Od2ir1y5Qx5Zp_edf4F8aikn-yw61hNB3FQ4iSV49eqEMe2Fx6OMBmHRWGtUjAlf5g_N2Qc6rHela2d69nQbpSF3Nq7AESguXxnoqZ-4CGUW0jC_b93sTd5fESHs_iwFX-zWKCwCXerqCuI3PqYWOlbCnftYhsI1CD638wJxw4YFXdSmOrF8dDnd6tlH_0qCZrBX-k4N-8QgK1-BDYIxmvUBnpLFDDitB2dP6YIglY0VcjkPd3BDmodHknG4GQeAvJKHpqF91Y3K1rOWvn4JqzHFvL3JgXgL7LbC_h9EF50HeHayPCToTS8Pmg_4dfUaCwNlxPvu9GvjrDKDNNEV5T73iWMV_GQbVsx6JULAljCthYLo-55mONDcr1x7kakXlQT-yIdIQ57Ix8eHz_qkJkvWxbw8vOgrXhkLK0jGAvW_YSkTV7G9_TYDJ--8IjPPHC1bexKq72-L7KetwH6LbWHGeYkJnaZ1zqeN4USxyJn8K4uhwnjSeK2sZ942zn5EnZnjd85yfdkPLcQY8xtYiWNjc_PprTrjhLyMO71VdMkTDiTTtDha37qywNISPV7vBv8YDiDjX8ElsWbTHTC0XgBp0h-RkjaRKI5C4eTUebZ3B1YkFyZWFYdgAjAAsABAByACCd_8vzbDg65pn7mGjcbcuJ1xU4hL4oA5IsEkFYv60irgAQABAAAwAQACCcA3LmLuVNKxjflep6Q29KJoKpuCXpTqDqRYXKNCEbIQAg0UQIbqN1EEUZWbNhKqRSoD1LrihFQZ5LVLH4RgyTfj5oY2VydEluZm9Yof9UQ0eAFwAiAAvgBLotxyAAbygBG4efe84V0SVYnO6xLrYaC1oyLgTt3QAUZxwBL-u8k6-sqc_vwUr_F2zreawAAAAUHn97rccO2yRJARoXARNN0IPNWxnEACIAC1djfxzOtimEALQvvLLcGkcaQp8pk9w58bAmljAiyGd7ACIAC9txvZCD3D5CVneBbhID-C-dvTWTu_ngueSac3yvVP6GaGF1dGhEYXRhWKRqubvw35oW-R27M7uxMvr50Xx4LEgmxuxw7O5Y2X71KkUAAAAACJhwWMrcS4G24TDeUNy-lgAgfvYIjJhFJ2-BhxQmum7ff-psZimGNGJYTI9qOuMa1Q-lAQIDJiABIVggnANy5i7lTSsY35XqekNvSiaCqbgl6U6g6kWFyjQhGyEiWCDRRAhuo3UQRRlZs2EqpFKgPUuuKEVBnktUsfhGDJN-Pg","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiMXdKd196cWpZMjdFQmxjMTY3OWI3RjZuRE9Ka1U1eVhPUEh4TXBOVGpPayIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ"},"type":"public-key","extensions":{"appid":null,"cred_blob":null,"cred_props":{"rk":true}}}}},"none_attest_1":{"Passed":{"rs":{"cred_id":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","uv":true,"alg":"ES256","extensions":{"cred_protect":"Ignored","hmac_create_secret":"Ignored","appid":"NotRequested","cred_props":{"Unsigned":{"rk":true}}}},"ccr":{"publicKey":{"rp":{"name":"webauthn.firstyear.id.au","id":"webauthn.firstyear.id.au"},"user":{"id":"N__isz0QS_eXvT7DZutFCw","name":"compatuser","displayName":"compatuser"},"challenge":"V40hcE-5SmgfrrmgopYWWNN_63ucyy0-9D8Ue6UTemI","pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-35},{"type":"public-key","alg":-36},{"type":"public-key","alg":-257},{"type":"public-key","alg":-258},{"type":"public-key","alg":-259},{"type":"public-key","alg":-37},{"type":"public-key","alg":-38},{"type":"public-key","alg":-39},{"type":"public-key","alg":-8},{"type":"public-key","alg":-65535}],"timeout":60000,"attestation":"none","authenticatorSelection":{"requireResidentKey":false,"userVerification":"discouraged"},"extensions":{"credentialProtectionPolicy":"userVerificationOptionalWithCredentialIDList","enforceCredentialProtectionPolicy":false,"uvm":true,"credProps":true,"minPinLength":true,"hmacCreateSecret":true}}},"rpkc":{"id":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","rawId":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","response":{"attestationObject":"o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVikarm78N-aFvkduzO7sTL6-dF8eCxIJsbscOzuWNl-9SpFAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBik5kcbkHqwVDLETmIoAVVtdeRnbExwMA9CMcFyORDzpQECAyYgASFYIFrua2ZEZNyeIFWzoNQncA3IsqN-2b9YAMqBFs-wUkcMIlggv8hrjt2qWkxnPtCSLJ81NWdPM6QaD5NRDGBNE7XfRV0","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiVjQwaGNFLTVTbWdmcnJtZ29wWVdXTk5fNjN1Y3l5MC05RDhVZTZVVGVtSSIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ"},"type":"public-key","extensions":{"appid":null,"cred_blob":null,"cred_props":{"rk":true}}}}},"authdiscouraged":{"Passed":{"aus":{"cred_id":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","uv":true,"extensions":{}},"rcr":{"publicKey":{"challenge":"YJlCzXrMiYCkqFnj04zgxiqPoKKPVf5E-kkwXuljezE","timeout":60000,"rpId":"webauthn.firstyear.id.au","allowCredentials":[{"type":"public-key","id":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM"}],"userVerification":"discouraged","extensions":{"uvm":true}}},"pkc":{"id":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","rawId":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","response":{"authenticatorData":"arm78N-aFvkduzO7sTL6-dF8eCxIJsbscOzuWNl-9SoFAAAAAQ","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiWUpsQ3pYck1pWUNrcUZuajA0emd4aXFQb0tLUFZmNUUta2t3WHVsamV6RSIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ","signature":"MEUCIQDqLPsfL2Q_DNRJL0m9aSdztcB-G_Qyy_X39DWmnkOtAgIgH6uQzM7SOMh4anu6YpTX-btfMXbmOXiwe1mU8QAvZRY","userHandle":"N__isz0QS_eXvT7DZutFCw"},"extensions":{"appid":null,"cred_blob":null},"type":"public-key"}}},"authdiscouraged_consistent":"Passed","none_attest_2":{"Passed":{"rs":{"cred_id":"1o_akyvAsD1mCeeGt0xbxnbh5Htm3_HENxzxIHknHDA","uv":true,"alg":"ES256","extensions":{"cred_protect":"Ignored","hmac_create_secret":"Ignored","appid":"NotRequested","cred_props":{"Unsigned":{"rk":true}}}},"ccr":{"publicKey":{"rp":{"name":"webauthn.firstyear.id.au","id":"webauthn.firstyear.id.au"},"user":{"id":"E21dk0KgQBaPjR1_W81jhA","name":"another_user","displayName":"another_user"},"challenge":"ebK_vtKypLGlkwycSXli7HpC2_XTYtEAOXdjzfNd1RQ","pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-35},{"type":"public-key","alg":-36},{"type":"public-key","alg":-257},{"type":"public-key","alg":-258},{"type":"public-key","alg":-259},{"type":"public-key","alg":-37},{"type":"public-key","alg":-38},{"type":"public-key","alg":-39},{"type":"public-key","alg":-8},{"type":"public-key","alg":-65535}],"timeout":60000,"attestation":"none","authenticatorSelection":{"requireResidentKey":false,"userVerification":"discouraged"},"extensions":{"credentialProtectionPolicy":"userVerificationOptionalWithCredentialIDList","enforceCredentialProtectionPolicy":false,"uvm":true,"credProps":true,"minPinLength":true,"hmacCreateSecret":true}}},"rpkc":{"id":"1o_akyvAsD1mCeeGt0xbxnbh5Htm3_HENxzxIHknHDA","rawId":"1o_akyvAsD1mCeeGt0xbxnbh5Htm3_HENxzxIHknHDA","response":{"attestationObject":"o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVikarm78N-aFvkduzO7sTL6-dF8eCxIJsbscOzuWNl-9SpFAAAAAAAAAAAAAAAAAAAAAAAAAAAAINaP2pMrwLA9ZgnnhrdMW8Z24eR7Zt_xxDcc8SB5JxwwpQECAyYgASFYIPNNpda6UXBxQVRGqjTq7hcfZ_68_dwytlcr9UP_fmsPIlggNTRj9S_NmL5DT42zSGq3hhesuIX4v2vBxGbVCn_6MtY","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiZWJLX3Z0S3lwTEdsa3d5Y1NYbGk3SHBDMl9YVFl0RUFPWGRqemZOZDFSUSIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ"},"type":"public-key","extensions":{"appid":null,"cred_blob":null,"cred_props":{"rk":true}}}}},"authmultiple":{"Passed":{"aus":{"cred_id":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","uv":true,"extensions":{}},"rcr":{"publicKey":{"challenge":"lQoIuNy1IfzH_3dt3ju_VXIqPlX_zIEYuU48mGeTfXA","timeout":60000,"rpId":"webauthn.firstyear.id.au","allowCredentials":[{"type":"public-key","id":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM"}],"userVerification":"discouraged","extensions":{"uvm":true}}},"pkc":{"id":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","rawId":"GKTmRxuQerBUMsROYigBVW115GdsTHAwD0IxwXI5EPM","response":{"authenticatorData":"arm78N-aFvkduzO7sTL6-dF8eCxIJsbscOzuWNl-9SoFAAAAAg","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoibFFvSXVOeTFJZnpIXzNkdDNqdV9WWElxUGxYX3pJRVl1VTQ4bUdlVGZYQSIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ","signature":"MEUCIHr2zeGFLkYU3K6539pBiIUJ1RhyRsYD5RTnaDQsbgXgAiEA6awmGqpFZ1fXtZnyQkrjQAY7wbAFSJto53d5QSrurjc","userHandle":"N__isz0QS_eXvT7DZutFCw"},"extensions":{"appid":null,"cred_blob":null},"type":"public-key"}}},"fallback_alg":{"Passed":{"rs":{"cred_id":"nLr2Uk5F1RZgAkeoe5pEhaaolEZr8Zn5UwmkfaEEWw0","uv":true,"alg":"RS256","extensions":{"cred_protect":"Ignored","hmac_create_secret":"Ignored","appid":"NotRequested","cred_props":{"Unsigned":{"rk":true}}}},"ccr":{"publicKey":{"rp":{"name":"webauthn.firstyear.id.au","id":"webauthn.firstyear.id.au"},"user":{"id":"oRkjT_t2QeapyquKacSHOw","name":"compatuser","displayName":"compatuser"},"challenge":"0SSgeS4XsTv9RicMMW3FTmmfmVb_dkw7eGBp9x-DfSo","pubKeyCredParams":[{"type":"public-key","alg":-35},{"type":"public-key","alg":-36},{"type":"public-key","alg":-257},{"type":"public-key","alg":-258},{"type":"public-key","alg":-259},{"type":"public-key","alg":-37},{"type":"public-key","alg":-38},{"type":"public-key","alg":-39},{"type":"public-key","alg":-8},{"type":"public-key","alg":-65535}],"timeout":60000,"attestation":"none","authenticatorSelection":{"requireResidentKey":false,"userVerification":"discouraged"},"extensions":{"credentialProtectionPolicy":"userVerificationOptionalWithCredentialIDList","enforceCredentialProtectionPolicy":false,"uvm":true,"credProps":true,"minPinLength":true,"hmacCreateSecret":true}}},"rpkc":{"id":"nLr2Uk5F1RZgAkeoe5pEhaaolEZr8Zn5UwmkfaEEWw0","rawId":"nLr2Uk5F1RZgAkeoe5pEhaaolEZr8Zn5UwmkfaEEWw0","response":{"attestationObject":"o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVkBZ2q5u_Dfmhb5Hbszu7Ey-vnRfHgsSCbG7HDs7ljZfvUqRQAAAAAAAAAAAAAAAAAAAAAAAAAAACCcuvZSTkXVFmACR6h7mkSFpqiURmvxmflTCaR9oQRbDaQBAwM5AQAgWQEAwL01j4Bf8NbdN67OlMs3GZKsZZD_dEgiZjPH9SrJuRSpGDNphHmm2w29VQVQFJ1eNWiks8c4OiPBVayiYiN-m-BkNQSHgVoZ2AasneD37b4rSXPGNQGfwFA9wXsA2GjHjMdCOiW0Wmi15tA5YFDEKVbjzS1qQ1eQj_AQuCINdZRZ6Y2MfHFGGc4TkkrvWGJD435RyNJIuh5kn6DMUwzmYcJyK5Epl15Mo25doxTJUDz8R6gveTXphBhL29sLtbRiK7EBLe4vaSN7lRnruWwaAWhdx97NsWi0hW4pcHaI6kB0ocxNWa6UwIIUbvJms6LQHZ8RaaHjrkwAGv0z5oarxSFDAQAB","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiMFNTZ2VTNFhzVHY5UmljTU1XM0ZUbW1mbVZiX2RrdzdlR0JwOXgtRGZTbyIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlLCJvdGhlcl9rZXlzX2Nhbl9iZV9hZGRlZF9oZXJlIjoiZG8gbm90IGNvbXBhcmUgY2xpZW50RGF0YUpTT04gYWdhaW5zdCBhIHRlbXBsYXRlLiBTZWUgaHR0cHM6Ly9nb28uZ2wveWFiUGV4In0"},"type":"public-key","extensions":{"appid":null,"cred_blob":null,"cred_props":{"rk":true}}}}},"uvpreferred":{"Passed":{"rs":{"cred_id":"56Fpka5NUywFyU8LmgjH9hxYM094qVy1znbae03_jHk","uv":true,"alg":"ES256","extensions":{"cred_protect":"Ignored","hmac_create_secret":"Ignored","appid":"NotRequested","cred_props":{"Unsigned":{"rk":true}}}},"ccr":{"publicKey":{"rp":{"name":"webauthn.firstyear.id.au","id":"webauthn.firstyear.id.au"},"user":{"id":"hed1nchxQhSLLojWu4IV1Q","name":"compatuser","displayName":"compatuser"},"challenge":"UoOm38l3TlVfl7TzvekGBHlSoZ5AyZWWaKuQzpIJxOQ","pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-35},{"type":"public-key","alg":-36},{"type":"public-key","alg":-257},{"type":"public-key","alg":-258},{"type":"public-key","alg":-259},{"type":"public-key","alg":-37},{"type":"public-key","alg":-38},{"type":"public-key","alg":-39},{"type":"public-key","alg":-8},{"type":"public-key","alg":-65535}],"timeout":60000,"attestation":"none","authenticatorSelection":{"requireResidentKey":false,"userVerification":"preferred"},"extensions":{"credentialProtectionPolicy":"userVerificationOptionalWithCredentialIDList","enforceCredentialProtectionPolicy":false,"uvm":true,"credProps":true,"minPinLength":true,"hmacCreateSecret":true}}},"rpkc":{"id":"56Fpka5NUywFyU8LmgjH9hxYM094qVy1znbae03_jHk","rawId":"56Fpka5NUywFyU8LmgjH9hxYM094qVy1znbae03_jHk","response":{"attestationObject":"o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVikarm78N-aFvkduzO7sTL6-dF8eCxIJsbscOzuWNl-9SpFAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOehaZGuTVMsBclPC5oIx_YcWDNPeKlctc522ntN_4x5pQECAyYgASFYIC4-Xb89xXhFkjx_G_C3epDmzKa9YLLM9DE4xQ5cfisfIlggQe7WxC3-xqsORgfd4jJctItJU3hGIGNFk_hLaTgenK0","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiVW9PbTM4bDNUbFZmbDdUenZla0dCSGxTb1o1QXlaV1dhS3VRenBJSnhPUSIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ"},"type":"public-key","extensions":{"appid":null,"cred_blob":null,"cred_props":{"rk":true}}}}},"authpreferred":{"Passed":{"aus":{"cred_id":"56Fpka5NUywFyU8LmgjH9hxYM094qVy1znbae03_jHk","uv":true,"extensions":{}},"rcr":{"publicKey":{"challenge":"_44BAPt8X55CT6Q9Y_965By7bplAQH9uHGYfo6gi6AM","timeout":60000,"rpId":"webauthn.firstyear.id.au","allowCredentials":[{"type":"public-key","id":"56Fpka5NUywFyU8LmgjH9hxYM094qVy1znbae03_jHk"}],"userVerification":"preferred","extensions":{"uvm":true}}},"pkc":{"id":"56Fpka5NUywFyU8LmgjH9hxYM094qVy1znbae03_jHk","rawId":"56Fpka5NUywFyU8LmgjH9hxYM094qVy1znbae03_jHk","response":{"authenticatorData":"arm78N-aFvkduzO7sTL6-dF8eCxIJsbscOzuWNl-9SoFAAAAAQ","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiXzQ0QkFQdDhYNTVDVDZROVlfOTY1Qnk3YnBsQVFIOXVIR1lmbzZnaTZBTSIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ","signature":"MEYCIQDFBjsJDls5-QF9bZSNS7-LTaa35QDJfl-Rr_BBTakfRAIhAO4aWNLvpi6wycCoIcwpf-BXWIgBAE7zHB2D0HE7IU_y","userHandle":"hed1nchxQhSLLojWu4IV1Q"},"extensions":{"appid":null,"cred_blob":null},"type":"public-key"}}},"authpreferred_consistent":"Passed","uvrequired":{"Passed":{"rs":{"cred_id":"IUpjUf1udEk7Cq6xwbjwl9ZGCxG2MU0qG5o4eYxUhl4","uv":true,"alg":"ES256","extensions":{"cred_protect":"Ignored","hmac_create_secret":"Ignored","appid":"NotRequested","cred_props":{"Unsigned":{"rk":true}}}},"ccr":{"publicKey":{"rp":{"name":"webauthn.firstyear.id.au","id":"webauthn.firstyear.id.au"},"user":{"id":"BXI_kqlhRB-ndPHMEb1ffg","name":"compatuser","displayName":"compatuser"},"challenge":"iE2lv1EkbP5CwLPPZGRyz6C2KSxDaqhYFGLpAsyM5X8","pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-35},{"type":"public-key","alg":-36},{"type":"public-key","alg":-257},{"type":"public-key","alg":-258},{"type":"public-key","alg":-259},{"type":"public-key","alg":-37},{"type":"public-key","alg":-38},{"type":"public-key","alg":-39},{"type":"public-key","alg":-8},{"type":"public-key","alg":-65535}],"timeout":60000,"attestation":"none","authenticatorSelection":{"requireResidentKey":false,"userVerification":"required"},"extensions":{"credentialProtectionPolicy":"userVerificationOptionalWithCredentialIDList","enforceCredentialProtectionPolicy":false,"uvm":true,"credProps":true,"minPinLength":true,"hmacCreateSecret":true}}},"rpkc":{"id":"IUpjUf1udEk7Cq6xwbjwl9ZGCxG2MU0qG5o4eYxUhl4","rawId":"IUpjUf1udEk7Cq6xwbjwl9ZGCxG2MU0qG5o4eYxUhl4","response":{"attestationObject":"o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVikarm78N-aFvkduzO7sTL6-dF8eCxIJsbscOzuWNl-9SpFAAAAAAAAAAAAAAAAAAAAAAAAAAAAICFKY1H9bnRJOwquscG48JfWRgsRtjFNKhuaOHmMVIZepQECAyYgASFYIGLBsS4AcrDQnwilYEkpMz1L3rr3qOvm3Flj6otxxk4uIlggc8D4avHmZj-fKYp260Dn05n3b-OOsXrRKq87FZAgrzU","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiaUUybHYxRWtiUDVDd0xQUFpHUnl6NkMyS1N4RGFxaFlGR0xwQXN5TTVYOCIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ"},"type":"public-key","extensions":{"appid":null,"cred_blob":null,"cred_props":{"rk":true}}}}},"authrequired":{"Passed":{"aus":{"cred_id":"IUpjUf1udEk7Cq6xwbjwl9ZGCxG2MU0qG5o4eYxUhl4","uv":true,"extensions":{}},"rcr":{"publicKey":{"challenge":"_jXxlpeGEOdXpWBaDwOg2PayzHvZ-m_1HNzle-_WI7Y","timeout":60000,"rpId":"webauthn.firstyear.id.au","allowCredentials":[{"type":"public-key","id":"IUpjUf1udEk7Cq6xwbjwl9ZGCxG2MU0qG5o4eYxUhl4"}],"userVerification":"required","extensions":{"uvm":true}}},"pkc":{"id":"IUpjUf1udEk7Cq6xwbjwl9ZGCxG2MU0qG5o4eYxUhl4","rawId":"IUpjUf1udEk7Cq6xwbjwl9ZGCxG2MU0qG5o4eYxUhl4","response":{"authenticatorData":"arm78N-aFvkduzO7sTL6-dF8eCxIJsbscOzuWNl-9SoFAAAAAQ","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiX2pYeGxwZUdFT2RYcFdCYUR3T2cyUGF5ekh2Wi1tXzFITnpsZS1fV0k3WSIsIm9yaWdpbiI6Imh0dHBzOi8vd2ViYXV0aG4uZmlyc3R5ZWFyLmlkLmF1IiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ","signature":"MEYCIQC00h5YsyPYdzqzvHShj2vPU4Fhn9sM2RQ_ylVSirLLQAIhAMqxkh4MV3EUXqy1ceWsF7Z58PrZ9wTkQXEulepT8lG2","userHandle":"BXI_kqlhRB-ndPHMEb1ffg"},"extensions":{"appid":null,"cred_blob":null},"type":"public-key"}}},"extn_uvm_supported":"FailedPrerequisite","extn_credprotect_supported":"FailedPrerequisite","extn_hmacsecret_supported":"FailedPrerequisite"}
@aseigler It looks like your TPM is providing Alg::NULL which is invalid. As a result, it's not actually parseable. Specifically this is in the Tpmt structure from 12.2.4 TPMT_PUBLIC TPM-Rev2.0 Structures, nameAlg is set to 0x0010 which is defined in Table 9 TPM_ALG_ID as TPM_ALG_NULL. The TPMT_PUBLIC is:
0, 16, 0, 16, 0, 3, 0, 16, 0, 32, 176, 120, 225, 36, 231, 106, 252, 154, 114, 122, 203,
214, 236, 25, 195, 55, 87, 135, 75, 212, 181, 173, 240, 142, 187, 38, 60, 121, 153,
202, 197, 184, 0, 32, 143, 7, 127, 141, 160, 132, 16, 224, 9, 45, 95, 123, 145, 125,
213, 129, 188, 115, 162, 147, 216, 48, 46, 13, 168, 65, 99, 15, 73, 185, 228, 250,
If we examine the bytes
/--- TPM_ALG_ID, 0, 16 == 0x0010 == TPM_ALG_NULL
v
0, 16, 0, 16, 0, 3, 0, 16, 0, 32, 176, 120, 225, 36, 231, 106, 252, 154, 114, 122, 203,
214, 236, 25, 195, 55, 87, 135, 75, 212, 181, 173, 240, 142, 187, 38, 60, 121, 153,
202, 197, 184, 0, 32, 143, 7, 127, 141, 160, 132, 16, 224, 9, 45, 95, 123, 145, 125,
213, 129, 188, 115, 162, 147, 216, 48, 46, 13, 168, 65, 99, 15, 73, 185, 228, 250,
As a result I think something fishy is going on here. Perhaps the set of algorithms I'm offering on the compat test isn't broad enough. Do you know the specific ECC parameters in use? Is it es256, es384 or es521? It shourd be 0x0018 if this is ECC instead of 0x0010.
0, 16, 0, 16, 0, 3, 0, 16, 0, 32, 176, 120, 225, 36, 231, 106, 252, 154, 114, 122, 203, 214, 236, 25, 195, 55, 87, 135, 75, 212, 181, 173, 240, 142, 187, 38, 60, 121, 153, 202, 197, 184, 0, 32, 143, 7, 127, 141, 160, 132, 16, 224, 9, 45, 95, 123, 145, 125, 213, 129, 188, 115, 162, 147, 216, 48, 46, 13, 168, 65, 99, 15, 73, 185, 228, 250,
That's not the TPMT_PUBLIC, that's the TPMU_PUBLIC_PARMS, which starts just after the end of the authPolicy TPM2B_DIGEST in TPMT_PUBLIC.
Entire pubArea broken down from the top of the TPMT_PUBLIC:
// type TPMI_ALG_PUBLIC == 0x0023 == TPM_ALG_ECC
0, 35,
// nameAlg TPMI_ALG_HASH == 0x000B == TPM_ALG_SHA256
0, 11,
// objectAttrbutes TPMA_OBJECT == 0x40072 == flags FixedTPM|FixedParent|SensitiveDataOrigin|UserWithAuth|Sign
0, 4, 0, 114,
// authPolicy TPM2B_DIGEST ==
// size UINT16 == 0x0020 == 32 bytes
0, 32,
// authPolicy bytes, up to TPMU_HA
157, 255, 203, 243, 108, 56, 58, 230, 153, 251, 152, 104, 220, 109, 203, 137, 215, 21, 56, 132, 190, 40, 3, 146, 44, 18, 65, 88, 191, 173, 34, 174
Next up is the TPMU_PUBLIC_PARMS. Here's where it starts to get interesting. Since TPMI_ALG_PUBLIC is TPM_ALG_ECC, the next part is TPMS_ECC_PARMS, not TPMS_RSA_PARMS:
// symmetric TPMT_SYM_DEF_OBJECT == 0x0010 == TPM_ALG_NULL
0, 16,
// scheme TPMT_ECC_SCHEME == 0x0010 == TPM_ALG_NULL
0, 16,
// curveID TPMI_ECC_CURVE == 0x0003 == TPM_ECC_NIST_P256
0, 3,
// kdf TPMT_KDF_SCHEME == 0x0010 == TPM_ALG_NULL - notes for TPMS_ECC_PARMS indicate this must be TPM_ALG_NULL
0, 16,
Finally, we are at the end of the TPMT_PUBLIC. The remainder is parameter unique, type TPMU_PUBLIC_ID. Since TPMI_ALG_PUBLIC is TPM_ALG_ECC, unique is TPMS_ECC_POINT instead of TPM2B_PUBLIC_KEY_RSA. TPMS_ECC_POINT is a pair of TPM2B_ECC_PARAMETER objects.
// x TPM2B_ECC_PARAMETER
// size UINT16 == 0x0020 == 32 bytes
0, 32,
// x parameter bytes, up to MAX_ECC_KEY_BYTES
176, 120, 225, 36, 231, 106, 252, 154, 114, 122, 203, 214, 236, 25, 195, 55, 87, 135, 75, 212, 181, 173, 240, 142, 187, 38, 60, 121, 153, 202, 197, 184,
// y TPM2B_ECC_PARAMETER
// size UINT16 == 0x0020 == 32 bytes
0, 32,
// y parameter bytes, up to MAX_ECC_KEY_BYTES
143, 7, 127, 141, 160, 132, 16, 224, 9, 45, 95, 123, 145, 125, 213, 129, 188, 115, 162, 147, 216, 48, 46, 13, 168, 65, 99, 15, 73, 185, 228, 250,
Thanks @aseigler! I'm sitting down to look at this now :)