Skip to content

verify: the signing step asserted a fingerprint %GK cannot print inside - #577

Merged
vyskocilm merged 1 commit into
mainfrom
verify-sig-repoint
Sep 13, 2026
Merged

vyskocilm merged 1 commit into
mainfrom
verify-sig-repoint

Conversation

@vyskocilm

Copy link
Copy Markdown
Contributor

VERIFY.md's by-hand signing step ran git log -1 --format=%GK INSIDE the sandbox and said to expect the signing key's fingerprint. Every %G placeholder asks git to VERIFY, and verification needs gpg.ssh.allowedSignersFile, which snug does not author (#576).

Measured, git 2.55.0:

%GK   allowedSignersFile error on stderr, empty line on stdout, exit 0
%G?   N

Commit object carries gpgsig -----BEGIN SSH SIGNATURE----- throughout. So the step passed on a line proving nothing, for the same missing grant it goes on to describe.

Change:

  • in-sandbox step reads the commit object (git cat-file commit HEAD) — proves signing, asks no verification
  • git log --show-signature moved to the HOST, where allowed_signers exists and the check names WHICH key signed. That is what "the signature names the signing key rather than the authentication one" claimed and never tested.
  • both shapes of the in-sandbox failure stated: --show-signature prints No signature exit 0; verify-commit exits 1.

VERIFY.md only, no compiled change. make gate exit 0.

Refs #576 — the grant itself stays unbuilt.

🤖 Generated with Claude Code

VERIFY.md's by-hand signing check ran `git log -1 --format=%GK` inside the
sandbox and said to expect the signing key's fingerprint. Every `%G`
placeholder asks git to VERIFY, and verification needs
`gpg.ssh.allowedSignersFile`, which snug does not author (#576). Measured on
git 2.55.0: `%GK` prints the allowedSignersFile error on stderr, an empty line
on stdout, exit 0; `%G?` prints `N`. The commit object carries
`gpgsig -----BEGIN SSH SIGNATURE-----` throughout.

So the step has been passing on a line that proves nothing, for the same
missing grant it goes on to describe.

In-sandbox step now reads the commit object. `git log --show-signature` moved
to the HOST, where allowed_signers exists and the check names which key signed
— which is what "the signature names the signing key rather than the
authentication one" claimed and never tested. Both shapes of the in-sandbox
failure are stated: `--show-signature` prints `No signature` and exits 0,
`verify-commit` exits 1.

Refs #576

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vyskocilm
vyskocilm merged commit fef391e into main Sep 13, 2026
5 checks passed
@vyskocilm
vyskocilm deleted the verify-sig-repoint branch September 13, 2026 15:27
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.

1 participant