jbenet/go-ipfs — pull request #442 by jbenet (2014-12-12 10:44:49+00:00)
Title: secio, spipe replacement

This PR introduces secio, the replacement to spipe.

- use io.ReadWriter instead of channels + async workers
- decrypt in place (can't encrypt in place, input mangling)
- Encrypt-Then-Mac io.ReadWriter
- a nifty cmd/seccat to try it out! crypto chat with friends!
- commented everything
- improved readability
- improved security:

(1) changed the third message to be the random nonce sent by
the remote party.

(2) determine order based on identities AND the random nonces,
which makes it **very** unlikely to fail.

and more