Skip to content

feature: EST Rotate - Inclusive E/KU Check; - #83

Open
Scylin232 wants to merge 1 commit into
foundriesio:mainfrom
Scylin232:bugfix/inclusive-eku-check
Open

feature: EST Rotate - Inclusive E/KU Check;#83
Scylin232 wants to merge 1 commit into
foundriesio:mainfrom
Scylin232:bugfix/inclusive-eku-check

Conversation

@Scylin232

@Scylin232 Scylin232 commented Aug 13, 2026

Copy link
Copy Markdown

Hey out there!

This PR updates the Key Usage and Extended Key Usage validation for EST-submitted certificates. Instead of requiring Digital Signature on KU and TLS Web Client Authentication on EKU to be the only present usages, the check now verifies that they are included among the others.

This change allows EST servers to extend CSRs with additional usages, such as keyCertSign, cRLSign, or codeSigning, without failing validation.

E.G:

The following certificate would have been rejected in the past, but is now accepted:

X509v3 extensions:
  X509v3 Key Usage: critical
    Digital Signature, Certificate Sign, CRL Sign
  X509v3 Extended Key Usage: 
    TLS Web Client Authentication, Code Signing

And the following certificate would have been rejected in the past and remains rejected now:

X509v3 extensions:
  X509v3 Key Usage: critical
    Certificate Sign, CRL Sign
  X509v3 Extended Key Usage: 
    Code Signing

Comment thread internal/rotate_est.go
@@ -189,18 +189,20 @@ func verifyNewCert(curCert, newCert *x509.Certificate) error {
if !bytes.Equal(curCert.RawSubject, newCert.RawSubject) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github does not allow you to comment on commit messages. However, the commit needs a couple things:

  • A Signed-off-by
  • A description of the change. Your PR header is good - you could just use that content in the commit message

Our security engineer is on holiday this week. When he gets back, we'll have him take a close look.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pardon my commit etiquette. Fixed! :)
Let's wait for the security engineer then, thanks!

Signed-off-by: Tymur Hulua <tymur.hulua@goldbeck.de>

This commit updates the Key Usage and Extended Key Usage validation for EST-submitted certificates. Instead of requiring Digital Signature on KU and TLS Web Client Authentication on EKU to be the only present usages, the check now verifies that they are included among the others.

This change allows EST servers to extend CSRs with additional usages, such as `keyCertSign`, `cRLSign`, or `codeSigning`, without failing validation.

E.G:

The following certificate would have been rejected in the past, but is now accepted:

```
X509v3 extensions:
  X509v3 Key Usage: critical
    Digital Signature, Certificate Sign, CRL Sign
  X509v3 Extended Key Usage:
    TLS Web Client Authentication, Code Signing
```

And the following certificate would have been rejected in the past and remains rejected now:

```
X509v3 extensions:
  X509v3 Key Usage: critical
    Certificate Sign, CRL Sign
  X509v3 Extended Key Usage:
    Code Signing
```
@Scylin232
Scylin232 force-pushed the bugfix/inclusive-eku-check branch from 2de0116 to 7f71ecb Compare August 14, 2026 05:16
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

Successfully merging this pull request may close these issues.

2 participants