Skip to content

Sign PowerShell module release payload#14

Merged
Marc-André Moreau (mamoreau-devolutions) merged 6 commits into
masterfrom
mamoreau-devolutions/module-signing-plan
May 25, 2026
Merged

Sign PowerShell module release payload#14
Marc-André Moreau (mamoreau-devolutions) merged 6 commits into
masterfrom
mamoreau-devolutions/module-signing-plan

Conversation

@mamoreau-devolutions
Copy link
Copy Markdown
Contributor

Summary

  • sign the staged PowerShell module payload before packaging/publishing
  • route portable cloud signing through psign-portable-core for Azure Key Vault and Artifact Signing providers
  • build PowerShell module native libraries with cloud-signing features and keep release ZIPs transport-only

Validation

  • cargo fmt --all
  • cargo check --locked -q -p psign-portable-core
  • cargo check --locked -q -p psign-portable-core --features azure-kv-sign,artifact-signing-rest
  • cargo check --locked -q -p psign-portable-ffi --features azure-kv-sign,artifact-signing-rest
  • cargo clippy --locked -q -p psign-portable-core --all-targets -- -D warnings
  • cargo clippy --locked -q -p psign-portable-core --features azure-kv-sign,artifact-signing-rest --all-targets -- -D warnings
  • cargo clippy --locked -q -p psign-portable-ffi --features azure-kv-sign,artifact-signing-rest --all-targets -- -D warnings
  • cargo test --locked -q -p psign-portable-core --features azure-kv-sign,artifact-signing-rest
  • cargo test --locked -q -p psign-sip-digest
  • cargo test --workspace --locked
  • PowerShell parser checks for PowerShell/package.ps1, PowerShell/sign-module.ps1, PowerShell/build.ps1
  • pwsh -NoLogo -NoProfile -File .\PowerShell\package.ps1 -Configuration Release -SkipNativeBuild -OutputDirectory .\artifacts\powershell-smoke
  • release dry-run with signing: https://github.com/Devolutions/psign/actions/runs/26410077854

Use the built Devolutions.Psign module during release packaging to sign the staged module manifest, script module, format file, and managed assemblies before PowerShell Gallery packaging.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build psign-portable-ffi with the azure-kv-sign feature in release artifacts so the packaged PowerShell module can sign its own payload during dry-run and release packaging.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use the release-built psign-tool for Azure Key Vault signing of the staged PowerShell module payload, then verify the signed files through the built module. This avoids the module API's current lack of direct Key Vault signing support and keeps the release ZIP as an unsigned transport archive.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add portable cloud-signing providers to psign-portable-core so Set-PsignSignature can sign PE and PowerShell-class script payloads through Azure Key Vault or Artifact Signing. Build the PowerShell module native libraries with those features and remove the temporary psign-tool module-signing fallback.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Treat NotTrusted as an intact Authenticode signature during module payload verification so test-environment Key Vault certificates can exercise the signing flow without requiring a trusted root on the runner.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Route MSIX signing through the shared portable signing provider so Artifact Signing and Key Vault cover that format too. Let the PowerShell module package signing helper use either Azure Key Vault or Artifact Signing parameters.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) merged commit 87abcf8 into master May 25, 2026
49 checks passed
@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) deleted the mamoreau-devolutions/module-signing-plan branch May 25, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant