<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Apr 21, 2016 at 4:33 AM, Trevor Perrin <span dir="ltr"><<a href="mailto:trevp@trevp.net" target="_blank">trevp@trevp.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On Wed, Apr 20, 2016 at 4:11 AM, Rhys Weatherley<br>
> So, here's an idea I've been drafting for a few days:<br>
><br>
> <a href="http://rweather.github.io/noise-c/cert_key_format.html" rel="noreferrer" target="_blank">http://rweather.github.io/noise-c/cert_key_format.html</a><br>
<br>
<br>
</span>I think you'll find applications vary in:<br>
<br>
 - preferred encoding (JSON, XML, Protobufs, etc)<br></blockquote><div><br></div><div>Yes.  For now I'm most interested in how to store keys on disk for configuring a Noise application.  I kept it small so it could fit in a Noise packet, but wire encoding may be best left to a separate spec.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

 - contents needed for any certificate - e.g. if a client is just<br>
contacting a pinned service, your "certificate" might be nothing more<br>
than a single signature from some offline key.  11 fields is probably<br>
overkill for a lot of cases.<br></blockquote><div><br></div><div>Id, Name, Enc-Role, and the signature blocks are all optional.  The minimal certificate is:<br><br><div class="">-NOISE-CERT-V1-</div>Enc-Key: 25519,0bvYYwOPwdtcrove1ij37SbAhnuQ++4j2+/sELJaNUA=
<div class="">-END-NOISE-CERT-<br><br></div><div class="">With a signature, the minimum is:<br><br><div class=""><div class="">-NOISE-CERT-V1-</div>Enc-Key: 25519,0bvYYwOPwdtcrove1ij37SbAhnuQ++4j2+/sELJaNUA=
<div class="">-SIGNATURE-</div>Sign-Key: Ed25519,dS45RT8DNVhldxcHgsFHj6NA6pKs5dF2lUrda9lhoAb=
<div class="">Nonce: Lya4LdMCDhAwVbJf8oKwFw==</div>Signature: BLAKE2b,28pgTWIJGGXIL5CJ4zSQoM9jLWQtzdTpqQ2wLFr1esmtdMakMJdDyQw3pkI1poyftCFEuAnJa7v8VAhpOzE+zg==
<div class="">-END-NOISE-CERT-<br><br></div><div class="">And even Nonce can be left out in a pinch.<br></div>
</div><br></div></div><div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

That said, it's cool to see work on infrastructure atop Noise, I would<br>
just keep it clear in APIs and libraries that this is a separate /<br>
additional layer atop the Noise framework.<br></blockquote><div><br></div><div>Exactly.  My plan with Noise-C is to have a basic libnoiseprotocol for the protocol and crypto necessities, with everything else in separate libraries: libnoisekeys, libnoisetransport, etc.  If an application wants to do everything above the protocol themselves, there's no additional cost.<br><br></div><div>Cheers,<br><br></div><div>Rhys.<br><br></div></div></div></div>