Skip to content

rekor: use checkpoint_key_id when available - #1864

Open
ECD5A wants to merge 1 commit into
sigstore:mainfrom
ECD5A:agent/use-rekor-checkpoint-key-id
Open

rekor: use checkpoint_key_id when available#1864
ECD5A wants to merge 1 commit into
sigstore:mainfrom
ECD5A:agent/use-rekor-checkpoint-key-id

Conversation

@ECD5A

@ECD5A ECD5A commented Aug 8, 2026

Copy link
Copy Markdown

Summary

Closes #1364.

Rekor checkpoint verification previously discarded most TransparencyLogInstance metadata and selected a verifier using the bundle entry's log_id. That does not work for trust roots whose signed-note checkpoint key ID differs from the log ID.

This change:

  • retains each valid Rekor TransparencyLogInstance in the trusted keyring;
  • indexes checkpoint verifiers by signed-note origin and checkpoint_key_id;
  • falls back to the first four bytes of log_id for older trust roots without checkpoint_key_id;
  • keeps inclusion-promise verification keyed by the complete log ID; and
  • adds regression coverage for distinct checkpoint/log IDs, origin mismatches, and trusted-root metadata propagation.

Validation:

  • pytest: 197 passed, 30 skipped, 2 xpassed
  • ruff check .
  • ruff format --check .
  • mypy sigstore
  • bandit -c pyproject.toml -r sigstore

Release Note

Used Rekor checkpoint_key_id values when verifying signed checkpoints, with a compatibility fallback for older trust roots.

Documentation

No documentation update is required. This corrects internal trusted-root key selection and preserves the existing public API.

Select Rekor checkpoint verifiers by signed-note name and key ID.

Fall back to the first four bytes of log_id for older trust roots.

Closes sigstore#1364

Signed-off-by: ECD5A <stelmaknoder@gmail.com>
@ECD5A
ECD5A marked this pull request as ready for review August 9, 2026 08:28
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.

rekor: Use checkpoint_key_id when possible

1 participant