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

RE: How to Verify Git GPG Signed Downloads?

From
Jason Pyeron <jpyeron@pdinc.us>
Date
Jan 24, 2021, 22:24 UTC
Message-ID
<06be01d6f29f$ae6450a0$0b2cf1e0$@pdinc.us>
In-Reply-To
<YA3nwFcYz4tbhrlO@camp.crustytoothpaste.net>
Show 28 quoted lines
> From: brian m. carlson
> Sent: Sunday, January 24, 2021 4:34 PM
> 
> On 2021-01-24 at 17:57:13, Jason Pyeron wrote:
> > $ gpg --recv-keys 96AFE6CB
> > gpg: requesting key 96AFE6CB from hkp server keys.gnupg.net
> > gpg: key 713660A7: "Junio C Hamano <gitster@pobox.com>" 59 new signatures
> > gpg: key 713660A7: "Junio C Hamano <gitster@pobox.com>" 2 new subkeys
> > gpg: no ultimately trusted keys found
> > gpg: Total number processed: 1
> > gpg:            new subkeys: 2
> > gpg:         new signatures: 59
> >
> > $ gpg --verify -v git-2.30.0.tar.sign git-2.30.0.tar.gz
> > gpg: Signature made Mon Dec 28 01:12:30 2020 EST using RSA key ID 96AFE6CB
> > gpg: NOTE: signature key 96AFE6CB expired Sun Jul 26 13:41:24 2020 EDT
> > gpg: NOTE: signature key B3F7CAC9 expired Sun Jul 26 13:41:42 2020 EDT
> > gpg: using subkey 96AFE6CB instead of primary key 713660A7
> > gpg: NOTE: signature key 96AFE6CB expired Sun Jul 26 13:41:24 2020 EDT
> > gpg: NOTE: signature key 96AFE6CB expired Sun Jul 26 13:41:24 2020 EDT
> > gpg: NOTE: signature key B3F7CAC9 expired Sun Jul 26 13:41:42 2020 EDT
> > gpg: using PGP trust model
> > gpg: BAD signature from "Junio C Hamano <gitster@pobox.com>"
> > gpg: binary signature, digest algorithm SHA256
> 
> The signature is bad because it's over the uncompressed .tar, not the
> .tar.gz.  There is also a .tar.xz and the signature is the same.  You
> therefore need to uncompress it first with gunzip.
Silly me, but maybe there should be a README in that directory, along with the signatures.asc. If not, then it should easily be found on the git-scm site.
$ gpg --verify  git-2.30.0.tar.sign git-2.30.0.tar
gpg: Signature made Mon Dec 28 01:12:30 2020 EST using RSA key ID 96AFE6CB
gpg: Good signature from "Junio C Hamano <gitster@pobox.com>"
gpg:                 aka "Junio C Hamano <junio@pobox.com>"
gpg:                 aka "Junio C Hamano <jch@google.com>"
gpg: Note: This key has expired!
Primary key fingerprint: 96E0 7AF2 5771 9559 80DA  D100 20D0 4E5A 7136 60A7
     Subkey fingerprint: E1F0 36B1 FEE7 221F C778  ECEF B0B5 E886 96AF E6CB
Show 16 quoted lines
> 
> > $ gpg --list-keys -v 96AFE6CB
> > gpg: using PGP trust model
> > gpg: NOTE: signature key 96AFE6CB expired Sun Jul 26 13:41:24 2020 EDT
> > gpg: NOTE: signature key B3F7CAC9 expired Sun Jul 26 13:41:42 2020 EDT
> > pub   4096R/713660A7 2011-10-01
> > uid                  Junio C Hamano <gitster@pobox.com>
> > uid                  Junio C Hamano <junio@pobox.com>
> > uid                  Junio C Hamano <jch@google.com>
> > sub   4096R/96AFE6CB 2011-10-03 [expired: 2020-07-26]
> > sub   4096R/833262C4 2011-10-01
> > sub   4096R/B3F7CAC9 2014-09-20 [expired: 2020-07-26]
> >
> > It is possible that Junio forgot to push his refreshed public key.
> 
> Yes, I think that's the case.
Previous: brian m. carlsonNext: Junio C Hamano
Message 4 of 5 in “How to Verify Git GPG Signed Downloads?”
  1. Brooke KuhlmannJan 24, 2021
  2. Jason PyeronJan 24, 2021
  3. brian m. carlsonJan 24, 2021
  4. Jason PyeronJan 24, 2021
  5. Junio C HamanoJan 25, 2021

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.