<div dir="ltr">The Noise protocol's API specifies the use of bare public and private keys for arguments.  While literally anything can be done with bare keys, they are likely to be unwieldy in practice for applications to manage.<br><br>A better application-facing API might include functions SetPrivateKeyFile(filename, passphrase) and SetRemoteCertificateFile(filename).<br><br>So, here's an idea I've been drafting for a few days:<br><div><br><a href="http://rweather.github.io/noise-c/cert_key_format.html">http://rweather.github.io/noise-c/cert_key_format.html</a><br><br></div><div>I have no code implemented - the key values on that page are all fake.  But hopefully it gets the idea across.  The purpose is to improve key portability between implementations, but of course individual applications might make other key management choices.<br><br></div><div>The current design is inspired by the original PEM and PGP formats.  Another approach I've thought about is something like the SSH key format.<br></div><div><br></div><div>Any thoughts?<br><br></div><div>Cheers,<br><br></div><div>Rhys.<br><br></div></div>