[noise] New revision: "noh2" branch, revision 3

Trevor Perrin trevp at trevp.net
Tue Sep 1 01:38:56 PDT 2015


https://github.com/trevp/noise/blob/noh2/noise.md

Based partly on discussions with Tiffany and Jason, I moved the type /
length fields out of the core protocol into a section on "Application
Responsibilities".

I'm changing my mind on this partly because it enables other
simplifications - since the Session object is no longer responsible
for framing transport messages it now only has a role in the
Handshake, so I renamed it to HandshakeState and use the kernel
directly for transport messages (renaming the kernel to CipherState).

But I think this is a sensible division in other ways - e.g. the
framing data isn't cryptographically important, so it's better to keep
the "trusted base" of crypto code as simple as possible.

Note this isn't "substantive" - doesn't affect bytes on wire.  But I
also simplified naming for handshakes and protocols, which does
substantively affect Noise Pipes.

Other presentation changes:
 - Added "Application Responsibilities" section to discuss framing,
termination, extensions, padding
 - Changed Session object to a HandshakeState and Kernel to a
CipherState - after the Handshake the CipherState is used directly to
encrypt, instead of keeping the Session around
 - More renaming: DH functions / cipherset -> DH parameters, cipher
parameters, EncryptHandshakeData -> ConditionalEncryptAndMixHash
 - Rewrote overview

Trevor


More information about the Noise mailing list