[Cbor] Re: Working Group Last Call on Serialization draft
Vadim Goncharov <vadimnuclight@gmail.com> Wed, 02 September 2026 13:19 UTC
Return-Path: <vadimnuclight@gmail.com>
X-Original-To: cbor@mail2.ietf.org
Delivered-To: cbor@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id E1A67133D470E for <cbor@mail2.ietf.org>; Wed, 2 Sep 2026 06:19:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1788355178; bh=oaPC5SDAzbQBmqHB/ns6xIZ00ll5sWln5A0ecMxBt0o=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=PpLsFkpNyNoIAQWq/PWW0dRpnfvgnNvPqxZRORW8DoNeEYC6xEoGdDF/o9zg4r2cO +hLIOv9X6KUdvpxqhu/tHgeBTKGixJ1fO9fDqajZFhI5413cLHezt/4iSY4DuCFsav +eIRxXo8P8QUe1LIH9/YvkwXhWZUrN2BjqzWBg/A=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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_NONE=-0.0001, SPF_HELO_NONE=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=gmail.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 mZxRM-OIE9jr for <cbor@mail2.ietf.org>; Wed, 2 Sep 2026 06:19:38 -0700 (PDT)
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) (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 270AE133D46D9 for <cbor@ietf.org>; Wed, 2 Sep 2026 06:19:38 -0700 (PDT)
Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-48444ec4fe2so556010f8f.0 for <cbor@ietf.org>; Wed, 02 Sep 2026 06:19:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788355171; x=1788959971; darn=ietf.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=Msa7fpd/VTQ3MraMbl9i5sRZsHaKWe7ZSgVrEHOxMX8=; b=SPj2uvrLXLMfkYS8L6MEpLzZmaRvlO8RfTBClQL7wxDf+0CWViqWCXcz5dPWOSNAW6 4UQ5Jo1Lb6vVkO4ksNrEuWW+iTNMCsy08aVvI+I8nWKB84WBKKhWEO6okoz2y7QXy+1h 4ZBW9ElHhehOgPg13B9tHPpby6Sot3h32gMmqOGy5iS+OWRfh63DYhiASjU+gYwYsaYB Ss+cOu+J/i6Xo/xzXLWhcqnWh/Xac4SAliXkLdAgWPLkbtAxH9NW80sZME7YdJvbFsVC ekRW9an18ig5WqrJ2uzGTdU/ATB52n7y56h2iShArqyVYxALt3XR3vvcwArDO/o8GQrB XXlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788355171; x=1788959971; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Msa7fpd/VTQ3MraMbl9i5sRZsHaKWe7ZSgVrEHOxMX8=; b=ifqZOLfQONKBkEUhKQHyJZF079c4Vt3if0Q/Vz6ceAQito6f3fRRwkAS75L/KqDZIZ D5Orw/oiULwcW4V5qxWTyl90muzkd8PauIK5WMquZ+R568p+aI7tivLKN0lW8MY5qB1x ByANiWxCTlC8OuG95s3wM4SDT78U9McVKV27FlXMJotVqu05dbXVK+eRnYdG1vKK9ov+ 4eA3RhjNiBQkZNPstp04ygwnwj6g02+Xo+3ssHHlShZIrg0GsTjQ+fLo/WsIqnxrx9ze /o0u8RNgxLrWB197thIUcaDu5fPZZPVFEDHc0eFghiSW2gXvsY5oY1C6hF3c0zATKGYQ OmxQ==
X-Forwarded-Encrypted: i=1; AHgh+RpIK+BSg6HyCo1n9eqzKApANEQAdBJmxFlXJ1814FudFycB850FqcRO/9UuKWaZTSuy9/ab@ietf.org
X-Gm-Message-State: AFuF++k49UDS/Lw0/VZW7MtXbp0K4+vDi5fu4pjBlottq71QgebEFNfG QdJMy8gH9uQIV3wh6zCwcVdSGmszstBO4HZswTU8ahnmGhI/+yXOnfOk
X-Gm-Gg: AR+sD12xMZ+/4XxXsL+Zzlm/OVU9njnA8lbEjDCNgMp6MDy3tcoUxkCPClei8E3p/43 gqthFRanAFkPoQ5lSwt8AVZZsiD7LTfrEKnh9hjLynit36LpPNfiV1+It6OH+VFY72r8S8SW2R7 YGO7AFaRaEt0LBffuGPqzhdxqRL7Y+MbarGlvs1SuYjh4O3B7mP6EYLnuuNEXlWzygw7yfvEtrC Ge4uW9ykvy1gRUvWVGlN/fy3I0iD04WpoV3W/NYXCrQks3L3lAgjxxJV6EAELDW9OGGRtGrUVgw 3tG5KwnoaBH3ZrsLbsDvAiZ+FCanidxmFeBVrW6eAp51omhU3HHDxa2JKX6dx6xrl3GQAcTawlh QzAkcAfGLCNfd2059TQ8Id06vZAb/BQIdgfQ6g2gXy8tKQNUZC83rDNY13D6wGzAx88LfkpXf/4 SwV3ZIlwxvT63rb7FJHNvIkRG5zYgZ+xiP2RQmA8QTtu30pe/ReYBIH4bi7XAvJhyWqVxM5WUnm kXWxG32e+d9bW/BHUhkT5WCXkbTMNo=
X-Received: by 2002:a05:600c:8714:b0:499:b65d:1250 with SMTP id 5b1f17b1804b1-49ce580d869mr88729085e9.2.1788355170671; Wed, 02 Sep 2026 06:19:30 -0700 (PDT)
Received: from nuclight.lan (broadband-77-37-180-76.ip.moscow.rt.ru. [77.37.180.76]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce464aa70sm74020095e9.6.2026.09.02.06.19.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 06:19:30 -0700 (PDT)
Date: Wed, 02 Sep 2026 16:19:26 +0300
From: Vadim Goncharov <vadimnuclight@gmail.com>
To: Laurence Lundblade <lgl@island-resort.com>
Message-ID: <20260902161926.6cf675b7@nuclight.lan>
In-Reply-To: <A6570221-31E5-4EEB-97A3-60660B4F0034@island-resort.com>
References: <CALaySJJa=QjUM5B6d8boiFb8qyRwf6LO32WVVWBGuCWtSmEFCQ@mail.gmail.com> <876653A4-6425-45E1-A77A-F0A6A1315BDD@cursive.net> <7D242660-39F1-4CC0-A0F3-45A37DD3B448@island-resort.com> <30464fd3-a635-46ec-b276-c8a7e874f126@gmail.com> <A6570221-31E5-4EEB-97A3-60660B4F0034@island-resort.com>
X-Mailer: Claws Mail 4.4.0 (GTK 3.24.52; amd64-portbld-freebsd13.5)
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: 45LFLX3LCSGYYR7FNMF6OAROSY73OFMK
X-Message-ID-Hash: 45LFLX3LCSGYYR7FNMF6OAROSY73OFMK
X-MailFrom: vadimnuclight@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-cbor.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Anders Rundgren <anders.rundgren.net@gmail.com>, Joe Hildebrand <hildjj@cursive.net>, Barry Leiba <barryleiba@gmail.com>, CBOR Working Group <cbor@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Cbor] Re: Working Group Last Call on Serialization draft
List-Id: "Concise Binary Object Representation (CBOR)" <cbor.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/m8P1ZQbHNDLOYOZpVWxiL-7exLo>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Owner: <mailto:cbor-owner@ietf.org>
List-Post: <mailto:cbor@ietf.org>
List-Subscribe: <mailto:cbor-join@ietf.org>
List-Unsubscribe: <mailto:cbor-leave@ietf.org>
On Mon, 31 Aug 2026 23:39:28 -0700 Laurence Lundblade <lgl@island-resort.com> wrote: > I think RFC 8949 presents the idea of a [Generic Decoder] that accepts all > serializations, but never a checking decoder. A checking decoder in RFC 8949 > would be for either preferred serialization or [Section 4.2.1 deterministic]. > > It’s fine for something new and narrow like dCBOR or CBOR::Core to say that > all decoders are checking decoders. > > In theory, we could say that all preferred-plus and deterministic decoders > must be checking decoders. In a way, it would be simpler to understand > because the difference, which is subtle, would be eliminated. We would not > be having this discussion at all. > > I’ve not gone that direction because it is less aligned with RFC 8949, > preferred serialization, and most decoder implementations. For example, most > will accept all five serializations of the integer 1. A checking decoder for > deterministic also adds a fair bit of code (on a constrained device) to > check the sort order. Moreover, the "checking" definition is vague. One could say that checking, if employed, must be not only for deterministic/preferred parts (or at least have different [configurable] levels), but be related to equally important for application things, from tag correctness up to schema conformance. For example, a decoder might check that tag 32 is really tstr (per IANA registry) and that contents of this tstr (URL) actually conforms to RFC 3986. This is not purely theoretical question because some decoders already do automatical instantiation from tag 32 to e.g. URI::URL native class of platform. But here be dragons: there can be e.g. 32(simple(0)) for entirely legitimate reason of CBOR text in question being packed. This is long-standing problem of so called "stand-in tags" in [cbor-packed], likely out of scope for serialization draft. Therefore, absence of "MUST" on checking is the right decision (even more code on non-constrained devices). > LL > > [Generic Decoder]: > https://www.rfc-editor.org/rfc/rfc8949.html#name-generic-encoders-and-decode > [[Section 4.2.1 deterministic]: > https://www.rfc-editor.org/rfc/rfc8949.html#name-core-deterministic-encoding > > > > > On Aug 31, 2026, at 11:08 PM, Anders Rundgren > > <anders.rundgren.net@gmail.com> wrote: > > > > On 2026-08-31 22:19, Laurence Lundblade wrote: > >> Joe, I don’t quite get what you are after here yet. Which sections are > >> inadequate? I am thinking of adding this text to the decoder requirements > >> for both preferred-plus and deterministic: The above requirements are > >> what the decoder MUST accept. A decoder complying to these requirements > >> can also accept other well-formed serializations if it is being liberal > >> in what it accepts. If a decoder chooses to accept only these > >> requirements, then it is a “checking decoder” as described in appendix H. > >> I don’t think any CBOR library should default to a checking decoder. It > >> should be a mode that is selectable when and end-end protocol specifies > >> it, or a particular deployment wants it. > > > > This is where it (IMO) gets wrong. Wolf's dCBOR decoders as well as my > > CBOR::Core decoders are checking. In the CBOR::Core case there is also an > > option for accepting non-deterministically encoded objects, not for being > > "liberal" à la Postel, but to cope with "legacy" CBOR. > > > > The same goes for non-trivial NaNs. That non-trival NaNs are permitted in > > some modes and outlawed in other modes seems like an "opinion". An > > implementation could (like CBOR::Core), equally well support a common > > policy for all modes it supports. > > > > However, since the WG seems hellbent on creating "The Ultimate Guide to > > CBOR Serialization, Library Implementation, and Application/Protocol > > Design", I guess this is as good as it gets. > > > > Note: these remarks are "for the record" only. Publishing may proceed. > > > > Anders > > > >> It’s never an input validation security issue. Non-checking decoders must > >> do bullet-proof input validation. LL > >>> On Aug 18, 2026, at 12:05 PM, Joe Hildebrand <hildjj@cursive.net> wrote: > >>> > >>> - (most important) Make it clear in each section whether the rules apply > >>> to encoders or decoders. > >>> - Make it clear that it is up to the protocol designer what to do when > >>> decoding inputs that are not in the expected encoding. This is good for > >>> protocols where encoding errors (attacks?) might have security > >>> consequences. A couple of examples or criteria could help protocol > >>> designers decide. There is some text in appendix H but it isn't > >>> directive enough. > >>> - Make a note that even if the protocol designer did not specify that > >>> checking should be done, it may make sense to check on inputs on > >>> non-constrained devices to increase the likelihood of finding encoding > >>> errors before crashing constrained devices. > >> _______________________________________________ > >> CBOR mailing list -- cbor@ietf.org > >> To unsubscribe send an email to cbor-leave@ietf.org > > > > _______________________________________________ > > CBOR mailing list -- cbor@ietf.org > > To unsubscribe send an email to cbor-leave@ietf.org > > > _______________________________________________ > CBOR mailing list -- cbor@ietf.org > To unsubscribe send an email to cbor-leave@ietf.org -- WBR, @nuclight
- [Cbor] Working Group Last Call on Serialization d… Barry Leiba
- [Cbor] Re: Working Group Last Call on Serializati… Anders Rundgren
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Brian Sipos
- [Cbor] Re: Working Group Last Call on Serializati… Rohan Mahy
- [Cbor] Re: Working Group Last Call on Serializati… Brian Sipos
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade
- [Cbor] What is the data model used in draft-ietf-… Christian Amsüss
- [Cbor] [off-list] What is the data model used in … Christian Amsüss
- [Cbor] Re: Working Group Last Call on Serializati… Vadim Goncharov
- [Cbor] Re: Working Group Last Call on Serializati… Carsten Bormann
- [Cbor] Re: Working Group Last Call on Serializati… Vadim Goncharov
- [Cbor] Re: [Ext] Working Group Last Call on Seria… Paul Hoffman
- [Cbor] Re: [Ext] Working Group Last Call on Seria… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Joe Hildebrand
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Anders Rundgren
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Carsten Bormann
- [Cbor] Re: Working Group Last Call on Serializati… Vadim Goncharov
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Vadim Goncharov
- [Cbor] Re: Working Group Last Call on Serializati… Joe Hildebrand
- [Cbor] Re: Working Group Last Call on Serializati… Joe Hildebrand
- [Cbor] List of all serialization variation (was R… Laurence Lundblade
- [Cbor] Re: List of all serialization variation (w… Joe Hildebrand
- [Cbor] Re: List of all serialization variation (w… Laurence Lundblade
- [Cbor] Re: List of all serialization variation (w… Laurence Lundblade
- [Cbor] Serialization checking and big numbers (wa… Laurence Lundblade
- [Cbor] Re: Serialization checking and big numbers… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Martine Sophie Lenders
- [Cbor] Promote Appdendix A (was Re: Working Group… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Mikolai Gütschow
- [Cbor] Re: Working Group Last Call on Serializati… Anders Rundgren
- [Cbor] Tag rule -> update to 8949 (was Re: Workin… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Carsten Bormann
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade
- [Cbor] Re: Working Group Last Call on Serializati… Laurence Lundblade