fangorn/ex_git_objectstore
public
ref:main
feat: signature verification (GPG, SSH, Sigstore) for commits and tags #44
open
Opened by cole.christensen@gmail.com
Links
No links yet.
Commit and tag objects can carry gpgsig headers today (we preserve them on round-trip), but we don’t verify them. Hosting products show a "Verified" badge.
Scope
Sign.verify_commit(repo, sha, trust_root)→{:verified, key_id} | {:unverified, reason}- Support GPG (PGP packets), SSH sigs (RFC 4880-style with git-ssh format), Sigstore/cosign bundles.
trust_rootis a caller-provided set of keys (or verification callback) — the library doesn’t ship a keyring.- Same for tags via the
taggersignature field.
Acceptance
- Verifies a known-good GPG-signed commit produced by
git commit -S. - Verifies a known-good SSH-signed commit produced by
git commit -Swithgpg.format=ssh. - Rejects tampered payloads.