Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sync] crypto/x509: rework path building #39

Closed
emmansun opened this issue Apr 8, 2022 · 0 comments
Closed

[sync] crypto/x509: rework path building #39

emmansun opened this issue Apr 8, 2022 · 0 comments

Comments

@emmansun
Copy link
Owner

emmansun commented Apr 8, 2022

golang/go@65153e4

This change does four things:

  • removes the chain cache
  • during path building, equality is determined by checking if the
    subjects and public keys match, rather than checking if the entire
    certificates are equal
  • enforces EKU suitability during path building
  • enforces name constraints on intermediates and roots which have
    SANs during path building

The chain cache is removed as it was causing duplicate chains to be
returned, in some cases shadowing better, shorter chains if a longer
chain was found first.

Checking equality using the subjects and public keys, rather than the
entire certificates, allows the path builder to ignore chains which
contain cross-signature loops.

EKU checking is done during path building, as the previous behavior
of only checking EKUs once the path had been built caused the path
builder to incorrectly ignore valid paths when it encountered a path
which would later be ruled invalid because of unacceptable EKU usage.

Name constraints are applied uniformly across all certificates, not
just leaves, in order to be more consistent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant