wbond / wbond/certvalidator

Conflict with CA/B TLS requirements

Open
#52 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
115
Forks
34
PR merge metrics
No merged PRs in 30d

Description

The CA/Browser baseline requirements for TLS certs in Section 7.1.2.7.12 "Subscriber Certificate Subject Alternative Name" requires that if a certificate contains an empty Subject then the Subject Alternative Name extension must be marked as critical.

When such a certificate is constructed, it fails to validate because the SAN extension is not present in this list:

https://github.com/wbond/certvalidator/blob/c594f0ef5f6f3e101525f40e19ea835d90fe45b0/certvalidator/validate.py#L667-L681

What is the reason for having this restricted list in the first place? It seems to conflict with the API docs for validate_path() here:
https://github.com/wbond/certvalidator/blob/c594f0ef5f6f3e101525f40e19ea835d90fe45b0/certvalidator/validate.py#L31-L32

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in validate.py around lines 667-681 and compare the restricted extension list with the validate_path() API documentation around lines 31-32. Check how critical Subject Alternative Name extensions are handled for certificates with an empty Subject, using the linked CA/Browser Forum requirement as the expected behavior. Done means the documented API and validation behavior no longer conflict.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cryptography
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.