Re: [PATCH] gpg-interface: fix for gpgsm v2.3
- From
Todd Zullinger <tmz@pobox.com>
- Date
- Feb 7, 2022, 16:38 UTC
- Message-ID
- <YgFK+F6Ks8FnN5Q6@pobox.com>
- In-Reply-To
- <20220207105240.dk443kcozynlonpp@fs>
Hi Fabien,
Fabian Stelzer wrote:
Show 5 quoted lines
> On 03.02.2022 15:01, Todd Zullinger wrote: >> (To be clear, I mean "clever and wrong" in regard to my use >> of the string list API, not anyone else's code.) > > string_list_split seems a bit like overkill.
I have little doubt that the string_list_split() method is far from ideal. :)
> I looked for sth like this but gpgs --help does not list it so i didn't dig > deeper. I've checked the blame and it seems like this was introduced >19 > years ago. So i guess we can probably use this ^^
Indeed, the --with-colons output goes much further back in the GnuPG history than Git will ever have to care about.
Show 16 quoted lines
>> --- a/t/lib-gpg.sh
>> +++ b/t/lib-gpg.sh
>> @@ -72,12 +72,10 @@ test_lazy_prereq GPGSM '
>> --passphrase-fd 0 --pinentry-mode loopback \
>> --import "$TEST_DIRECTORY"/lib-gpg/gpgsm_cert.p12 &&
>>
>> - gpgsm --homedir "${GNUPGHOME}" -K |
>> - grep fingerprint: |
>> - cut -d" " -f4 |
>> - tr -d "\\n" >"${GNUPGHOME}/trustlist.txt" &&
>> + gpgsm --homedir "${GNUPGHOME}" -K --with-colons |
>> + awk -F ":" "/^fpr:/ {printf \"%s S relax\\n\", \$10}" \
>> + >"${GNUPGHOME}/trustlist.txt" &&
>
> This does not quite work for me. It will add the fingerprint without the
> colons into the trustlist which is not valid :/The colons are optional, and have been documented as such since cb1840720 ((Agent Configuration): New section., 2005-04-20). The text in the gpg-agent docs from GnuPG 2.2 say:
Colons may optionally be used to separate the bytes of a
fingerprint; this enables cutting and pasting the
fingerprint from a key listing output.Source: https://dev.gnupg.org/source/gnupg/browse/STABLE-BRANCH-2-2/doc/gpg-agent.texi;8021fe7670c79d5c698ec3fb600b02a9e5afb415$756?as=source&blame=off
How did it fail for you? It passes all the tests when I've run it against Fedora and RHEL-based hosts. If it's flaky on other systems, that would put a damper on doing it this way. Though it _should_ work.
[Note to myself] We don't just generate the key data, trustlist, etc. and store it in t/lib-gpg like we do with some other files per b41a36e635 (tests: create gpg homedir on the fly, 2014-12-12). That was because the gnupg home directory layout changed a bit between 2.0 and 2.1.
Thanks,
-- Todd