Skip to content

fix(cli): sign manifest last so the .dryadepkg signature verifies (1.1.4)#9

Merged
DryadeCore merged 1 commit into
mainfrom
fix/package-signature
May 26, 2026
Merged

fix(cli): sign manifest last so the .dryadepkg signature verifies (1.1.4)#9
DryadeCore merged 1 commit into
mainfrom
fix/package-signature

Conversation

@DryadeCore
Copy link
Copy Markdown
Contributor

The bug

dryade plugin package signed the manifest before adding the sbom field. Since the signed canonical bytes exclude only signature/signature_pq, the sbom field landed outside the signed bytes — so the Ed25519 signature on the produced .dryadepkg did not verify and the package would be rejected at load. Shipped in 1.1.2 and 1.1.3; no test verified the signature round-tripped.

Fix

Sign last, after hashes + contract_version + sbom are all set, so the signature covers the final manifest. Adds tests/test_package_signature.py (verifies the produced package's signature against the author key + that it covers sbom).

Found by driving the published CLI end-to-end (newvalidatepackage) and verifying the artifact's signature externally.

dryade plugin package signed the manifest before adding the sbom field,
leaving it outside the signed canonical bytes — the Ed25519 signature on
the produced .dryadepkg failed to verify and the package would be rejected
at load. Sign last, after hashes + contract_version + sbom are set, so the
signature covers the final manifest. Adds a signature round-trip regression
test (the gap that let this ship).

Co-Authored-By: Dammerzone <dammerzone@users.noreply.github.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation dependencies feature labels May 26, 2026
@DryadeCore DryadeCore merged commit 0bcc634 into main May 26, 2026
15 checks passed
@DryadeCore DryadeCore deleted the fix/package-signature branch May 26, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies documentation Improvements or additions to documentation feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant