Return-Path: <0100016e66c9b02d-382d9d6e-6d88-47ec-a117-5f38a3699fb1-000000@amazonses.watsen.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 63937120831
 for <netconf@ietfa.amsl.com>; Wed, 13 Nov 2019 14:02:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level: 
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
 header.d=amazonses.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 l_uVf0Z43J4M for <netconf@ietfa.amsl.com>;
 Wed, 13 Nov 2019 14:02:06 -0800 (PST)
Received: from a8-96.smtp-out.amazonses.com (a8-96.smtp-out.amazonses.com
 [54.240.8.96])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id F4098120830
 for <netconf@ietf.org>; Wed, 13 Nov 2019 14:02:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
 s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1573682524;
 h=From:Message-Id:Content-Type:Mime-Version:Subject:Date:In-Reply-To:Cc:To:References:Feedback-ID;
 bh=vRTb6tGl/I4fWhfzTJ1BPbm2hXnpXxFvpwz+J9Txjf8=;
 b=QO0ZWzb3v1fABq49C7sShXdfDxdJ6PDxiM/kgzXkR+1yFBKaIyg4L2yU9RvcYA1T
 CZRAs39qkZuE90GqTcoLbcdUwUFarvUSPmN5yNgkGIdbbLEioT/6wddZScpVG9kooxc
 Hir1hzCN5o20PvAC1eVA+gXPaWGvwj7ZGM4WXGaU=
From: Kent Watsen <kent@watsen.net>
Message-ID: <0100016e66c9b02d-382d9d6e-6d88-47ec-a117-5f38a3699fb1-000000@email.amazonses.com>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_63F7BFFB-920C-4349-BFCE-C5C9A87BD47B"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Wed, 13 Nov 2019 22:02:04 +0000
In-Reply-To: <20191113.135649.2218807015240802033.mbj@tail-f.com>
Cc: "netconf@ietf.org" <netconf@ietf.org>,
 Wang Haiguang <wang.haiguang.shieldlab@huawei.com>
To: Martin Bjorklund <mbj@tail-f.com>
References: <20191113.135649.2218807015240802033.mbj@tail-f.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-SES-Outgoing: 2019.11.13-54.240.8.96
Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/OsvNseHjQyYkwTyK9iSsaeteVQk>
Subject: Re: [netconf] crypto-types and keystore comments
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>,
 <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>,
 <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Nov 2019 22:02:10 -0000


--Apple-Mail=_63F7BFFB-920C-4349-BFCE-C5C9A87BD47B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii



Hi Martin,


> o  Is the key-format there to support multiple formats for the same
>   kind of key (e.g., ssh key), or is it there to be able to have
>   different kinds of keys in the same list?  (Or both?)
>=20
>   I.e., is the intentation that a client can freely pick any
>   private-key-format (that is supported by the server), regardless of
>   how the key is used?

Firstly, see: =
https://mailarchive.ietf.org/arch/msg/netconf/5Zpj8Xxh7bHvAJeQf2Lj0t6h8hg =
<https://mailarchive.ietf.org/arch/msg/netconf/5Zpj8Xxh7bHvAJeQf2Lj0t6h8hg=
>

That said, there are some limitations that are likely not represented =
yet.  For instance, an encrypted private key must use "identity =
encrypted-private-key-format" and an encrypted symmetric key must use =
"identity encrypted-symmetric-key-format", as there is no way to express =
it otherwise.

But your question is likely more regarding the other direction, for an =
*unencrypted" asymmetric key, can a client arbitrarily choose one of the =
*-private-key-format identities or "identity one-asymmetric-key-format"; =
likewise, for an *unencrypted* symmetric key, can a client arbitrarily =
use either "identity octet-string-key-format" or "identity =
one-symmetric-key-format".

The goal is for the use of OneAsymmetricKey and OneSymmetricKey formats =
to be an advanced feature.  As said above, these structures must be used =
for encrypted keys, and should be used for unencrypted key (as the =
structure carries security attributes not present in the raw formats), =
but it's more likely that implementations will support the raw formats.

My thoughts are that, if an implementation is updated to support for =
One[A]SymmetricKey for encrypted keys, then letting a client optionally =
use One[A]SymmetricKey for unencrypted keys isn't that big of an =
implementation effort.  Thus I suggest adding features called =
"one-symmetric-key" and "one-asymmetric-key", and place if-feature =
statements under these identities so that servers can express when they =
support them.


> o  One idea that was floating around was to have separate keystore
>   lists for different things (see the ML archives, e.g. some mails in
>   the thread "crypto-types fallback strategy").  I.e. instead of the
>   current:
>=20
>   +--rw keystore
>      +--rw asymmetric-keys
>      |  +--rw asymmetric-key* [name]
>=20
>=20
>   we would have something like:
>=20
>   +--rw keystores
>      +--rw ssh-keystore
>      |  ...
>      +--rw tls-keystore  // x509-keystore?
>         ...

Right, but that approach was deemed not viable before.


>   If we don't have to support multiple formats for the same kind
>   of key, I don't think we need the key-format in this case.

Maybe.


>   With the current design it is not obvious to me how I can find all
>   ssh keys, for example.

That's because keys don't have to have a set purpose.  For instance, an =
IDevID shipped with the device could be used for either SSH or TLS.


>   This said, *if* we use a single generic list, I think the list in
>   the current model works fine.  It is a bit complicated, but some
>   complexity is inevitable with a generic model like this.

Yes and yes.




> o   iana- modules
>=20
>  The iana modules have a list of supported algorithms, e.g.:
>=20
>       list supported-asymmetric-algorithm
>=20
>  I mentioned this before - I don't think a global list like this is
>  sufficient.  For example, perhaps my TLS code supports "secp521r1",
>  but my SSH code does not.

Yes, well, this is a known problem (e.g., =
https://github.com/netmod-wg/yang-next/issues/82 =
<https://github.com/netmod-wg/yang-next/issues/82>).  I realize that =
you're not specifically talking about feature statements, but it's =
similar.  One difference between #82 and this is that here, the =
capabilities are presented in "config false" lists instead, which might =
bring us to https://github.com/netmod-wg/yang-next/issues/41 =
<https://github.com/netmod-wg/yang-next/issues/41> again...



> And some random small things I noticed:
>=20
> o  ssh-public-key-format
>=20
>  The crypto model has:
>=20
>    identity ssh-public-key-formatp {
>      base "public-key-format";
>      description
>        "The public key format described by RFC 4716.";
>    }
>=20
>  I think that this should be:
>=20
>    description
>      "The binary public key data for an SSH key, as
>       specified by RFC 4253, Section 6.6, i.e.:
>=20
>         string    certificate or public key format
>                   identifier
>         byte[n]   key/certificate data.";
>    reference
>      "RFC 4253: The Secure Shell (SSH) Transport Layer
>                 Protocol";
>=20
>  Note that the public key format in 4716 is textual:
>=20
>    ---- BEGIN SSH2 PUBLIC KEY ----
>    Header-tag ':' ' ' Header-value
>    BODY
>    ---- END SSH2 PUBLIC KEY ----
>=20
>  Where BODY is:
>=20
>   The body of a public key file is the base64 encoded ([RFC2045])
>   public key data as specified by [RFC4253], Section 6.6:
>=20
>         string    certificate or public key format identifier
>         byte[n]   key/certificate data
>=20
>  So with your current definition we would take this textual format
>  (that has the key base64-encoded), and base64 encode the whole
>  thing (includign the already base64-encoded key).

I will say that the definition above was given because it is the only =
*standards* based key that `openssh` can output (i.e., `ssh-keygen -e =
[-m RFC4716] -f <private-key-file>`).

That said, if you refer to the link I provided at top, it is my belief =
that the "key-format" node may be extended to support alternate =
encodings (e.g., DER vs PEM and, potentially, CMS vs multi-part PEM).  =
To this end, perhaps we could support both the 4716 and 4253 formats.=20



> o  subject-public-key-info-format
>=20
>  The crypto model has:
>=20
>    identity subject-public-key-info-format {
>      base "public-key-format";
>      description
>        "A SubjectPublicKeyInfo (from RFC 5280).";
>    }
>=20
>  Should this be "DER encoded"?
>=20
>  (this and other defintions have references to RFCs in the
>  description; they should be moved to proper "reference" statements)

Yes.  I put together these definitions in as a test/protocol to gauge =
viability with the plan to enhance the definitions if the WG committed =
to the approach.   I just added some "FIXME" comments to my local copy.



> o  iana-hash-algs
>=20
>  This module has a bunch of shake-*:
>=20
>      enum shake-224 {
>        value 7;
>        description
>          "The SHA3 algorithm with 224-bits output.";
>=20
>  I think this should be "sha3-224" etc.
>=20
>  (there are just two shake hash functions defined; shake 128 & 256,
>  and they have variable output)
>=20
>  (and BTW, FIPS PUB 202 doesn't define sha3-128)

I don't know.  These are are/were specified by my co-author Haiguang =
(CC-ed).   Haiguang, can you comment?


Kent // contributor



--Apple-Mail=_63F7BFFB-920C-4349-BFCE-C5C9A87BD47B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><div =
class=3D""><br class=3D""></div><br class=3D""><div>Hi =
Martin,</div><div><br class=3D""></div><div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div class=3D"">o &nbsp;Is the =
key-format there to support multiple formats for the same<br class=3D""> =
&nbsp;&nbsp;kind of key (e.g., ssh key), or is it there to be able to =
have<br class=3D""> &nbsp;&nbsp;different kinds of keys in the same =
list? &nbsp;(Or both?)<br class=3D""><br class=3D""> &nbsp;&nbsp;I.e., =
is the intentation that a client can freely pick any<br class=3D""> =
&nbsp;&nbsp;private-key-format (that is supported by the server), =
regardless of<br class=3D""> &nbsp;&nbsp;how the key is used?<br =
class=3D""></div></div></blockquote><div><br =
class=3D""></div><div>Firstly, see:&nbsp;<a =
href=3D"https://mailarchive.ietf.org/arch/msg/netconf/5Zpj8Xxh7bHvAJeQf2Lj=
0t6h8hg" =
class=3D"">https://mailarchive.ietf.org/arch/msg/netconf/5Zpj8Xxh7bHvAJeQf=
2Lj0t6h8hg</a></div><div><div><br class=3D""></div><div>That said, there =
are some limitations that are likely not represented yet. &nbsp;For =
instance, an encrypted private key must use =
"identity&nbsp;encrypted-private-key-format" and an encrypted symmetric =
key must use "identity&nbsp;encrypted-symmetric-key-format", as there is =
no way to express it otherwise.</div><div><br class=3D""></div><div>But =
your question is likely more regarding the other direction, for an =
*unencrypted" asymmetric key, can a client arbitrarily choose one of the =
*-private-key-format identities or =
"identity&nbsp;one-asymmetric-key-format"; likewise, for an =
*unencrypted* symmetric key, can a client arbitrarily use either =
"identity&nbsp;octet-string-key-format" or "identity =
one-symmetric-key-format".</div><div><br class=3D""></div><div>The goal =
is for the use of&nbsp;OneAsymmetricKey and&nbsp;OneSymmetricKey formats =
to be an advanced feature. &nbsp;As said above, these structures must be =
used for encrypted keys, and should be used for unencrypted key (as the =
structure carries security attributes not present in the raw formats), =
but it's more likely that implementations will support the raw =
formats.</div><div><br class=3D""></div><div>My thoughts are that, if an =
implementation is updated to support for One[A]SymmetricKey for =
encrypted keys, then letting a client optionally use One[A]SymmetricKey =
for unencrypted keys isn't that big of an implementation effort. =
&nbsp;Thus I suggest adding features called "one-symmetric-key" and =
"one-asymmetric-key", and place if-feature statements under these =
identities so that servers can express when they support =
them.</div></div><div><br class=3D""></div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div class=3D"">o &nbsp;One =
idea that was floating around was to have separate keystore<br class=3D"">=
 &nbsp;&nbsp;lists for different things (see the ML archives, e.g. some =
mails in<br class=3D""> &nbsp;&nbsp;the thread "crypto-types fallback =
strategy"). &nbsp;I.e. instead of the<br class=3D""> =
&nbsp;&nbsp;current:<br class=3D""><br class=3D""> &nbsp;&nbsp;+--rw =
keystore<br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+--rw =
asymmetric-keys<br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| =
&nbsp;+--rw asymmetric-key* [name]<br class=3D""><br class=3D""><br =
class=3D""> &nbsp;&nbsp;we would have something like:<br class=3D""><br =
class=3D""> &nbsp;&nbsp;+--rw keystores<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+--rw ssh-keystore<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| &nbsp;...<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+--rw tls-keystore &nbsp;// =
x509-keystore?<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br =
class=3D""></div></div></blockquote><div><br class=3D""></div><div>Right, =
but that approach was deemed not viable before.</div><div><br =
class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div class=3D""> &nbsp;&nbsp;If we don't have to support =
multiple formats for the same kind<br class=3D""> &nbsp;&nbsp;of key, I =
don't think we need the key-format in this =
case.</div></div></blockquote><div><br =
class=3D""></div><div>Maybe.</div><div><br class=3D""></div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"">&nbsp; With the current design it is not obvious to me how I =
can find all<br class=3D""> &nbsp;&nbsp;ssh keys, for example.<br =
class=3D""></div></div></blockquote><div><br class=3D""></div><div>That's =
because keys don't have to have a set purpose. &nbsp;For instance, an =
IDevID shipped with the device could be used for either SSH or =
TLS.</div><div><br class=3D""></div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div class=3D"">&nbsp; This =
said, *if* we use a single generic list, I think the list in<br =
class=3D""> &nbsp;&nbsp;the current model works fine. &nbsp;It is a bit =
complicated, but some<br class=3D""> &nbsp;&nbsp;complexity is =
inevitable with a generic model like this.<br =
class=3D""></div></div></blockquote><div><br class=3D""></div><div>Yes =
and yes.</div><div><br class=3D""></div><div><br class=3D""></div><div><br=
 class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div=
 class=3D""><div class=3D"">o &nbsp;&nbsp;iana- modules<br class=3D""><br =
class=3D""> &nbsp;The iana modules have a list of supported algorithms, =
e.g.:<br class=3D""><br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list =
supported-asymmetric-algorithm<br class=3D""><br class=3D""> &nbsp;I =
mentioned this before - I don't think a global list like this is<br =
class=3D""> &nbsp;sufficient. &nbsp;For example, perhaps my TLS code =
supports "secp521r1",<br class=3D""> &nbsp;but my SSH code does not.<br =
class=3D""></div></div></blockquote><div><br class=3D""></div><div>Yes, =
well, this is a known problem (e.g., <a =
href=3D"https://github.com/netmod-wg/yang-next/issues/82" =
class=3D"">https://github.com/netmod-wg/yang-next/issues/82</a>). =
&nbsp;I realize that you're not specifically talking about feature =
statements, but it's similar. &nbsp;One difference between #82 and this =
is that here, the capabilities are presented in "config false" lists =
instead, which might bring us to&nbsp;<a =
href=3D"https://github.com/netmod-wg/yang-next/issues/41" =
class=3D"">https://github.com/netmod-wg/yang-next/issues/41</a>&nbsp;again=
...</div><div><br class=3D""></div><div><br class=3D""></div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"">And some random small things I noticed:<br class=3D""><br =
class=3D"">o &nbsp;ssh-public-key-format<br class=3D""><br class=3D""> =
&nbsp;The crypto model has:<br class=3D""><br class=3D""> =
&nbsp;&nbsp;&nbsp;identity ssh-public-key-formatp {<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base "public-key-format";<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"The public key format =
described by RFC 4716.";<br class=3D""> &nbsp;&nbsp;&nbsp;}<br =
class=3D""><br class=3D""> &nbsp;I think that this should be:<br =
class=3D""><br class=3D""> &nbsp;&nbsp;&nbsp;description<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"The binary public key data for an SSH =
key, as<br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;specified by =
RFC 4253, Section 6.6, i.e.:<br class=3D""><br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string =
&nbsp;&nbsp;&nbsp;certificate or public key format<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;identifier<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[n] =
&nbsp;&nbsp;key/certificate data.";<br class=3D""> =
&nbsp;&nbsp;&nbsp;reference<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"RFC 4253: The Secure Shell (SSH) =
Transport Layer<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;Protocol";<br class=3D""><br class=3D""> =
&nbsp;Note that the public key format in 4716 is textual:<br =
class=3D""><br class=3D""> &nbsp;&nbsp;&nbsp;---- BEGIN SSH2 PUBLIC KEY =
----<br class=3D""> &nbsp;&nbsp;&nbsp;Header-tag ':' ' ' Header-value<br =
class=3D""> &nbsp;&nbsp;&nbsp;BODY<br class=3D""> &nbsp;&nbsp;&nbsp;---- =
END SSH2 PUBLIC KEY ----<br class=3D""><br class=3D""> &nbsp;Where BODY =
is:<br class=3D""><br class=3D""> &nbsp;&nbsp;The body of a public key =
file is the base64 encoded ([RFC2045])<br class=3D""> &nbsp;&nbsp;public =
key data as specified by [RFC4253], Section 6.6:<br class=3D""><br =
class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string =
&nbsp;&nbsp;&nbsp;certificate or public key format identifier<br =
class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[n] =
&nbsp;&nbsp;key/certificate data<br class=3D""><br class=3D""> &nbsp;So =
with your current definition we would take this textual format<br =
class=3D""> &nbsp;(that has the key base64-encoded), and base64 encode =
the whole<br class=3D""> &nbsp;thing (includign the already =
base64-encoded key).<br class=3D""></div></div></blockquote><div><br =
class=3D""></div><div>I will say that the definition above was given =
because it is the only *standards* based key that `openssh` can output =
(i.e.,&nbsp;`ssh-keygen -e [-m RFC4716] -f =
&lt;private-key-file&gt;`).</div><div><br class=3D""></div><div>That =
said, if you refer to the link I provided at top, it is my belief that =
the "key-format" node may be extended to support alternate encodings =
(e.g., DER vs PEM and, potentially, CMS vs multi-part PEM). &nbsp;To =
this end, perhaps we could support both the 4716 and 4253 =
formats.&nbsp;</div><div><br class=3D""></div><div><br =
class=3D""></div><div><br class=3D""></div><blockquote type=3D"cite" =
class=3D""><div class=3D""><div class=3D"">o =
&nbsp;subject-public-key-info-format<br class=3D""><br class=3D""> =
&nbsp;The crypto model has:<br class=3D""><br class=3D""> =
&nbsp;&nbsp;&nbsp;identity subject-public-key-info-format {<br class=3D"">=
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base "public-key-format";<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"A SubjectPublicKeyInfo (from =
RFC 5280).";<br class=3D""> &nbsp;&nbsp;&nbsp;}<br class=3D""><br =
class=3D""> &nbsp;Should this be "DER encoded"?<br class=3D""><br =
class=3D""> &nbsp;(this and other defintions have references to RFCs in =
the<br class=3D""> &nbsp;description; they should be moved to proper =
"reference" statements)<br class=3D""></div></div></blockquote><div><br =
class=3D""></div><div>Yes. &nbsp;I put together these definitions in as =
a test/protocol to gauge viability with the plan to enhance the =
definitions if the WG committed to the approach. &nbsp; I just added =
some "FIXME" comments to my local copy.</div><div><br =
class=3D""></div><div><br class=3D""></div><div><br =
class=3D""></div><blockquote type=3D"cite" class=3D""><div class=3D""><div=
 class=3D"">o &nbsp;iana-hash-algs<br class=3D""><br class=3D""> =
&nbsp;This module has a bunch of shake-*:<br class=3D""><br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enum shake-224 {<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value 7;<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"The SHA3 =
algorithm with 224-bits output.";<br class=3D""><br class=3D""> &nbsp;I =
think this should be "sha3-224" etc.<br class=3D""><br class=3D""> =
&nbsp;(there are just two shake hash functions defined; shake 128 &amp; =
256,<br class=3D""> &nbsp;and they have variable output)<br class=3D""><br=
 class=3D""> &nbsp;(and BTW, FIPS PUB 202 doesn't define sha3-128)<br =
class=3D""></div></div></blockquote><div><br class=3D""></div><div>I =
don't know. &nbsp;These are are/were specified by my co-author Haiguang =
(CC-ed). &nbsp; Haiguang, can you comment?</div><div><br =
class=3D""></div><div><br class=3D""></div></div>Kent // contributor<div =
class=3D""><br class=3D""></div><div class=3D""><br =
class=3D""></div></body></html>=

--Apple-Mail=_63F7BFFB-920C-4349-BFCE-C5C9A87BD47B--

