Re: [openpgp] "OpenPGP Simple"

Peter Gutmann <pgut001@cs.auckland.ac.nz> Wed, 18 March 2015 03:55 UTC

Return-Path: <pgut001@cs.auckland.ac.nz>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C59781A8A57 for <openpgp@ietfa.amsl.com>; Tue, 17 Mar 2015 20:55:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level:
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 9isS_46t9NG1 for <openpgp@ietfa.amsl.com>; Tue, 17 Mar 2015 20:55:43 -0700 (PDT)
Received: from mx2.auckland.ac.nz (mx2.auckland.ac.nz [130.216.125.245]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5B5721A8A56 for <openpgp@ietf.org>; Tue, 17 Mar 2015 20:55:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=auckland.ac.nz; i=@auckland.ac.nz; q=dns/txt; s=uoa; t=1426650943; x=1458186943; h=from:to:subject:date:message-id: content-transfer-encoding:mime-version; bh=nq1q7mEL+TBc7VJuCZlmnaQpFFa3EWLfi9kbtZYrUM0=; b=mG2521sPQOSXynfyK7pn50DKnqrO65EN+psqi+N2/kJyg5Adc8sMmw2N FHDtEV32PN59xqssEweHi9R9X5UWu63oQCKX98B1RXESdpzdfkMkGEJiR M965A8bAzsQuViENl1miKJMrCyZXyEr8kpwOxAKobTgxmpV+4nX3yQm7M A=;
X-IronPort-AV: E=Sophos;i="5.11,420,1422874800"; d="scan'208";a="314654746"
X-Ironport-HAT: MAIL-SERVERS - $RELAYED
X-Ironport-Source: 130.216.4.112 - Outgoing - Outgoing
Received: from uxchange10-fe1.uoa.auckland.ac.nz ([130.216.4.112]) by mx2-int.auckland.ac.nz with ESMTP/TLS/AES128-SHA; 18 Mar 2015 16:55:42 +1300
Received: from UXCN10-5.UoA.auckland.ac.nz ([169.254.5.82]) by uxchange10-fe1.UoA.auckland.ac.nz ([130.216.4.112]) with mapi id 14.03.0174.001; Wed, 18 Mar 2015 16:55:41 +1300
From: Peter Gutmann <pgut001@cs.auckland.ac.nz>
To: "openpgp@ietf.org" <openpgp@ietf.org>
Thread-Topic: [openpgp] "OpenPGP Simple"
Thread-Index: AdBhL2cBqnrHj4pqT7e5wax+px8tlw==
Date: Wed, 18 Mar 2015 03:55:41 +0000
Message-ID: <9A043F3CF02CD34C8E74AC1594475C73AAFB4B47@uxcn10-5.UoA.auckland.ac.nz>
Accept-Language: en-NZ, en-GB, en-US
Content-Language: en-NZ
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [130.216.158.4]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/openpgp/SH-N145miaWaIQq3T8QRtQegbqs>
Subject: Re: [openpgp] "OpenPGP Simple"
X-BeenThere: openpgp@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 03:55:45 -0000

David Shaw <dshaw@jabberwocky.com> writes:

>What if the encoding was really simple - something like 4 bytes always, and
>the leftmost bit would mean "partial".  So any packet 2^31 or less could be
>encoded in one piece, but we could still do partial for those situations that
>needed it.  We could have any number of partial lengths, but it would always
>end with a non-partial final length.

That's kind of ugly because now you're stuffing metadata into the length
field.  A better approach is the one used in BER indefinite-length encodings,
you have a flag at the start saying "lengths are indefinite", then a series of
partial lengths followed by an end-of-contents value, tag 0 and length 0.  In
other words it's something like:

  |len|  data  |len|  data  |len|  data  |0|

So once you hit a partial length of zero you know you're done.

Peter.