odoo/odoo · error · InvalidRegistrationResponse

Unsupported pub_area.parameters "{pub_area_param_type}" (TPM

Error message

Unsupported pub_area.parameters "{pub_area_param_type}" (TPM)

What it means

Error "Unsupported pub_area.parameters "{pub_area_param_type}" (TPM)" thrown in odoo/odoo.

Source

Thrown at addons/auth_passkey/_vendor/webauthn/registration/formats/tpm.py:137

                "Public key was not ECC key as indicated in pubArea (TPM)"
            )

        pubKeyCoords = b"".join([decoded_public_key.x, decoded_public_key.y])
        if pub_area.unique.value != pubKeyCoords:
            unique_hex = pub_area.unique.value.hex()
            pub_key_xy_hex = pubKeyCoords.hex()
            raise InvalidRegistrationResponse(
                f'Unique "{unique_hex}" was not same as public key [x,y] "{pub_key_xy_hex}" (TPM)'
            )

        pub_area_crv = TPM_ECC_CURVE_COSE_CRV_MAP[pub_area.parameters.curve_id]
        if pub_area_crv != decoded_public_key.crv:
            raise InvalidRegistrationResponse(
                f'PubArea curve ID "{pub_area_crv}" was not same as public key crv "{decoded_public_key.crv}" (TPM)'
            )
    else:
        pub_area_param_type = type(pub_area.parameters)
        raise InvalidRegistrationResponse(
            f'Unsupported pub_area.parameters "{pub_area_param_type}" (TPM)'
        )

    # Validate that certInfo is valid:
    cert_info = parse_cert_info(attestation_statement.cert_info)

    # Verify that magic is set to TPM_GENERATED_VALUE.
    # a.k.a. 0xff544347
    magic_int = int.from_bytes(cert_info.magic, "big")
    if magic_int != int(0xFF544347):
        raise InvalidRegistrationResponse(
            f'CertInfo magic "{magic_int}" was not TPM_GENERATED_VALUE 4283712327 (0xff544347) (TPM)'
        )

    # Concatenate authenticatorData and clientDataHash to form attToBeSigned.
    attestation_dict = parse_cbor(attestation_object)
    authenticator_data_bytes: bytes = attestation_dict["authData"]
    client_data_hash = hash_by_alg(client_data_json)

View on GitHub (pinned to 1e661df964)

Solutions

  1. The pubArea parameters type is unsupported. Use a TPM authenticator with standard RSA or ECC parameters.

When it happens

Trigger: Thrown at addons/auth_passkey/_vendor/webauthn/registration/formats/tpm.py:137 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of odoo/odoo@1e661df964 (2026-08-15). Data as JSON: /api/errors/12e76e550a35593c. Report an issue: GitHub.