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

Re: [PATCH 0/1] gpg-interface: add minTrustLevel as a configuration option

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 16, 2019, 20:58 UTC
Message-ID
<xmqq4ky0j8ca.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20191216153204.8906-1-hji@dyntopia.com>
Hans Jerry Illikainen <hji@dyntopia.com> writes:
> I think it makes sense to refactor the processing of TRUST_ status lines
> such that users can configure a minimum trust level that is enforced
> globally, rather than have individual parts of git (e.g. merge) do it
> themselves.
OK.
Show 8 quoted lines
> I also think it makes sense to not store the trust level in the same
> struct member as the key/signature status.  While the presence of a
> TRUST_ status code does imply that the signature is good (see the first
> paragraph in the included snippet above), as far as I can tell, the
> order of the status lines from GPG isn't well-defined; thus it would
> seem plausible that the trust level could be overwritten with the
> key/signature status if they were stored in the same member of the
> signature_check structure.

I agree that this is a good move---ever since gpg-interface.c was written, I have found it disturbing that the order of the lines in the output can affect the result we store and return to our callers

> This patch introduces a new configuration option: gpg.minTrustLevel.  It
> consolidates trust-level verification to gpg-interface.c and adds a new
> `trust_level` member to the signature_check structure.
Nice.
Show 6 quoted lines
> Unfortunately, it breaks backward-compatibility in two ways:
>
> 1. The default trust level is TRUST_UNDEFINED.  This is compatible with
>    the old behavior of every code path *except* for
>    verify_merge_signature() (since, again, it used to die()s on trust
>    levels below TRUST_MARGINAL).

This might be a bit problematic. If we can keep the default behaviour identical to the code before this patch, while allowing the configuration to tweak the behaviour, that would have been more easily acceptable.

That is, can we rearrange this patch so that each user of the verification code define its default minimum trust level (and verify-merge-signature would have a bit higher standard than everybody else), so that the uneven trust requirement is kept by default? And when the user explicitly sets the gpg.minTrustLevel configuration, these uneven default would all set to the given value. Later when the code gets a bit more mature, we would declare that we'd break the backward compatibility and set the default trust level for all codepaths even (either by raising everybody to marginal-or-better, or lowering everybody to undefined).

> 2. The %G? format specifier no longer includes 'U' for signatures made
>    with a key that is either TRUST_UNDEFINED or TRUST_NEVER.

Hmm, I can sort-of-see why you want to introduce a new placeholder "%GT" to disambiguate two sources of 'U', but why would this change to "%G?" necessary?

>    Instead, a
>    new %GT format specifier is introduced that outputs the trust level
>    (as a complete string to avoid ambiguity with TRUST_UNDEFINED and
>    TRUST_ULTIMATE).
Previous: Randall S. BeckerNext: Hans Jerry Illikainen
Message 8 of 19 in “gpg-interface: add minTrustLevel as a configuration option”
  1. 0/1 gpg-interface: add minTrustLevel as a configuration optionHans Jerry Illikainen, Dec 16, 2019
  2. 1/1 gpg-interface: add minTrustLevel as a configuration optionHans Jerry Illikainen, Dec 16, 2019
  3. SZEDER GáborDec 20, 2019
  4. Hans Jerry IllikainenDec 21, 2019
  5. Randall S. BeckerDec 23, 2019
  6. Hans Jerry IllikainenDec 24, 2019
  7. Randall S. BeckerDec 24, 2019
  8. Junio C HamanoDec 16, 2019
  9. Hans Jerry IllikainenDec 18, 2019
  10. 0/1 gpg-interface: add minTrustLevel as a configuration optionHans Jerry Illikainen, Dec 19, 2019
  11. 1/1 gpg-interface: add minTrustLevel as a configuration optionHans Jerry Illikainen, Dec 19, 2019
  12. 0/1 gpg-interface: add minTrustLevel as a configuration optionHans Jerry Illikainen, Dec 22, 2019
  13. 1/1 gpg-interface: add minTrustLevel as a configuration optionHans Jerry Illikainen, Dec 22, 2019
  14. Junio C HamanoDec 24, 2019
  15. Hans Jerry IllikainenDec 27, 2019
  16. Junio C HamanoDec 27, 2019
  17. Hans Jerry IllikainenDec 22, 2019
  18. 0/1 gpg-interface: add minTrustLevel as a configuration optionHans Jerry Illikainen, Dec 27, 2019
  19. 1/1 gpg-interface: add minTrustLevel as a configuration optionHans Jerry Illikainen, Dec 27, 2019

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.