Re: [openpgp] [RFC4880bis PATCH] Clarify CRC-24 C example implementation

Daniel Kahn Gillmor <dkg@fifthhorseman.net> Thu, 29 April 2021 16:16 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 5FAFD3A416C for <openpgp@ietfa.amsl.com>; Thu, 29 Apr 2021 09:16:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.305
X-Spam-Level:
X-Spam-Status: No, score=-1.305 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, RCVD_IN_DNSWL_BLOCKED=0.001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=fifthhorseman.net header.b=453QpuWP; dkim=pass (2048-bit key) header.d=fifthhorseman.net header.b=0hYeVuA4
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 6wQc4rg2noQl for <openpgp@ietfa.amsl.com>; Thu, 29 Apr 2021 09:15:57 -0700 (PDT)
Received: from che.mayfirst.org (unknown [162.247.75.117]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B7D533A416A for <openpgp@ietf.org>; Thu, 29 Apr 2021 09:15:57 -0700 (PDT)
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019; t=1619712955; h=from : to : cc : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=wimUYCgRp8h0fcq2wsydcXly3DH7sX4sT4mtbkDl+RM=; b=453QpuWPmq8bNXu8I1yWq6qmmQH3Mz4kJCmOzVfe+P3CbRs/ldr1C/RE2cWnCq1TTxTL3 ZjEVBLe14Ae5pPqDQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019rsa; t=1619712955; h=from : to : cc : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=wimUYCgRp8h0fcq2wsydcXly3DH7sX4sT4mtbkDl+RM=; b=0hYeVuA40Ab7tMlSJIma1wKFRJ1CB5InATsUXqO2RgQqywoX0A/ZjZzew652twNbsk+d+ sOAugrZGn2eC5nRy/xlLR0v6odNA9xa8lEV9mJ1DmO7VwKAymSXSJ8FCKbCrNdvQQSZl8/4 hIDaFo3tZSkFNHuUeg/YWeH7ibeK3tamZCBDSdz4mnzG2xZKDKWRFqBJwW9+JQ0+mvi4D9h NIOdvrjnVbJRqswnIJBuenf2yslbKeHvzxIrzezCRhFholY7KxNlmhV4e+DN0VbN91YcBBN d1Y0R2s4P8wtCcC3CgaG1CQ9cBirh8OYCduYWuy826ZyAlOuUfSvTCgj2ucw==
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)) (No client certificate requested) by che.mayfirst.org (Postfix) with ESMTPSA id 854DAF9A5; Thu, 29 Apr 2021 12:15:55 -0400 (EDT)
Received: by fifthhorseman.net (Postfix, from userid 1000) id 221EC2033A; Thu, 29 Apr 2021 12:15:53 -0400 (EDT)
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: Paul Wouters <paul@nohats.ca>, =?utf-8?Q?=C3=81ngel?= <angel@pgp.16bits.net>
Cc: openpgp@ietf.org
In-Reply-To: <367f66eb-85a6-953f-1f18-f193f5c5b87c@nohats.ca>
References: <20210317145508.136021-1-dkg@fifthhorseman.net> <871rcd7rdh.fsf@fifthhorseman.net> <25e8d5713bcccb7b86e0f9ce75dafba80fb41530.camel@16bits.net> <87sg4t5fz8.fsf@fifthhorseman.net> <87k0q4rgml.fsf@wheatstone.g10code.de> <60773433fb4dfae65a59c089c22e24c37e7913cf.camel@16bits.net> <87blbf5a6c.fsf@fifthhorseman.net> <39e6b111f642a944214fd28d2fb53914b540c780.camel@16bits.net> <367f66eb-85a6-953f-1f18-f193f5c5b87c@nohats.ca>
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: Thu, 29 Apr 2021 12:15:52 -0400
Message-ID: <87bl9xawxz.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/jIHxWLGtJ5LV2ZYnxOyXRqlkFAg>
Subject: Re: [openpgp] [RFC4880bis PATCH] Clarify CRC-24 C example implementation
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: Thu, 29 Apr 2021 16:16:02 -0000

On Thu 2021-04-29 00:01:08 -0400, Paul Wouters wrote:
> On Sat, 20 Mar 2021, Ángel wrote:
>
>> Subject: Re: [openpgp] [RFC4880bis PATCH] Clarify CRC-24 C example
>>     implementation
>
> This issue was also left with multiple competing texts, and so I would
> like the WG to come up with 1 change for me to apply :)

The version that you've committed to gitlab's main branch looks good to
me:

------
## An Implementation of the CRC-24 in "C"

    #define CRC24_INIT 0xB704CEL
    #define CRC24_GENERATOR 0x864CFBL

    typedef unsigned long crc24;
    crc24 crc_octets(unsigned char *octets, size_t len)
    {
        crc24 crc = CRC24_INIT;
        int i;
        while (len--) {
            crc ^= (*octets++) << 16;
            for (i = 0; i < 8; i++) {
                crc <<= 1;
                if (crc & 0x1000000) {
                    crc &= 0xffffff; /* Clear bit 25 to avoid overflow */
                    crc ^= CRC24_GENERATOR;
                }
            }
        }
        return crc & 0xFFFFFFL;
    }
------

It's a little bit weird that one constant is written as 0xFFFFFFL and
the other is written as 0xffffff -- maybe we want to align the
orthography (and should 0x1000000 also have an L suffix)?  But even
without those little tweaks, this is strictly better than the earlier
version.

If anyone has any objections to this, please speak up!

   --dkg