{"record":{"id":"12e76e550a35593c","repo":"odoo/odoo","slug":"unsupported-pub-area-parameters-pub-area-param-t","errorCode":null,"errorMessage":"Unsupported pub_area.parameters \"{pub_area_param_type}\" (TPM)","messagePattern":"Unsupported pub_area\\.parameters \"(.+?)\" \\(TPM\\)","errorType":"exception","errorClass":"InvalidRegistrationResponse","httpStatus":null,"severity":"error","filePath":"addons/auth_passkey/_vendor/webauthn/registration/formats/tpm.py","lineNumber":137,"sourceCode":"                \"Public key was not ECC key as indicated in pubArea (TPM)\"\n            )\n\n        pubKeyCoords = b\"\".join([decoded_public_key.x, decoded_public_key.y])\n        if pub_area.unique.value != pubKeyCoords:\n            unique_hex = pub_area.unique.value.hex()\n            pub_key_xy_hex = pubKeyCoords.hex()\n            raise InvalidRegistrationResponse(\n                f'Unique \"{unique_hex}\" was not same as public key [x,y] \"{pub_key_xy_hex}\" (TPM)'\n            )\n\n        pub_area_crv = TPM_ECC_CURVE_COSE_CRV_MAP[pub_area.parameters.curve_id]\n        if pub_area_crv != decoded_public_key.crv:\n            raise InvalidRegistrationResponse(\n                f'PubArea curve ID \"{pub_area_crv}\" was not same as public key crv \"{decoded_public_key.crv}\" (TPM)'\n            )\n    else:\n        pub_area_param_type = type(pub_area.parameters)\n        raise InvalidRegistrationResponse(\n            f'Unsupported pub_area.parameters \"{pub_area_param_type}\" (TPM)'\n        )\n\n    # Validate that certInfo is valid:\n    cert_info = parse_cert_info(attestation_statement.cert_info)\n\n    # Verify that magic is set to TPM_GENERATED_VALUE.\n    # a.k.a. 0xff544347\n    magic_int = int.from_bytes(cert_info.magic, \"big\")\n    if magic_int != int(0xFF544347):\n        raise InvalidRegistrationResponse(\n            f'CertInfo magic \"{magic_int}\" was not TPM_GENERATED_VALUE 4283712327 (0xff544347) (TPM)'\n        )\n\n    # Concatenate authenticatorData and clientDataHash to form attToBeSigned.\n    attestation_dict = parse_cbor(attestation_object)\n    authenticator_data_bytes: bytes = attestation_dict[\"authData\"]\n    client_data_hash = hash_by_alg(client_data_json)","sourceCodeStart":119,"sourceCodeEnd":155,"githubUrl":"https://github.com/odoo/odoo/blob/1e661df964b1b264c9cef3ab28430d4785be3fda/addons/auth_passkey/_vendor/webauthn/registration/formats/tpm.py#L119-L155","documentation":"Error \"Unsupported pub_area.parameters \"{pub_area_param_type}\" (TPM)\" thrown in odoo/odoo.","triggerScenarios":"Thrown at addons/auth_passkey/_vendor/webauthn/registration/formats/tpm.py:137 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The pubArea parameters type is unsupported. Use a TPM authenticator with standard RSA or ECC parameters."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1e661df964b1b264c9cef3ab28430d4785be3fda","analyzedAt":"2026-08-15T05:22:16.142Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}