aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--p2p/crypto.go3
-rw-r--r--p2p/peer.go5
2 files changed, 8 insertions, 0 deletions
diff --git a/p2p/crypto.go b/p2p/crypto.go
index e8f4d551b..f5307cd5a 100644
--- a/p2p/crypto.go
+++ b/p2p/crypto.go
@@ -103,6 +103,9 @@ func (self *cryptoId) Run(conn io.ReadWriter, remotePubKeyS []byte, sessionToken
if auth, initNonce, randomPrivKey, _, err = self.startHandshake(remotePubKeyS, sessionToken); err != nil {
return
}
+ if sessionToken != nil {
+ clogger.Debugf("session-token: %v", hexkey(sessionToken))
+ }
clogger.Debugf("initiator-nonce: %v", hexkey(initNonce))
clogger.Debugf("initiator-random-private-key: %v", hexkey(crypto.FromECDSA(randomPrivKey)))
randomPublicKeyS, _ := ExportPublicKey(&randomPrivKey.PublicKey)
diff --git a/p2p/peer.go b/p2p/peer.go
index 818f80580..99f1a61d3 100644
--- a/p2p/peer.go
+++ b/p2p/peer.go
@@ -3,6 +3,7 @@ package p2p
import (
"bufio"
"bytes"
+ "crypto/rand"
"fmt"
"io"
"io/ioutil"
@@ -342,6 +343,10 @@ func (p *Peer) handleCryptoHandshake() (loop readLoop, err error) {
// it is survived by an encrypted readwriter
var initiator bool
var sessionToken []byte
+ sessionToken = make([]byte, keyLen)
+ if _, err = rand.Read(sessionToken); err != nil {
+ return
+ }
if p.dialAddr != nil { // this should have its own method Outgoing() bool
initiator = true
}