[openpgp] Re: PQC requires urgent semantic cleanup

Heiko Schäfer <[email protected]> Mon, 24 Nov 2025 18:42:50 +0000
Newsgroups gmane.ietf.openpgp
Message-ID <[email protected]>
Hey Andrew, list,

On 11/21/25 1:54 PM, Andrew Gallagher wrote:
> Perhaps the first "bite" should therefore be Section 9 (Time Evolution 
> of Signatures)? Does it make sense to separate this from the rest of 
> the document? Would we have to also include some or all of Section 8 
> (Revoking signatures and keys)?

Sounds good. Combining Sections 8 and 9 makes sense to me.


>> Clarifying semantics questions that the Interop Test Suite already 
>> touches on could be a natural starting point.
>> Once those semantics are clarified, maybe we can iteratively come up 
>> with additional test cases that cover more testable semantics questions.
>
> Perhaps we should draw up a list of tests where implementations 
> disagree, and identify which of those inconsistencies can be 
> attributed to unclear specifications?

I've gone over the Interop Test Suite and identified three categories of 
semantics questions for which I'm unsure if WG consensus has been 
determined. I've opened a PR with a commit for each topic, to point out 
the relevant test scenarios in the interop suite.

https://gitlab.com/sequoia-pgp/openpgp-interoperability-test-suite/-/merge_requests/195


For further discussion, the semantics questions raised in these commits are:

1. "Semantics: Unclear use of signature expiration time"

These are cases where a "signature expiration time" is expected to cause 
the validity of a signature to end. As far as I can tell, it 
washistorically the intent of that subpacketto be applied only to 
certification signatures - a more general application to other signature 
types is atype of behavior that GnuPG introduced at some point, for 
reasons that are unclear to me.

To take one example, it is unclear what added utility a Signature 
Expiration Time subpacket brings when contained in a Primary Key Binding 
signature.

2. "Semantics: Unclear if soft revocations are permanent"

These are cases in which a primary key or subkey is "soft" revoked at 
some point in time (with a "Key Revocation" or "Subkey Revocation" 
respectively). That revocation is followed by a newer "Direct Key" or 
"Subkey Binding Signature", respectively.

It's unclear to me whether there is consensus thatsuch a subsequent 
signature is supposed to "override" the revocation signature.It is 
generally accepted that "hard" revocations should take priority over 
later signatures. It would be equally reasonable to interpret "soft" 
revocations as taking priority over subsequent signatures.

The RFCs RECOMMEND that signatures with similar semantics should be 
prioritized according to creation time, but it is not clear whether this 
applies across distinct signature types, such as between non-revocation 
and revocation signatures over the same material.

3. "Semantics: Unclear if historical self-signatures need to be available"

These are cases where a subkey only has binding signatures that were 
issued later than its key creation time, and the validity of data 
signatures at a reference time that predates these "newer" bindings is 
checked.

It's unclear to me whether a subkey requires a complete set of 
historical self-signatures in order to be considered valid for 
historical data signatures that it issued.

This case touches particularly strongly on the interaction between 
"minimization" of self-signatures and validity, as raised by Andrew.


Thanks,
Heiko

_______________________________________________
openpgp mailing list -- [email protected]
To unsubscribe send an email to [email protected]