threads / discuss / 5963

Signed git-tag doesn't find default key

Subject: Signed git-tag doesn't find default key

## tl;dr

3 messages between Oct 20, 2006 and Oct 20, 2006.

replies: 2people: 2as markdown or json

Andy Parkins· Oct 20, 2006, 09:04 UTC · lore
Hello,
I did this:

$ git tag -s adp-sign-tag gpg: skipped "Andy Parkins <andyparkins@gmail.com>": secret key not available gpg: signing failed: secret key not available failed to sign the tag with GPG.

I believe the problem is that I have used the comment field in my key's UID definition.

$ gpg --list-keys andy pub 1024D/4F712F6D 2003-08-14 uid Andy Parkins (Google) <andyparkins@gmail.com>

So when git-tag looks for "Andy Parkins <andyparkins@gmail.com>"; it's not found. The answer is (I think) to search only on the email address when looking for a key. I've simply changed git-tag to have

username=$(git-repo-config user.email)

However, this is clearly wrong as what it actually wants is the committer email. Am I safe to simply process the $tagger variable to extract it?

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIEE
andyparkins@gmail.com
Linus Torvalds· Oct 20, 2006, 16:32 UTC · re: Andy Parkins · lore

Re: Signed git-tag doesn't find default key

On Fri, 20 Oct 2006, Andy Parkins wrote:
Show 7 quoted lines
> 
> I did this:
> 
> $ git tag -s adp-sign-tag
> gpg: skipped "Andy Parkins <andyparkins@gmail.com>": secret key not available
> gpg: signing failed: secret key not available
> failed to sign the tag with GPG.
I would suggest one of two things:
 - specify the signing entity explicitly:
	git tag -u "andyparkins@gmail.com" adp-sign-tag
 - or just add a new alternate user ID to match the full git user ID.

Currently, your pgp key has the full ID "Andy Parkins (Google) <andyparkins@gmail.com>", and the way gpg matches ID's, that will _not_ match an ID of "Andy Parkins <andyparkins@gmail.com>"

But you can just do something like
	gpg --edit-key andyparkins@gmail.com

and then do an "adduid", and then add your UID _without_ the "(Google)" in there, and that should solve all your problems.

Show 8 quoted lines
> So when git-tag looks for "Andy Parkins <andyparkins@gmail.com>"; it's not 
> found.  The answer is (I think) to search only on the email address when 
> looking for a key.  I've simply changed git-tag to have
> 
> username=$(git-repo-config user.email)
> 
> However, this is clearly wrong as what it actually wants is the committer 
> email.  Am I safe to simply process the $tagger variable to extract it?
You're probably better off with something like
	git var GIT_COMMITTER_IDENT | sed 's/\(.*\)<\(.*\)>\(.*\)/\2/'

which should work, but see above: I think you literally are better off just adding an alias to your PGP key that doesn't have the comment field.

That said, I've never understood why gpg matches on the comment field. Dammit, it _should_ find the key anyway. Stupid program.

		Linus
Andy Parkins· Oct 20, 2006, 19:21 UTC · re: Linus Torvalds · lore

Re: Signed git-tag doesn't find default key

On Friday 2006, October 20 17:32, Linus Torvalds wrote:
> and then do an "adduid", and then add your UID _without_ the "(Google)" in
> there, and that should solve all your problems.

Yeah, obviously that's one way; and while it doesn't really matter to me, it seems poor form that git doesn't work with gpg as it is. While one could of course use the "-u" switch, if that is the answer, then why bother with having the "-s" switch at all?

> You're probably better off with something like
>
> 	git var GIT_COMMITTER_IDENT | sed 's/\(.*\)<\(.*\)>\(.*\)/\2/'
I've actually settled on:
: ${username:=$(expr "z$tagger" : 'z.*<\(.*\)>')}
In git-tag.sh.
> That said, I've never understood why gpg matches on the comment field.
> Dammit, it _should_ find the key anyway. Stupid program.
I think it's doing the right thing unfortunately.  If you search on any part
 "Andy Parkins"
 "<andyparkins@gmail.com>"
 "andyparkins@gmail.com"
 "andyparkins"
It finds it fine; the only thing it doesn't find is
 "Andy Parkins <andyparkins@gmail.com>"
Which I suppose is fair enough, as it's a fairly specific format to be 
searching for.

I'm going to advocate my change of only searching on the email address for finding the key - there shouldn't be two keys with the same email address anyway, so there shouldn't be a danger of ambiguity of key. Also, it deals with the case when someone has entered a different name in git and in their gpg UID. For example, I would think it shouldn't be a problem that I like to be called "Andy" on the git list, and yet want my key to say "A. D. Parkins", "Andrew Parkins" or "Sparky McFly".

Now, I think I've written my name far, far too many times in this email.
Sparky McFly
-- 
Dr Andrew Parkins, M Eng (Hons), AMIEE
andyparkins@gmail.com

← back to recent threads