Re: [saag] draft-hallambaker-mesh-udf-02

Nico Williams <nico@cryptonector.com> Mon, 22 April 2019 20:55 UTC

Return-Path: <nico@cryptonector.com>
X-Original-To: saag@ietfa.amsl.com
Delivered-To: saag@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 718751200C4 for <saag@ietfa.amsl.com>; Mon, 22 Apr 2019 13:55:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cryptonector.com
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 OlxbhdKlGVEh for <saag@ietfa.amsl.com>; Mon, 22 Apr 2019 13:55:01 -0700 (PDT)
Received: from orchid.birch.relay.mailchannels.net (orchid.birch.relay.mailchannels.net [23.83.209.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6083E120098 for <saag@ietf.org>; Mon, 22 Apr 2019 13:55:01 -0700 (PDT)
X-Sender-Id: dreamhost|x-authsender|nico@cryptonector.com
Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 468A56A16BE; Mon, 22 Apr 2019 20:55:00 +0000 (UTC)
Received: from pdx1-sub0-mail-a17.g.dreamhost.com (100-96-12-146.trex.outbound.svc.cluster.local [100.96.12.146]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 50FF06A1792; Mon, 22 Apr 2019 20:54:59 +0000 (UTC)
X-Sender-Id: dreamhost|x-authsender|nico@cryptonector.com
Received: from pdx1-sub0-mail-a17.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.17.2); Mon, 22 Apr 2019 20:55:00 +0000
X-MC-Relay: Neutral
X-MailChannels-SenderId: dreamhost|x-authsender|nico@cryptonector.com
X-MailChannels-Auth-Id: dreamhost
X-Absorbed-Daffy: 13f71732417a750c_1555966500085_3263682997
X-MC-Loop-Signature: 1555966500085:3250606534
X-MC-Ingress-Time: 1555966500084
Received: from pdx1-sub0-mail-a17.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a17.g.dreamhost.com (Postfix) with ESMTP id 1C25B7F6FD; Mon, 22 Apr 2019 13:54:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=cryptonector.com; bh=TUSY3VnQqXuQGf a/cIIFGTCkNbc=; b=j8N+h21dmmldmUkQywouhvdceLIF1yYGH/62YTWSKflSWS 6sCLMyI/X0GX1tupG/F/Y8I7scqR2HxdHioCeGX4+uFXlYYPjcwP2rIzhAqyNWj+ VMpakCi4YZP15VDQvEErGLoj9Piw9ygPBTUlTk+qi/bE7eIHjJ0t9B35x4ds0=
Received: from localhost (unknown [24.28.108.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: nico@cryptonector.com) by pdx1-sub0-mail-a17.g.dreamhost.com (Postfix) with ESMTPSA id 680F07F6E1; Mon, 22 Apr 2019 13:54:54 -0700 (PDT)
Date: Mon, 22 Apr 2019 15:54:51 -0500
X-DH-BACKEND: pdx1-sub0-mail-a17
From: Nico Williams <nico@cryptonector.com>
To: Phillip Hallam-Baker <phill@hallambaker.com>
Cc: Michael Richardson <mcr+ietf@sandelman.ca>, IETF SAAG <saag@ietf.org>
Message-ID: <20190422205451.GC3137@localhost>
References: <CA+XWq4HMV=GCQD=0Nb+JjfMMpLXhJQq_1VLThbjJq-_BuUNsOw@mail.gmail.com> <CAMm+Lwjux2jUQkN7ZuY-j9XLR-VGb8NbNAvPQuimghhHBL2Pjg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CAMm+Lwjux2jUQkN7ZuY-j9XLR-VGb8NbNAvPQuimghhHBL2Pjg@mail.gmail.com>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-VR-OUT-STATUS: OK
X-VR-OUT-SCORE: -100
X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeduuddrgeeigddugeeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvffukfhfgggtuggjfgesthdtredttdervdenucfhrhhomheppfhitghoucghihhllhhirghmshcuoehnihgtohestghrhihpthhonhgvtghtohhrrdgtohhmqeenucfkphepvdegrddvkedruddtkedrudekfeenucfrrghrrghmpehmohguvgepshhmthhppdhhvghloheplhhotggrlhhhohhsthdpihhnvghtpedvgedrvdekrddutdekrddukeefpdhrvghtuhhrnhdqphgrthhhpefpihgtohcuhghilhhlihgrmhhsuceonhhitghosegtrhihphhtohhnvggtthhorhdrtghomheqpdhmrghilhhfrhhomhepnhhitghosegtrhihphhtohhnvggtthhorhdrtghomhdpnhhrtghpthhtohepnhhitghosegtrhihphhtohhnvggtthhorhdrtghomhenucevlhhushhtvghrufhiiigvpedt
Archived-At: <https://mailarchive.ietf.org/arch/msg/saag/gwk-9L55Hva210sOSKdH2_YeNmc>
Subject: Re: [saag] draft-hallambaker-mesh-udf-02
X-BeenThere: saag@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Security Area Advisory Group <saag.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/saag>, <mailto:saag-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/saag/>
List-Post: <mailto:saag@ietf.org>
List-Help: <mailto:saag-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/saag>, <mailto:saag-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Apr 2019 20:55:04 -0000

On Mon, Apr 22, 2019 at 04:22:45PM -0400, Phillip Hallam-Baker wrote:
> Another possibility is that people like the technology I am applying but
> would prefer to look at extending PCKS#7/CMS and retrofitting these ideas
> to other legacy protocols. I think it best to develop the capabilities
> first and then look to how they might be retrofitted though. Conversion to
> ASN.1 would require a sponsor willing to fund the work.

It's all the same to me.  However, I would on balance prefer that a) no
new _encodings_ be created without b) a great deal of knowledge of what
came before.

I've been toying with this idea:

 - adapt the Heimdal ASN.1 compiler to output a JSON representation of
   the input module(s),

 - then use jq to transform that in various ways,

 - and lastly, use jq to generate codecs for the [transformed] module
   representations.

Interesting transformations would be to, e.g.,

 - apply code generation controls (e.g., "this INTEGER should be
   represented as a uint32_t in C, and that one as an in64_t"),

 - to add private structure fields for application use (for keeping
   state; this has been a significant driver for hand-coding of codecs).

Why jq?  Well, because it's a very pithy and accessible, functional,
high-level programming language specifically designed for working with
JSON data.  I would prefer to do the whole thing in Haskell, but I'm not
yet fluent in Haskell, and anyways, it's a less accessible language.

Of course, too, there's the fact that I'm one of the maintainers of jq,
which means I'm very familiar with it and productive in it.  But I have
a feeling that once I have a sample code generator for such a thing it
will be very easy to create new backends out of it -- in fact, that
would be a goal.

Nico
--