Browse Source

fix protocol to accomodate privkey

zelig 10 years ago
parent
commit
d227f6184e
2 changed files with 14 additions and 1 deletions
  1. 4 0
      p2p/protocol.go
  2. 10 1
      p2p/protocol_test.go

+ 4 - 0
p2p/protocol.go

@@ -64,6 +64,10 @@ func (h *handshake) Pubkey() []byte {
 	return h.NodeID
 }
 
+func (h *handshake) PrivKey() []byte {
+	return nil
+}
+
 // Cap is the structure of a peer capability.
 type Cap struct {
 	Name    string

+ 10 - 1
p2p/protocol_test.go

@@ -11,7 +11,7 @@ import (
 )
 
 type peerId struct {
-	pubkey []byte
+	privKey, pubkey []byte
 }
 
 func (self *peerId) String() string {
@@ -27,6 +27,15 @@ func (self *peerId) Pubkey() (pubkey []byte) {
 	return
 }
 
+func (self *peerId) PrivKey() (privKey []byte) {
+	privKey = self.privKey
+	if len(privKey) == 0 {
+		privKey = crypto.GenerateNewKeyPair().PublicKey
+		self.privKey = privKey
+	}
+	return
+}
+
 func newTestPeer() (peer *Peer) {
 	peer = NewPeer(&peerId{}, []Cap{})
 	peer.pubkeyHook = func(*peerAddr) error { return nil }