From 1439a53b150e7c9b811745f048198c045999e43a Mon Sep 17 00:00:00 2001
From: Juan Batiz-Benet <juan@benet.ai>
Date: Fri, 19 Sep 2014 05:25:24 -0700
Subject: [PATCH] handshake: bugfix (secure -> insecure chan) + logs

---
 crypto/spipe/handshake.go | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/crypto/spipe/handshake.go b/crypto/spipe/handshake.go
index 9f933203..68db68ae 100644
--- a/crypto/spipe/handshake.go
+++ b/crypto/spipe/handshake.go
@@ -5,6 +5,7 @@ package spipe
 import (
 	"bytes"
 	"errors"
+	"fmt"
 	"strings"
 
 	"crypto/aes"
@@ -48,6 +49,7 @@ func (s *SecurePipe) handshake() error {
 		return err
 	}
 
+	// u.DOut("handshake: %s <--> %s\n", s.local.ID.Pretty(), s.remote.ID.Pretty())
 	myPubKey, err := s.local.PubKey.Bytes()
 	if err != nil {
 		return err
@@ -65,6 +67,7 @@ func (s *SecurePipe) handshake() error {
 		return err
 	}
 
+	// u.POut("sending encoded handshake\n")
 	s.insecure.Out <- encoded
 
 	// Parse their Propose packet and generate an Exchange packet.
@@ -73,9 +76,10 @@ func (s *SecurePipe) handshake() error {
 	select {
 	case <-s.ctx.Done():
 		return ErrClosed
-	case resp = <-s.Duplex.In:
+	case resp = <-s.insecure.In:
 	}
 
+	// u.POut("received encoded handshake\n")
 	proposeResp := new(Propose)
 	err = proto.Unmarshal(resp, proposeResp)
 	if err != nil {
@@ -98,6 +102,7 @@ func (s *SecurePipe) handshake() error {
 	} else if s.remote.ID == nil {
 		s.remote.ID = remoteID
 	}
+	// u.POut("Remote Peer Identified as %s\n", s.remote.ID.Pretty())
 
 	exchange, err := selectBest(SupportedExchanges, proposeResp.GetExchanges())
 	if err != nil {
@@ -114,6 +119,7 @@ func (s *SecurePipe) handshake() error {
 		return err
 	}
 
+	// u.POut("Selected %s %s %s\n", exchange, cipherType, hashType)
 	epubkey, done, err := ci.GenerateEKeyPair(exchange) // Generate EphemeralPubKey
 
 	var handshake bytes.Buffer // Gather corpus to sign.
@@ -153,6 +159,7 @@ func (s *SecurePipe) handshake() error {
 	theirHandshake.Write(encoded)
 	theirHandshake.Write(exchangeResp.GetEpubkey())
 
+	// u.POut("Remote Peer Identified as %s\n", s.remote.ID.Pretty())
 	ok, err := s.remote.PubKey.Verify(theirHandshake.Bytes(), exchangeResp.GetSignature())
 	if err != nil {
 		return err
@@ -180,7 +187,7 @@ func (s *SecurePipe) handshake() error {
 	select {
 	case <-s.ctx.Done():
 		return ErrClosed
-	case resp2 = <-s.Duplex.In:
+	case resp2 = <-s.In:
 	}
 
 	if bytes.Compare(resp2, finished) != 0 {
-- 
GitLab