[openpgp] Re: "TSK grammar" update in persistent symmetric keys

Daniel Huigens <d.huigens@protonmail.com> Wed, 26 August 2026 14:39 UTC

Return-Path: <d.huigens@protonmail.com>
X-Original-To: openpgp@mail2.ietf.org
Delivered-To: openpgp@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 560C812FBB1F2 for <openpgp@mail2.ietf.org>; Wed, 26 Aug 2026 07:39:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1787755191; bh=CbA1drV02Kqkg9MxNhVVYGbRmGdfj0Zbzvk76jZcRPU=; h=Date:To:From:Cc:Subject:In-Reply-To:References; b=g/4Q66SEQ5icfYQLfEXVJ49x1oPl06jj9UxEIfCLOQROam8NA2AvAAXNW9khKphFJ 1KmZhrW//GUbZP1P9mYadw286omtB3xKVWsopdw0piZEpWYflRqy64jQDYJ0G88vfR UTFG9B6U3NWJXqF385yrsphyeKU2n8vi4lvvGu9s=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.796
X-Spam-Level:
X-Spam-Status: No, score=-2.796 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=protonmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id udUtN-D_P8Ai for <openpgp@mail2.ietf.org>; Wed, 26 Aug 2026 07:39:50 -0700 (PDT)
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch [109.224.244.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id A19AD12FBB1ED for <openpgp@ietf.org>; Wed, 26 Aug 2026 07:39:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1787755181; x=1788014381; bh=IpwgM5ApfyVWnv+S/2T+iRVatnn2D/Gu3SJnydLa9Ww=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=PLJ6hV3R5ni9PU2Sf8btB3/0OE179L1uLzKnehj2J3ZDc6XwucVTwvT6bZTG5p7j4 54iknEN1tvOogLvXbZBrnLXbewG6yoteie7pRVGiHa++6Mb6zHfIpiQRBUn3vzzoqB OHMtV7y652cXobvPEHhvRp8o0tp3ZKmoPgT3yrMj3iGA2dOgS7FAfdS3rjor43XWeA W5iLF3KGhl/HyVjc3OjCvirrQqpr7NFZwtrPzfSE/UT+i7d7nFqJNh7EhMuBEaPgVO r+CTpildiSm6XudG0HRUWq7NXiMuqMUxbTPH63428SrPgli095lZVEa4Bq6OmBYrk2 exy0wv3wOvpjQ==
Date: Wed, 26 Aug 2026 14:39:37 +0000
To: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
From: Daniel Huigens <d.huigens@protonmail.com>
Message-ID: <VcJ_RuiIGj1yZZQoff7siEF9B5UXOHSxTXrVn4TQWf9_3nxSCbPbZT6oPWuOKyMJVRqby0tT5L79o9WAWQc6fNoZ0NPfweBNb66lUE07rSA=@protonmail.com>
In-Reply-To: <87pkz6ouzt.fsf@fifthhorseman.net>
References: <87pkz6ouzt.fsf@fifthhorseman.net>
Feedback-ID: 2934448:user:proton
X-Pm-Message-ID: 38e6415047de8c91b4a4101e460f61ee6d704fa5
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: GEY3UZHAK32D7DXU2WB42ULEPSJ7BNA4
X-Message-ID-Hash: GEY3UZHAK32D7DXU2WB42ULEPSJ7BNA4
X-MailFrom: d.huigens@protonmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-openpgp.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: openpgp@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [openpgp] Re: "TSK grammar" update in persistent symmetric keys
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/w1nYfErGjYA2gGiv_rBCfLRAOaA>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Owner: <mailto:openpgp-owner@ietf.org>
List-Post: <mailto:openpgp@ietf.org>
List-Subscribe: <mailto:openpgp-join@ietf.org>
List-Unsubscribe: <mailto:openpgp-leave@ietf.org>

Hi dkg,

The intention of the draft was to say that a PSK packet by itself can
constitute a single TSK, _but_ that it can also be combined with an
asymmetric TSK into a sequence of TSKs.

However, I indeed misremembered what RFC9580 said on the matter and was
under the impression that the TPK and TSK grammars themselves already
allowed multiple primary keys, for example. They don't, but it does say:

> Transferable Public Key packet sequences may be concatenated to allow
> transferring multiple public keys in one operation (see Section 3.6).

So in essence it specifies a secret additional grammar "TPKs := TPK..."
(and since TSKs are defined by analogy to TPKs, it seemed natural to me
to allow having multiple of them, as indeed sop does but our libraries
have supported that even before then). And for the migration to v6, we
in fact need that grammar even more, and now for persistent symmetric
keys as well. So, I do think it would be worth specifying that grammar
somewhere.

_But_ arguably that's wholly orthogonal to PSKs, and the PSK draft
should just say that a single PSK packet is also a valid TSK, and/or
provide an updated complete grammar. In any case I'll try to clarify
this. Thanks for raising it!

Best,
Daniel


On Tuesday, August 25th, 2026 at 21:33, Daniel Kahn Gillmor <dkg@fifthhorseman.net> wrote:

> Hey folks--
>
> (this is with no hats on, just as an interested reviewer)
>
> I just read through draft-ietf-openpgp-persistent-symmetric-keys again
> and i'm struck by this section:
>
> > The Transferable Secret Key grammar defined in section 10.2 of
> > [RFC9580] is extended to allow including Persistent Symmetric Key
> > Packets. Persistent Symmetric Keys may be included together with
> > asymmetric keys in a single sequence of Transferable Secret
> > Keys. However, Persistent Symmetric Keys do not accept subcomponents,
> > such as subkeys, User IDs, or direct-key signatures.
>
> I think "is extended to allow" is not clear. Does it "allow" them as a
> subkey for an existing primary key (for example)? Does it allow them
> only in place of a primary key? If it allows them in place of a primary
> key, but direct-key signatures are not allowed, doesn't that make the
> whole grammar invalid, since a direct-key signature from the primary is
> required for the TSK?
>
> I see (at least) two different ways to resolve this:
>
>  - provide an explicit grammar (at least as explicit as the v6
>    certificate grammar) for TSKs that includes PSK packets, or
>
>  - define a new "sequence of packets" specifically for PSKs, which could
>    be as simple as the grammar for detached signatures.
>
> Also, i don't know that RFC 9580 really gets into the idea of a
> "sequence of Transferable Secret Keys". section 10 of 9580 seems to talk
> about a series of packets which are to be interpreted as a TSK, but it
> doesn't really go into detail about sequences of TSKs themselves. This
> is in contrast to SOP's KEYS object which does contemplate such an
> object.
>
> How do folks think this should be resolved? Or is there actually not a
> problem here, and i'm just confused?
>
> I've opened an issue in the issue tracker about this as well, if folks
> would rather follow up there:
>
> https://gitlab.com/twisstle/openpgp-persistent-symmetric-keys/-/work_items/4
>
> Regards,
>
>         --dkg
> _______________________________________________
> openpgp mailing list -- openpgp@ietf.org
> To unsubscribe send an email to openpgp-leave@ietf.org