Skip to content

Expand PowerShell module coverage and bump 0.3.0#9

Merged
Marc-André Moreau (mamoreau-devolutions) merged 14 commits into
masterfrom
mamoreau-devolutions/dotnet-sign-gap-plan
May 22, 2026
Merged

Expand PowerShell module coverage and bump 0.3.0#9
Marc-André Moreau (mamoreau-devolutions) merged 14 commits into
masterfrom
mamoreau-devolutions/dotnet-sign-gap-plan

Conversation

@mamoreau-devolutions
Copy link
Copy Markdown
Contributor

Summary

  • migrate the PowerShell module test entrypoint to a Pester-based suite while preserving the existing smoke coverage
  • add PowerShell module coverage for package-native signing and inspection of NuGet, SNuGet, VSIX, ClickOnce manifests, App Installer companions, and recursive module trees
  • bump the repo, PowerShell module, and package/tool release metadata to 0.3.0

Details

  • keep the existing PowerShell/tests/Invoke-PortableSignatureTests.ps1 CI entrypoint, but make it build once and run Pester tests
  • preserve the previous end-to-end smoke script as a legacy smoke test under Pester
  • add new Pester assertions for:
    • Azure Key Vault parameter validation
    • mixed signing-source rejection
    • -OutputPath / -Content validation
    • .nupkg / .snupkg signing and .signature.p7s inspection
    • .vsix signing and OPC signature-part inspection
    • .manifest, .application, and .vsto ClickOnce XMLDSig signing and inspection
    • .appinstaller detached companion .p7 generation and inspection
    • recursive module-directory discovery of the new signable extensions
  • update PowerShell module docs to reflect the expanded recursive behavior and test coverage

Validation

  • pwsh -File .\PowerShell\tests\Invoke-PortableSignatureTests.ps1 -Configuration Release
  • cargo test -p psign-portable-core -p psign-portable-ffi --locked
  • cargo fmt --all --check
  • cargo clippy --workspace --all-targets --locked --quiet
  • cargo test --workspace --locked

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Refactors psign-tool code signing from explicit cert/key paths to a
unified CodeSigner abstraction supporting five identity providers:
local cert/key files, PFX, portable cert-store, Azure Key Vault,
and Azure Artifact Signing.

- Introduces CodeSigner/CodeSignerBackend enum with Local,
  AzureKeyVault, and ArtifactSigning variants
- Moves psign-azure-kv-rest and psign-codesigning-rest to
  cross-platform deps (still feature-gated)
- Adds mock Azure Key Vault and Artifact Signing servers for E2E
- Adds E2E tests for NuGet signing with all 5 provider types
- Updates docs and CLI matrix for cloud provider support

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds Azure Key Vault and Artifact Signing E2E signing tests for:
- PE/EFI Authenticode signing with both cloud providers
- VSIX XMLDSig signing with both cloud providers
- App Installer companion PKCS#7 with Azure Key Vault
- ClickOnce manifest XMLDSig with Azure Key Vault

Also fixes code_without_dry_run_fails_safely assertion to match
the updated error message from the multi-provider signer.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reflects that NuGet, VSIX, App Installer, and ClickOnce signing
through psign-tool code now supports all five identity providers
(local cert/key, PFX, portable cert-store, Azure Key Vault, and
Artifact Signing) rather than only local identities.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… module

- Add NuGet, Vsix, ClickOnceManifest, AppInstaller format variants to
  psign-portable-core with format-specific sign and inspect functions
- Route .nupkg/.snupkg to NuGet CMS, .vsix to OPC XMLDSig,
  .manifest/.application/.vsto to ClickOnce XMLDSig, .appinstaller to
  detached PKCS#7 companion (.p7)
- Add Azure Key Vault and Artifact Signing fields to PortableSignRequest
  with mutual-exclusion validation and clear feature-gate diagnostics
- Forward cloud provider features through psign-portable-ffi
- Add -AzureKeyVault* and -ArtifactSigning* parameters to
  Set-PortableSignature cmdlet with validation
- Update PortableModuleFiles to enumerate .dll, .exe, .nupkg, .snupkg,
  .vsix, .manifest, .application, .vsto, .appinstaller in directories
- Add 4 unit tests for cloud provider validation
- Add PowerShell module documentation to migration-dotnet-sign.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- migrate the PowerShell module test entrypoint to Pester
- preserve legacy smoke coverage under Pester
- add package-native Pester coverage for NuGet, SNuGet, VSIX,
  ClickOnce manifests, App Installer, and recursive module trees
- document the expanded PowerShell module coverage
- bump workspace, module, and package versions to 0.3.0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) merged commit ed958eb into master May 22, 2026
36 checks passed
@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) deleted the mamoreau-devolutions/dotnet-sign-gap-plan branch May 22, 2026 19:15
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