Re: [openpgp] The checksum may appear

Daniel Kahn Gillmor <dkg@fifthhorseman.net> Fri, 19 March 2021 22:34 UTC

Return-Path: <dkg@fifthhorseman.net>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DFE793A1274 for <openpgp@ietfa.amsl.com>; Fri, 19 Mar 2021 15:34:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=fifthhorseman.net header.b=lzWTAG0V; dkim=pass (2048-bit key) header.d=fifthhorseman.net header.b=Pt12z2lp
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qIlc7GItqCbJ for <openpgp@ietfa.amsl.com>; Fri, 19 Mar 2021 15:34:30 -0700 (PDT)
Received: from che.mayfirst.org (che.mayfirst.org [IPv6:2001:470:1:116::7]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E856B3A1273 for <openpgp@ietf.org>; Fri, 19 Mar 2021 15:34:29 -0700 (PDT)
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019; t=1616193267; h=from : to : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=uHjxIG5fMlt4+0b72pB7dft7xLHkFzWsyYYcJVGB1Vk=; b=lzWTAG0VbFkU48lPBirAtbWuxW+nIaewfTtdM+BNugdiVRDmAaznYeTjjmiHKDZ63u7wZ U/2fvGQBTsfS4fnAA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019rsa; t=1616193267; h=from : to : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=uHjxIG5fMlt4+0b72pB7dft7xLHkFzWsyYYcJVGB1Vk=; b=Pt12z2lpUBXMsEpsEc2r+vQwcfPNhqGiwKuGSL+0ffmljHpfroa1blzMUJVVaGAv5WIsK G6SSwrCRifb6ahOo/NK34GgKAOz8GT3t+54lieA0QzGcp7M0WgxIiXrWEUxNDmcrVJGgXGy psP7xRRDPcw8JZdInldIWSXEXkSncbltfoYr/NZe6UMPuH8us15uUQG9AmYGCm8aocbuzwS wlr4CSno0wX19KhAV2l8AyIrpQQ+ADvatMAMqotOy5EnZTNVlC2kI5oJV6cgT2Vo/Vl5rl8 dX8IxPlDx/iDxdfvPLrviyMPMybqh7jl8KNusUG2w63TyojqQTDWpcEjRyDw==
Received: from fifthhorseman.net (lair.fifthhorseman.net [108.58.6.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by che.mayfirst.org (Postfix) with ESMTPSA id 41A65F9A6; Fri, 19 Mar 2021 18:34:27 -0400 (EDT)
Received: by fifthhorseman.net (Postfix, from userid 1000) id 4140620557; Fri, 19 Mar 2021 17:39:59 -0400 (EDT)
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: =?utf-8?Q?=C3=81ngel?= <angel@16bits.net>, openpgp@ietf.org
In-Reply-To: <5a927ffed96b38efa08c58b6a29e565dff87a535.camel@16bits.net>
References: <20210317145508.136021-1-dkg@fifthhorseman.net> <5a927ffed96b38efa08c58b6a29e565dff87a535.camel@16bits.net>
Autocrypt: addr=dkg@fifthhorseman.net; prefer-encrypt=mutual; keydata= mDMEX+i03xYJKwYBBAHaRw8BAQdACA4xvL/xI5dHedcnkfViyq84doe8zFRid9jW7CC9XBiI0QQf FgoAgwWCX+i03wWJBZ+mAAMLCQcJEOCS6zpcoQ26RxQAAAAAAB4AIHNhbHRAbm90YXRpb25zLnNl cXVvaWEtcGdwLm9yZ/tr8E9NA10HvcAVlSxnox6z62KXCInWjZaiBIlgX6O5AxUKCAKbAQIeARYh BMKfigwB81402BaqXOCS6zpcoQ26AADZHQD/Zx9nc3N2kj13AUsKMr/7zekBtgfSIGB3hRCU74Su G44A/34Yp6IAkndewLxb1WdRSokycnaCVyrk0nb4imeAYyoPtBc8ZGtnQGZpZnRoaG9yc2VtYW4u bmV0PojRBBMWCgCDBYJf6LTfBYkFn6YAAwsJBwkQ4JLrOlyhDbpHFAAAAAAAHgAgc2FsdEBub3Rh dGlvbnMuc2VxdW9pYS1wZ3Aub3JnL0Gwxvypz2tu1IPG+yu1zPjkiZwpscsitwrVvzN3bbADFQoI ApsBAh4BFiEEwp+KDAHzXjTYFqpc4JLrOlyhDboAAPkXAP0Z29z7jW+YzLzPTQML4EQLMbkHOfU4 +s+ki81Czt0WqgD/SJ8RyrqDCtEP8+E4ZSR01ysKqh+MUAsTaJlzZjehiQ24MwRf6LTfFgkrBgEE AdpHDwEBB0DkKHOW2kmqfAK461+acQ49gc2Z6VoXMChRqobGP0ubb4kBiAQYFgoBOgWCX+i03wWJ BZ+mAAkQ4JLrOlyhDbpHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3Jnfvo+ nHoxDwaLaJD8XZuXiaqBNZtIGXIypF1udBBRoc0CmwICHgG+oAQZFgoAbwWCX+i03wkQPp1xc3He VlxHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnaheiqE7Pfi3Atb3GGTw+ jFcBGOaobgzEJrhEuFpXREEWIQQttUkcnfDcj0MoY88+nXFzcd5WXAAAvrsBAIJ5sBg8Udocv25N stN/zWOiYpnjjvOjVMLH4fV3pWE1AP9T6hzHz7hRnAA8d01vqoxOlQ3O6cb/kFYAjqx3oMXSBhYh BMKfigwB81402BaqXOCS6zpcoQ26AADX7gD/b83VObe14xrNP8xcltRrBZF5OE1rQSPkMNy+eWpk eCwA/1hxiS8ZxL5/elNjXiWuHXEvUGnRoVj745Vl48sZPVYMuDgEX+i03xIKKwYBBAGXVQEFAQEH QIGex1WZbH6xhUBve5mblScGYU+Y8QJOomXH+rr5tMsMAwEICYjJBBgWCgB7BYJf6LTfBYkFn6YA CRDgkus6XKENukcUAAAAAAAeACBzYWx0QG5vdGF0aW9ucy5zZXF1b2lhLXBncC5vcmcEAx9vTD3b J0SXkhvcRcCr6uIDJwic3KFKxkH1m4QW0QKbDAIeARYhBMKfigwB81402BaqXOCS6zpcoQ26AAAX mwD8CWmukxwskU82RZLMk5fm1wCgMB5z8dA50KLw3rgsCykBAKg1w/Y7XpBS3SlXEegIg1K1e6dR fRxL7Z37WZXoH8AH
Date: Fri, 19 Mar 2021 17:39:58 -0400
Message-ID: <875z1m6cwh.fsf@fifthhorseman.net>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature"
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/8bcDzBOAoJVMXH8Y1Yr3LgNX59M>
Subject: Re: [openpgp] The checksum may appear
X-BeenThere: openpgp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/openpgp>, <mailto:openpgp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp/>
List-Post: <mailto:openpgp@ietf.org>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/openpgp>, <mailto:openpgp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Mar 2021 22:34:32 -0000

On Fri 2021-03-19 00:19:15 +0100, Ángel wrote:
> diff --git a/crypto-refresh.md b/crypto-refresh.md
> index 9fbb6eb..bb9635b 100644
> --- a/crypto-refresh.md
> +++ b/crypto-refresh.md
> @@ -2100,7 +2100,7 @@ As stated in the introduction, OpenPGP's underlying native representation for ob
>  In principle, any printable encoding scheme that met the requirements of the unsafe channel would suffice, since it would 
> not change the underlying binary bit streams of the native OpenPGP data structures.
>  The OpenPGP standard specifies one such printable encoding scheme to ensure interoperability.
>  
> -OpenPGP's Radix-64 encoding is composed of two parts: a base64 encoding of the binary data and a checksum.
> +OpenPGP's Radix-64 encoding is composed of two parts: a base64 encoding of the binary data and an optional checksum.
>  The base64 encoding is identical to the MIME base64 content-transfer-encoding {{RFC2045}}.
>  
>  The checksum is a 24-bit Cyclic Redundancy Check (CRC) converted to four characters of radix-64 encoding by the same MIME 
> base64 transformation, preceded by an equal sign (=).
> @@ -2108,7 +2108,7 @@ The CRC is computed by using the generator 0x864CFB and an initialization of 0xB
>  The accumulation is done on the data before it is converted to radix-64, rather than on the converted data.
>  A sample implementation of this algorithm is in the next section.
>  
> -The checksum with its leading equal sign MAY appear on the first line after the base64 encoded data.
> +If present, the checksum with its leading equal sign SHALL appear on the next line after the base64 encoded data.
>  
>  Rationale for CRC-24: The size of 24 bits fits evenly into printable base64.
>  The nonzero initialization can detect more errors than a zero initialization.

As an implementer and a maintainer, I am in favor of this change.  I
think it makes the draft more accurately represent the state of the
ecosystem, where i suspect implementations are willing to accomodate
an absent CRCs.

As a chair, I note that this does seem to subtly change the semantics of
the document, and therefore I think we need to hear from more people in
the WG about whether this seems correct.  Thanks to Werner for already
weighing in on this.

The other way is to have hard data about what implementations are
willing to accept.  I've opened
https://gitlab.com/sequoia-pgp/openpgp-interoperability-test-suite/-/issues/42
to suggest that the interoperability test suite should have a batch of
consumer tests that demonstrate which implementations can handle a
missing CRC.

If folks are interested in helping out with the test suite, this might
be a relatively easy way to make a contribution.

   --dkg