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

Daniel Kahn Gillmor <dkg@fifthhorseman.net> Tue, 25 August 2026 19:33 UTC

Return-Path: <dkg@fifthhorseman.net>
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 E81FB12F48FF1 for <openpgp@mail2.ietf.org>; Tue, 25 Aug 2026 12:33:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1787686432; bh=aOz6xk2OWgAxtvCGHidpBKlAxYK8RPM//r0N8aUoq2E=; h=From:To:Subject:Date; b=BHwzOZ/JffVdE3u9rabOg8uuVXowEF65IeE1kYphcog30FEfdMI/ImaZAh0n0u1r3 tW9AItM0eXAJzzv8Pe1D40bn1bhDBmyRhrOKoM/LYOiWdCI5l5mNcbd6siFe2GqIh+ r/6xW/uVAqcqkeHOq4bD8WmfPDM/cPXkiWwitAw8=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=fifthhorseman.net header.b="cvV2Eakl"; dkim=pass (2048-bit key) header.d=fifthhorseman.net header.b="tPr3JALS"
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 awWopdyTcmnB for <openpgp@mail2.ietf.org>; Tue, 25 Aug 2026 12:33:52 -0700 (PDT)
Received: from che.mayfirst.org (che.mayfirst.org [IPv6:2001:470:1:116::7]) (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 738CE12F48FE4 for <openpgp@ietf.org>; Tue, 25 Aug 2026 12:33:52 -0700 (PDT)
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019; t=1787686426; h=from : to : subject : date : message-id : mime-version : content-type : from; bh=aOz6xk2OWgAxtvCGHidpBKlAxYK8RPM//r0N8aUoq2E=; b=cvV2EaklGoaQpsejyo6qwS3JFiukK8bxs1r5QlRVlQ+zUsIaH8AQDx5PUA+leyO9QeArv Sfun2CWcnDIl08AAg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019rsa; t=1787686426; h=from : to : subject : date : message-id : mime-version : content-type : from; bh=aOz6xk2OWgAxtvCGHidpBKlAxYK8RPM//r0N8aUoq2E=; b=tPr3JALSjsrCFVzuOTpFoNTR7n7td4ohnNJyvkqMhGuB34csWHRiHCaggfT1JqWICrCuS j+lzvbrmgKJqCT8Qpgrs4rATC/ELuYgIRExTCefzHB8rw0fBKJLx0zG+Kh9+0Y2wvhNCaxA bNnC2e/4/Ko2bymr5zBLcMqWiDvuGlHl13nzR/WXEUqNHJyIpeqHEGxbqeyk+4gz5yRfkiy 4AP7NtwBiSXgZYbs+wgGggCM9tU1l8Wr0pVsLbx5fe0beuY5LnBCZURH9gC/VFrJtWrdiPp 1oOZlotMA3dsAMeYSPtHdSeEmLwq8/GKLswMTs5pQZ7Og3fz45A2p3XpOyvA==
Received: from fifthhorseman.net (AMERICAN-CI.ear2.NewYork6.Level3.net [4.59.214.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by che.mayfirst.org (Postfix) with ESMTPSA id 7AF2DF947 for <openpgp@ietf.org>; Tue, 25 Aug 2026 15:33:46 -0400 (EDT)
Received: by fifthhorseman.net (Postfix, from userid 1000) id 4A8EE13F6F9; Tue, 25 Aug 2026 15:33:43 -0400 (EDT)
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: openpgp@ietf.org
Autocrypt: addr=dkg@fifthhorseman.net; prefer-encrypt=mutual; keydata= xjMEZXEJyxYJKwYBBAHaRw8BAQdA5BpbW0bpl5qCng/RiqwhQINrplDMSS5JsO/YO+5Zi7HNFzxk a2dAZmlmdGhob3JzZW1hbi5uZXQ+wsARBBMWCgB5AwsJB0cUAAAAAAAeACBzYWx0QG5vdGF0aW9u cy5zZXF1b2lhLXBncC5vcmcS78JIJ7JbALqPiKEmva7/Pp16WwXWm9hbe5+B/UvnfwMVCggCmwEC HgEWIQTUdwQMcMIValwphUm7fpEBSV5r9wUCZadfkAUJBdnwRQAKCRC7fpEBSV5r9yNXAP442N0c zvisBroQSKKpo+OWm2JpnEJWoVheeJvoRtkBGQEA+edHylby8IGcNccq7rmM2rAXdofvrU1o6qow V+mmDwbOMwRnio4OFgkrBgEEAdpHDwEBB0Cw9HzJFl9lZn3UBaUqSMSgxjcdbd0MwNVcGZ8t8wdN EcLAvwQYFgoBMQWCZ4qODgkQu36RAUlea/dHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9p YS1wZ3Aub3JnhcN+tn41cAg01Kk56zcAfpdsh8j98PDe00mqKPfFvaYCmwK+oAQZFgoAbwWCZ4qO DgkQeAuFTtnCtJZHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnxsD8Sk5P Wgx8c/Zseo6OlCjyDC+Ogm17gTaUUIpxjWYWIQRjrBGOWy5dZsiKhad4C4VO2cK0lgAAdcQA/1RG dmrmvVxkBY2qNPjtERNwPga8Pf4IdlenrZ03NXM4AQC+TDHMpD7d5obEvUy8GYI3oThzYItPP8vv ChY+wbaIBRYhBNR3BAxwwhVqXCmFSbt+kQFJXmv3AAAKbgD+K1MZXnRKPdmA8DgNysyGRZY8cSVH HQcC7ZAAtV3i2+wA/0CyOYrbFYbyTRALgoERR07OHFoP+fJopQLMNQARVUELzjgEZ4qN+RIKKwYB BAGXVQEFAQEHQDTGlR+Qmn334e+bPqvojJVdFsiBf0leAAHP+ESqop8NAwEIB8LAAAQYFgoAcgWC Z4qN+QkQu36RAUlea/dHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnA5Lw b3wOOcoodImuVNw4PYq1U65FDC1Q2JMFIcJXqF0CmwwWIQTUdwQMcMIValwphUm7fpEBSV5r9wAA 6egA/j3QANSmogZ5VTF5KlI+BBye9ud/w9j7RLcCHU6u8AA1AQC3FGaNuv+uWOSa+eeEoI/aZrGd X5el8b/m6aXDDxDjDg==
Date: Tue, 25 Aug 2026 15:33:42 -0400
Message-ID: <87pkz6ouzt.fsf@fifthhorseman.net>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Message-ID-Hash: X4LZ23MOSIXCWDI7EESCZUPNM6AMBY2Q
X-Message-ID-Hash: X4LZ23MOSIXCWDI7EESCZUPNM6AMBY2Q
X-MailFrom: dkg@fifthhorseman.net
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
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [openpgp] "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/_65vSEAfJV78kOZ-AuGtTkb4R6Q>
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>

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