[noise] spectemplate / spectools

David Wong davidwong.crypto at gmail.com
Tue Nov 14 02:13:18 PST 2017

> I like the direction, but need to think more on StrobeState and
> DiscoSecureChannel.

Here's my thoughts on that.

I defined the StrobeState so that I could have it fit the rest of the
spec (an object responding to a list of function calls) and have it
included in the SymmetricState and the DiscoSecureChannels.

There are several ways to return AEAD objects:

1. having Split() return two CipherStates. In order to do so you would
want to avoid modifying the CipherState object, and instead add new
cipher functions that the CipherState call (ENCRYPT(), DECRYPT(),
REKEY()). To make that work you also need a bunch of hacks: store a
`k` (otherwise CipherState returns plaintext upon encryption); ignore
the `k` in the cipher function calls; have them call some StrobeState
that is somehow associated only to that CipherState.

2. having Split() return two modified CipherStates. This is what I
ended up doing and I went through enough modifications that I decided
to rename the object to avoid confusion.


More information about the Noise mailing list