Skip to content

Add Windows Authenticode signing support via environment variables#443

Merged
shannah merged 1 commit intomasterfrom
claude/add-authenticode-signing-rfc-J7TgM
Mar 15, 2026
Merged

Add Windows Authenticode signing support via environment variables#443
shannah merged 1 commit intomasterfrom
claude/add-authenticode-signing-rfc-J7TgM

Conversation

@shannah
Copy link
Copy Markdown
Owner

@shannah shannah commented Mar 15, 2026

Summary

This PR adds support for signing Windows .exe bundles with Authenticode signatures during the jDeploy packaging step. Signing is configured entirely through environment variables and supports both local keystores (PFX/PKCS12, JKS) and hardware security modules via PKCS#11.

Key Changes

  • New RFC document (rfc/windows-authenticode-signing.md) that specifies:
    • Configuration via environment variables (JDEPLOY_WIN_KEYSTORE_PATH, JDEPLOY_WIN_KEYSTORE_PASSWORD, etc.)
    • Support for local keystores and PKCS#11 HSM tokens
    • Automatic signing of Windows x64 and ARM64 bundles when configured
    • Validation logic and error handling
    • Usage examples for common scenarios (local PFX, HSM, GitHub Actions)

Implementation Details

The RFC outlines the following architecture:

  • Library: jsign-core 7.0 for Authenticode signing
  • Key classes:
    • WindowsSigningConfig — configuration POJO with validation
    • WindowsSigningConfigFactory — reads environment variables
    • WindowsSigningService — performs actual signing via jsign
  • Integration point: PackageService.signWindowsExeIfConfigured() called after bundle creation
  • Behavior: Signing is silently skipped if not configured; only Windows bundles are affected

This enables developers to automatically sign Windows releases without modifying package.json, improving end-user installation experience by reducing SmartScreen warnings and antivirus flags.

https://claude.ai/code/session_01Vwovc4eQee9KZ5LmUSJyqv

Documents the black-box specification for the Authenticode signing
support added in PR #431, including environment variable configuration,
supported keystore types (PFX, JKS, PKCS#11), and usage examples.

https://claude.ai/code/session_01Vwovc4eQee9KZ5LmUSJyqv
@shannah shannah merged commit 1a472ac into master Mar 15, 2026
17 checks passed
@shannah shannah deleted the claude/add-authenticode-signing-rfc-J7TgM branch March 15, 2026 13:14
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