git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] tests: make forging GPG signed commits and tags more robust

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Jun 4, 2018, 22:33 UTC
Message-ID
<20180604223335.GC288937@genre.crustytoothpaste.net>
In-Reply-To
<20180604133926.16558-2-szeder.dev@gmail.com>
On Mon, Jun 04, 2018 at 03:39:26PM +0200, SZEDER Gábor wrote:
Show 5 quoted lines
> On rare occasions the given pattern occurs not only in the commit
> message but in the GPG signature as well, and after it's replaced in
> the signature the resulting signature becomes invalid, GPG will report
> CRC error and that it couldn't find any signature, which will then
> ultimately cause the test failure.
Ooh, I hadn't seen these failures, but thanks for tracking this down.
Show 21 quoted lines
> Since in all three cases the pattern to be replaced during the forgery
> is the first word of the commit message's subject line, and since the
> GPG signature in the commit object is indented by a space, let's just
> anchor those patterns to the beginning of the line to prevent this
> issue.
> 
> The test script 't7030-verify-tag.sh' creates a forged signed tag
> object in a similar way by replacing the pattern "seventh", but the
> GPG signature in tag objects is not indented by a space, so the above
> solution is not applicable in this case.  However, in the tag object
> in question the pattern "seventh" occurs not only in the tag message
> but in the 'tag' header as well.  To create a forged tag object it's
> sufficient to replace only one of the two occurences, so modify the
> sed script to limit the pattern to the 'tag' header (i.e. a line
> beginning with "tag ", which, because of the space character, can
> never occur in the base64-encoded GPG signature).
> 
> Note that the forgery in 't7004-tag.sh' is not affected by this issue:
> while 't7004' does create a forged signed tag kind of the same way,
> it replaces "signed-tag" in the tag object, which, because of the '-'
> character, can never occur in the base64-encoded GPG signarute.

This seems sane and obviously correct, and the other patch looked good, too. Thanks.

-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204
Previous: SZEDER Gábor
Message 3 of 3 in “t7510-signed-commit: use 'test_must_fail'”
  1. 1/2 t7510-signed-commit: use 'test_must_fail'SZEDER Gábor, Jun 4, 2018
  2. 2/2 tests: make forging GPG signed commits and tags more robustSZEDER Gábor, Jun 4, 2018
  3. brian m. carlsonJun 4, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.