odoo/odoo · error · InvalidRegistrationResponse
Certificate missing extension {ExtensionOID.BASIC_CONSTRAINT
Error message
Certificate missing extension {ExtensionOID.BASIC_CONSTRAINTS} (TPM) What it means
Error "Certificate missing extension {ExtensionOID.BASIC_CONSTRAINTS} (TPM)" thrown in odoo/odoo.
Source
Thrown at addons/auth_passkey/_vendor/webauthn/registration/formats/tpm.py:290
except ExtensionNotFound:
raise InvalidRegistrationResponse(
f"Certificate missing extension {ExtensionOID.EXTENDED_KEY_USAGE} (TPM)"
)
ext_key_usage_oid = ext_extended_key_usage[0].dotted_string
if ext_key_usage_oid != "2.23.133.8.3":
raise InvalidRegistrationResponse(
f'Certificate Extended Key Usage OID "{ext_key_usage_oid}" was not "2.23.133.8.3" (TPM)'
)
try:
# Ignore mypy because we're casting to a known type
ext_basic_constraints: BasicConstraints = cert_extensions.get_extension_for_oid(
ExtensionOID.BASIC_CONSTRAINTS
).value # type: ignore[assignment]
except ExtensionNotFound:
raise InvalidRegistrationResponse(
f"Certificate missing extension {ExtensionOID.BASIC_CONSTRAINTS} (TPM)"
)
# The Basic Constraints extension MUST have the CA component set to false.
if ext_basic_constraints.ca is not False:
raise InvalidRegistrationResponse("Certificate Basic Constraints CA was not False (TPM)")
# If aikCert contains an extension with OID 1.3.6.1.4.1.45724.1.1.4
# (id-fido-gen-ce-aaguid) verify that the value of this extension matches the
# aaguid in authenticatorData.
# TODO: Implement this later if we can find a TPM that returns something here
# try:
# fido_gen_ce_aaguid = cert_extensions.get_extension_for_oid(
# ObjectIdentifier("1.3.6.1.4.1.45724.1.1.4")
# )
# except ExtensionNotFound:
# pass
View on GitHub (pinned to 1e661df964)
Solutions
- The attestation certificate is missing the Basic Constraints extension. Use a compliant TPM AIK certificate.
When it happens
Trigger: Thrown at addons/auth_passkey/_vendor/webauthn/registration/formats/tpm.py:290 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- SSL/TLS and certificate errors — how TLS handshakes and certificate validation fail.
AI-assisted analysis of odoo/odoo@1e661df964 (2026-08-15).
Data as JSON: /api/errors/12d27d22d81a3cb6.
Report an issue: GitHub.