Skip to content

Support Certum-backed Windows release signing - #79

Merged
trissim merged 2 commits into
mainfrom
certum-windows-signing
Jul 28, 2026
Merged

Support Certum-backed Windows release signing#79
trissim merged 2 commits into
mainfrom
certum-windows-signing

Conversation

@trissim

@trissim trissim commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Outcome

OpenHCS production tags now use the same protected-key model as Fiji and Jaunch: a Certum Open Source Code Signing certificate projected into the current Windows user certificate store by SimplySign or compatible hardware/cloud middleware.

Trust boundary

  • Runs only on a dedicated self-hosted Windows x64 runner labeled openhcs-signing.
  • Selects one exact CurrentUser/My certificate by public SHA-1 thumbprint.
  • Requires an accessible non-exportable private key, current validity, and the code-signing EKU before invoking SignTool.
  • Signs the existing installer with SHA-256 and the Certum RFC 3161 timestamp service.
  • Requires SignTool policy verification, a native PowerShell Valid status, the exact configured signer thumbprint, and a timestamp-authority certificate before upload.
  • Removes the exportable PFX, base64 secret, password secret, and hosted-runner fallback.
  • Keeps local and pull-request installer builds unsigned; production tags fail closed.

Verification

  • 56 installer and release-workflow tests passed.
  • Ruff check and format check passed.
  • Workflow YAML, runner-label, timeout, credential-boundary, and diff-hygiene gates passed.
  • Strict Sphinx dummy build passed for all 149 documentation sources.

Native acceptance still required

A signed release candidate requires the real Certum certificate/session, an interactive Windows signing runner, and the public OPENHCS_WINDOWS_SIGNING_CERTIFICATE_THUMBPRINT repository variable. No public installer is claimed to be signed by this PR alone.

Copilot AI review requested due to automatic review settings July 28, 2026 01:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@augmentcode

augmentcode Bot commented Jul 28, 2026

Copy link
Copy Markdown

PR Risk Analyzer Agent🛡️

👀 Human Input Needed
A pair-review briefing is ready for you.

→ Pair Review Briefing

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Deep Code Review Agent🐛

Review completed with 1 suggestions.

Fix in Cosmos

assert "OPENHCS_WINDOWS_SIGNING_CERTIFICATE_THUMBPRINT" in source
assert "OPENHCS_WINDOWS_SIGNING_CERTIFICATE_BASE64" not in source
assert "OPENHCS_WINDOWS_SIGNING_CERTIFICATE_PASSWORD" not in source
assert "Normalize-CertificateThumbprint" in source

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The new Windows signing path is covered here only by source-text checks, so regressions in Normalize-CertificateThumbprint, env fallback, or certificate validation behavior would still pass as long as these tokens remain in the file. That leaves the non-trivial fail-closed signing gate without a behavioral test.

Severity: medium


🤖 Was this useful? React with 👍 or 👎

@trissim
trissim merged commit 0885ac6 into main Jul 28, 2026
20 of 32 checks passed
@trissim
trissim deleted the certum-windows-signing branch July 28, 2026 01:24
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