<div dir="ltr">The first two issues have been fixed. Strangely, I could have sworn that the KDF issue *used* to work, due to how (I thought) slices were implemented. That doesn't seem to be the case, so I'm simply copying the bytes back into the message used for the next iteration.<div>
<br></div><div>Thanks for your feedback; let me know if there's anything else you notice. This is my first go project, so I'm bound to have made mistakes. Tests and documentation are forthcoming.</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Sat, Jul 12, 2014 at 8:22 AM, Jonathan Rudenberg <span dir="ltr"><<a href="mailto:jonathan@titanous.com" target="_blank">jonathan@titanous.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
On Jul 11, 2014, at 3:51 PM, Stephen Touset <<a href="mailto:stephen@squareup.com">stephen@squareup.com</a>> wrote:<br>
<br>
> I was working on this before I heard someone else had worked on an implementation. Mine supports opening and closing boxes, and also begins to implement pipes. I have basic syn/ack (for lack of a better term) support for boxes sent through pipes, but I haven't yet written the code to allow sending only bodies. That should come in short order.<br>

><br>
> I'd love to see if the two existing implementations interoperate successfully!<br>
><br>
>         <a href="https://github.com/stouset/go.noise" target="_blank">https://github.com/stouset/go.noise</a><br>
<br>
</div></div>I started implementing a compatibility test for our implementations and ran into the following initial issues:<br>
<br>
1) You don’t appear to be setting the default cv=zeros[CV_LEN], so the ‘extra’ argument to the first KDF is zero-length instead of 48 null bytes.<br>
<br>
2) It looks like the t[0:32] bytes in your KDF are not that of the previous iteration.<br>
<br>
3) I think what you are calling the ‘peerEphemeralKey’ is the recvr_pubkey. My understanding is that this is actually the long-term public key of the peer.<br>
<br>
Trevor, please correct me if you see any inaccuracies in my reading of the spec.<br>
<span class="HOEnZb"><font color="#888888"><br>
Jonathan</font></span></blockquote></div><br></div>