diff --git a/p2p/crypto.go b/p2p/crypto.go
index 643bd431e4bbaf53e116e4dcaf14d8a46147963c..10c82d3a11a2da735cc040e0b25fcfbe6ee9159d 100644
--- a/p2p/crypto.go
+++ b/p2p/crypto.go
@@ -1,11 +1,9 @@
 package p2p
 
 import (
-	// "bytes"
 	"crypto/ecdsa"
 	"crypto/rand"
 	"fmt"
-	// "io"
 
 	"github.com/ethereum/go-ethereum/crypto"
 	"github.com/obscuren/ecies"
diff --git a/p2p/crypto_test.go b/p2p/crypto_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..6b4afb16a456847b63b941a64885e0f0ce371230
--- /dev/null
+++ b/p2p/crypto_test.go
@@ -0,0 +1,54 @@
+package p2p
+
+import (
+	// "bytes"
+	"fmt"
+	"testing"
+
+	"github.com/ethereum/go-ethereum/crypto"
+)
+
+func TestCryptoHandshake(t *testing.T) {
+	var err error
+	var sessionToken []byte
+	prvInit, _ := crypto.GenerateKey()
+	pubInit := &prvInit.PublicKey
+	prvResp, _ := crypto.GenerateKey()
+	pubResp := &prvResp.PublicKey
+
+	var initiator, responder *cryptoId
+	if initiator, err = newCryptoId(&peerId{crypto.FromECDSA(prvInit), crypto.FromECDSAPub(pubInit)}); err != nil {
+		return
+	}
+	if responder, err = newCryptoId(&peerId{crypto.FromECDSA(prvResp), crypto.FromECDSAPub(pubResp)}); err != nil {
+		return
+	}
+
+	auth, initNonce, _, _ := initiator.initAuth(responder.pubKeyDER, sessionToken)
+
+	response, remoteRespNonce, remoteInitNonce, remoteRandomPubKey, _ := responder.verifyAuth(auth, sessionToken, pubInit)
+
+	respNonce, randomPubKey, _, _ := initiator.verifyAuthResp(response)
+
+	fmt.Printf("%x\n%x\n%x\n%x\n%x\n%x\n%x\n%x\n", auth, initNonce, response, remoteRespNonce, remoteInitNonce, remoteRandomPubKey, respNonce, randomPubKey)
+	// initSessionToken, initSecretRW, _ := initiator.newSession(initNonce, respNonce, auth, randomPubKey)
+	// respSessionToken, respSecretRW, _ := responder.newSession(remoteInitNonce, remoteRespNonce, auth, remoteRandomPubKey)
+
+	// if !bytes.Equal(initSessionToken, respSessionToken) {
+	// 	t.Errorf("session tokens do not match")
+	// }
+	// // aesSecret, macSecret, egressMac, ingressMac
+	// if !bytes.Equal(initSecretRW.aesSecret, respSecretRW.aesSecret) {
+	// 	t.Errorf("AES secrets do not match")
+	// }
+	// if !bytes.Equal(initSecretRW.macSecret, respSecretRW.macSecret) {
+	// 	t.Errorf("macSecrets do not match")
+	// }
+	// if !bytes.Equal(initSecretRW.egressMac, respSecretRW.egressMac) {
+	// 	t.Errorf("egressMacs do not match")
+	// }
+	// if !bytes.Equal(initSecretRW.ingressMac, respSecretRW.ingressMac) {
+	// 	t.Errorf("ingressMacs do not match")
+	// }
+
+}