[Plants] Re: Nits
David Benjamin <davidben@chromium.org> Thu, 09 April 2026 18:54 UTC
Return-Path: <davidben@google.com>
X-Original-To: plants@mail2.ietf.org
Delivered-To: plants@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 8BF0FD8E97C4 for <plants@mail2.ietf.org>; Thu, 9 Apr 2026 11:54:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1775760898; bh=BQjVUBFSD/buZB4BybpRbxA3KLElQNxDoWzvISC5adE=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=UL2eewpq1Y1v5LCyF3s/keefBFt3ECWbyksv+QCBJYtCvq8ywRjCTh885m/PBg2tR nzV+WVOJgzAul/tGJ6cCQvB6i/dHVub8PViZGfPVAabt1z4pAh3cVn6NbbQu8o4Aiy nk6d2qn93nUk8R4SUdDB9xUkwXbmnB+Z6A9E26G8=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -9.499
X-Spam-Level:
X-Spam-Status: No, score=-9.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
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 GMG3nLZV9pyi for <plants@mail2.ietf.org>; Thu, 9 Apr 2026 11:54:57 -0700 (PDT)
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 5F6B1D8E97B7 for <plants@ietf.org>; Thu, 9 Apr 2026 11:54:57 -0700 (PDT)
Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-66d24c6963bso2216944a12.1 for <plants@ietf.org>; Thu, 09 Apr 2026 11:54:57 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1775760896; cv=none; d=google.com; s=arc-20240605; b=bMN39SnkFWf1YGSikjOHQBDnvNqwzCOOZdXW6ogr/iii/e28po17t+bEFlC9NBscni X5wFCJUpNfogXjo/dzVZxpH8z4dNhpwaYWKgJWfq0izbHay7gb/GqQUXGAwDtAUqQb+k LCdxqhmH0T3qczqrwxNrAGzRfjqHbWsK1heRuGp5fpktwxhb14ZAbMoPxrZklWJMmAZi leLzrlmaPLNy9iuiTZROxrO4cu+V/bjw1klAm2WtIsXrXfv7aF0CKXSA6vblRnIQT4WR ay6DKcclXhogYNzPd9mpeuvtBHnSh7WsI/F/Xdg+alOS8cGYP1XqhKmEnfwzJFu8sNnu cbyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=BQjVUBFSD/buZB4BybpRbxA3KLElQNxDoWzvISC5adE=; fh=Cv+ZfyjlotQ3EfVF6AjCjWPu58Ao19vJGf0gOF2yGt8=; b=hhyB0HMX7E57yAvuBb/D+swruSAa0YLMxqWZ8YHNxBOhtvNzpWZ6raIgD3bOwghXP+ N4fxtoJ5scRsFyq4VVIWo/Sl43D9M6pR4FPnN7t05t2fPDdJgizPY6tn+z7ydeMFhVD7 A0/bEaBSrZ2w41+Q8KIVUjC7oYKOg+iozCpqTNGiKnzqyRV1ZP379cy24XXdAkmyHvh9 sP+XRDiE9ZcsHkfTFGtgZ0VN+pQyA1+kfEx9BPwZiCSktPNy8sum++Rt8xyEXLtVipAz mcv6BtMymTyLhpIsD37SWs6hH7y3XZJbjqIzhpxJB32yLWCdvB/8FgZi3NtgV2US83jn LqyA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1775760896; x=1776365696; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=BQjVUBFSD/buZB4BybpRbxA3KLElQNxDoWzvISC5adE=; b=Rfk/1M25Y6Ijkl+3+Jvluoa4J9yITYV5w/IF48A7Iqv0xfD+vJ4yjeAkfRJp7dtLN3 Yn2D7GgvI6irCk5Ks6Ro2NwBhu8yD2dZUYck9f/4uPasFzKt3TKfkDr/hbKsH5SsRU7o CtCwTSm5YFFU2E1JoPg3zP0gTVOOgkzFIkMbM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775760896; x=1776365696; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=BQjVUBFSD/buZB4BybpRbxA3KLElQNxDoWzvISC5adE=; b=TMaDItmiL8+R7dwYxNJ2wnAXOhs1ZPje/UXrfQRYk3Oe99udEww2kBvnrd9ilKaISs 8XTCF2En5bAfZXQ7dUj4SBYGyUZ0w6oTjry4sqmzMbsNomWFY+K6V9Ia60OrH1iDA5LM e6Q90qzSlvBrItGrg9CIr7pFaabfbiKJQ4MqUfm3EoBauQsr//bWUjAwUJGBMtLS3TBK dwYo2aTsiNf70J7a24SeM5Q7aOA+pg7RqlDw3NLBwX2i4DE+RTaoxHJ8ZsxgNsPIjC0Y wgFzo56jo/+ih1XSiVnimyQtT5OKaPdnTSY79+X/mJ12DR4VIQpD+J1bKXU7QhjGot0H jimw==
X-Gm-Message-State: AOJu0YzIsmPikqe31YGasr8dPyX+6RCQAd7wsSer5QRZZ9rcqVpLUTz4 QSf5HIHKM+N8+sX5kKEGI7cWs3DuRK8M93MEu5piT/YXZ533OJO9if9TVqAwWSRzX5TOa2TUukE jzAHJKxIUfhe7je7EnnjGM5YkN9RgMF7CXG0rQILFMfhV0tVXFMbx1yI=
X-Gm-Gg: AeBDieu9pyUilwYb7ENg73pAjX2z0ENJrTQ/OmXukioudp5+pAY9Of/hPnd6a2eWrmk SnGEmvm1QViH2TgQ2bgVQ/eb4YuR9/tchazhzCAb7YJrcssnbLs3HjpUwnlWnz2eu+7XJlpxl0y dEPO1cPActu0BgB+AQdFxnSFc+8b5hIZLflbh1uluOxmA6VEW5t74+7pyvBqbaKUQerGl5sLho9 08AlR0Maupgx3JO5W1q1giKvY41JjAAmaouw223jDUmdV6VAhrGjbte40Gzqs7tp/xcObKxoucu l6rGfkOWgCtfg0o65sMNWHDWuGmP3fpztnEWhXoYuI0INbu1qzmUuTA=
X-Received: by 2002:a17:907:96ac:b0:b9c:c8aa:2467 with SMTP id a640c23a62f3a-b9d72657a6dmr26257966b.34.1775760895726; Thu, 09 Apr 2026 11:54:55 -0700 (PDT)
MIME-Version: 1.0
References: <CACsn0cmW=LAWMwOxzQ+SDsGnNc8nwmZWEqFtB898GxA3LvDWcA@mail.gmail.com> <CAF8qwaAwH8y9VDp92xDrAJ_2cegeL11=e5PQSKjz8epx_zPTTQ@mail.gmail.com> <CACsn0cnJ2hGnSb0K38w6P85va-iL03abdWq33T+U79DKYLZeJA@mail.gmail.com>
In-Reply-To: <CACsn0cnJ2hGnSb0K38w6P85va-iL03abdWq33T+U79DKYLZeJA@mail.gmail.com>
From: David Benjamin <davidben@chromium.org>
Date: Thu, 09 Apr 2026 14:54:43 -0400
X-Gm-Features: AQROBzBvuzsrGB-z3zbLmZX9RPswnmTW_2RX3X6R8EjkmKiKljkxonO7r4u8OAg
Message-ID: <CAF8qwaBDZssoV2AFE4FL70S2fZ144FYYEgKCg0X8MAWHwOaBTQ@mail.gmail.com>
To: Watson Ladd <watsonbladd@gmail.com>
Content-Type: multipart/alternative; boundary="00000000000066ace2064f0b8df6"
Message-ID-Hash: QGUWBTG4PVDOQTPDXJ4HFWYOPJ75C6UU
X-Message-ID-Hash: QGUWBTG4PVDOQTPDXJ4HFWYOPJ75C6UU
X-MailFrom: davidben@google.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "plants@ietf.org" <plants@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Plants] Re: Nits
List-Id: "PKI, Logs, And Tree Signatures" <plants.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/plants/HXF-wurIrtpBdFHqa_PR5ujzzj8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/plants>
List-Help: <mailto:plants-request@ietf.org?subject=help>
List-Owner: <mailto:plants-owner@ietf.org>
List-Post: <mailto:plants@ietf.org>
List-Subscribe: <mailto:plants-join@ietf.org>
List-Unsubscribe: <mailto:plants-leave@ietf.org>
On Thu, Apr 9, 2026, 14:29 Watson Ladd <watsonbladd@gmail.com> wrote: > > On Wed, Apr 8, 2026, 4:06 PM David Benjamin <davidben@chromium.org> wrote: > >> On Wed, Apr 8, 2026 at 5:20 PM Watson Ladd <watsonbladd@gmail.com> wrote: >> >>> Dear gardeners, >>> >>> We use an encoding trick to avoid issues with zero based indexing: why >>> not burn a cert there to avoid complicating things? Very minor. >>> >> >> Do you mean the serial number? We *do* burn a cert, specifically to >> *avoid* complicating things with an encoding trick. That's why entry >> zero has to be a null_entry. Or are you talking about something else? >> > > The null_entry isn't a cert. But I guess it doesn't matter either way > since nothing sees it. > Ah sure, I should have said we burn an entry. And yeah it's a bit tidier I think to just put a null entry, with semantics of "you just certified that the empty set is vacuously true, cool I guess". Otherwise we have to put an actual certificate in there and arrange for it to not mean anything and then teach all the monitors to ignore it, etc. To that end, the monitors will see it since it's part of the tree. But since it's just null and we define null to be a no-op entry it's all good. For bonus points we exercise the entry type extension point a little for free. (The Merkle tree really, *really* wants zero-based indices. There's this >> very nice correspondence between tree structure and the binary >> representation of the entry's index that only works with zero-based >> indexing. X.509 technically forbids serial number zero. To solve this >> annoying conflict, the draft just burns a certificate to avoid thinking >> about this.) >> >> >>> I'm not sure 503 is the right error code for the landmark-relative cert >>> in ACME: a 400 series code would make more sense given that some are about >>> resource conditions. There isn't one that fits though. 503 may complicate >>> infrastructure monitoring as it is usually a server problem you want to >>> worry about. >>> >> >> Hmm. I think I picked 503 just because that was the existing semantics >> for Retry-After paired it with 503. But that is a good point that we don't >> *really* satisfy the expectations around 503. >> https://www.rfc-editor.org/rfc/rfc9110#section-10.2.3 >> >> I've filed https://github.com/ietf-plants-wg/merkle-tree-certs/issues/202 >> to track this. Do folks have thoughts on what it should be instead? >> >> >>> Most seriously I'm not entirely clear on how given the certificate we >>> find out what trust anchor ranges cover it. I think that there in the >>> current draft there is some out of bound data required and I think this is >>> solveable by tossing the landmark ID in the cert. That would simplify >>> integration as a pile of DER is still all that needs to be parsed by the >>> server, vs changing the representation. >>> >> >> TLS Trust Anchor IDs defines this CertificatePropertyList structure that >> contains this kind of CA -> subscriber information, with a PEM >> serialization and all: >> >> https://tlswg.org/tls-trust-anchor-ids/draft-ietf-tls-trust-anchor-ids.html#name-certificate-properties >> >> The idea is that we use this as an extensible vehicle for any kind of >> CA-provided out-of-band information that doesn't need to be in the >> certificate (relying party doesn't care, would just be a waste of bytes), >> but that the authenticating party would want to know when using the >> certificate. >> > > Gotcha. I think this would then mean you need an association between those > three PEM files (the key, the cert, and the additional information) vs. a > bag of PEM you all throw in (all the certs one place, all the keys and > auxilliary info elsewhere). I think the bag of PEM might be a little easier > for some applications but not that sure. Separately it might be worth me > writing a PR to put that pointer in where I started wondering how that > works but I fully understand if we don't want to make a cluster. > The current proposal has the aux info and the certs in one PEM blob, but not the private key, just because ACME is responsible for delivering the two and not the one. (Maybe the private key doesn't even exist as a PEM blob because it's locked away on some HSM, I dunno.) But that's just the interchange at the ACME level. I see no reason why server software can't concatenate it with the private key, or split them up fully, or whatever your server uses to store it's config. And yeah if that wasn't obvious from the spec, PRs sound good! A lot of it is by reference to the TAI spec, but we should make whatever changes to one or the other we need to make it clear! (There's some precedent for this sort of thing in other contexts, like the >> OpenSSL-specific X509_AUX stuff, or how PKCS#12 blobs can have >> bagAttributes with your CertBag. For that matter, we could even recast this >> as ASN.1 Attributes if people prefer, but since that's so far only been >> applied to PKCS#12, it wasn't clear how much we'd gain from there. CAs, for >> example, generally don't hand you PKCS#12 blobs because CAs generally >> aren't in the business of generating your private key.) >> >> David >> > > > Astra mortemque praestare gradatim >
- [Plants] Nits Watson Ladd
- [Plants] Re: Nits David Benjamin
- [Plants] Re: Nits Watson Ladd
- [Plants] Re: Nits David Benjamin
- [Plants] Re: Nits David Benjamin