Skip to content

Implement account key rollover validation.#40

Merged
jjrdk merged 2 commits intomasterfrom
features/account-key-rollover
Apr 11, 2026
Merged

Implement account key rollover validation.#40
jjrdk merged 2 commits intomasterfrom
features/account-key-rollover

Conversation

@jjrdk
Copy link
Copy Markdown
Owner

@jjrdk jjrdk commented Apr 11, 2026

Add support for account key rollover.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds RFC 8555 §7.3.5-compliant ACME account key rollover handling by updating both server-side validation and the conformance test suite to reflect the correct outer/inner JWS semantics.

Changes:

  • Update ACME conformance steps and keyChange request construction to use outer kid (old key) and inner jwk (new key).
  • Adjust request validation rules so KeyChange is treated as a Kid-signed (existing account) endpoint.
  • Update /key-change endpoint logic to resolve the account from the outer kid, enforce inner-JWS constraints (no nonce, jwk present, kid absent), and validate oldKey against the account’s current key.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/opencertserver.certserver.tests/StepDefinitions/AcmeConformance.cs Updates keyChange conformance assertions and request builder to match RFC 8555 outer/inner JWS rules.
tests/opencertserver.certserver.tests/Features/AcmeConformance.feature Updates scenario text to reflect correct outer/inner signing keys for key rollover.
tests/opencertserver.certserver.tests/Features/AcmeConformance.feature.cs Regenerates bindings to match updated feature step text.
src/opencertserver.acme.server/RequestServices/DefaultRequestValidationService.cs Treats KeyChange as a Kid-only endpoint; removes now-incorrect keyChange JWK-only rule.
src/opencertserver.acme.server/Endpoints/AccountEndpoints.cs Implements keyChange outer/inner validation and verifies oldKey matches the account’s current key.
Files not reviewed (1)
  • tests/opencertserver.certserver.tests/Features/AcmeConformance.feature.cs: Language not supported

Comment thread src/opencertserver.acme.server/Endpoints/AccountEndpoints.cs Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@jjrdk jjrdk merged commit 5250623 into master Apr 11, 2026
7 checks passed
@jjrdk jjrdk deleted the features/account-key-rollover branch April 11, 2026 21:31
Copilot stopped work on behalf of jjrdk due to an error April 11, 2026 21:31
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