Skip to content

[PULP-2199] Add SLSA attestation verification support - #1327

Open
jobselko wants to merge 3 commits into
pulp:mainfrom
jobselko:att_patch
Open

[PULP-2199] Add SLSA attestation verification support#1327
jobselko wants to merge 3 commits into
pulp:mainfrom
jobselko:att_patch

Conversation

@jobselko

Copy link
Copy Markdown
Member

📜 Checklist

  • Commits are cleanly separated with meaningful messages (simple features and bug fixes should be squashed to one commit)
  • A changelog entry or entries has been added for any significant changes
  • Follows the Pulp policy on AI Usage
  • (For new features) - User documentation and test coverage has been added

See: Pull Request Walkthrough

@jobselko jobselko self-assigned this Aug 13, 2026
@github-actions github-actions Bot added no-changelog no-issue multi-commit Add to bypass single commit lint check labels Aug 13, 2026
@jobselko
jobselko force-pushed the att_patch branch 3 times, most recently from 3eb2c02 to 0f36075 Compare August 18, 2026 14:47
@jobselko jobselko changed the title [PULP-2199] Support custom attestation verification [PULP-2199] Add SLSA attestation verification support Aug 20, 2026
@jobselko
jobselko marked this pull request as ready for review August 20, 2026 14:29
@jobselko

Copy link
Copy Markdown
Member Author

The first commit contains the applied patch and tests, the second covers the changes needed to upstream it. I will squash them at the end.

@gerrod3 gerrod3 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm having second thoughts about moving this patch over. I think we should spend some more time thinking about the feature and what would be useful to more people.

Comment thread .ci/assets/keys/test-key-private.pem
standard Sigstore path. Attestations without certificates are verified
against a custom public key configured via ATTESTATION_VERIFICATION_KEY.
Currently, it supports RSA PKCS1v15 signatures and SLSA v0.2 provenance
publisher enrichment.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The publisher enrichment is technically a side-effect of the method. Not sure it's the best thing to copy.

stmt = _verify_statement_subject(attestation, dist)
_enrich_publisher_from_statement(stmt, publisher)
if verification_key:
_verify_signature(attestation, verification_key)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Only one key to verify against across all repositories and all domains. I wonder if we could do something better. What services has is custom built for their use-case, so I don't really want to just move it over as is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

multi-commit Add to bypass single commit lint check no-changelog no-issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants