identify_test.go 832 Bytes
Newer Older
Jeromy's avatar
Jeromy committed
1 2 3 4 5
package identify

import (
	"testing"

6
	ci "github.com/jbenet/go-ipfs/crypto"
Jeromy's avatar
Jeromy committed
7 8 9 10
	"github.com/jbenet/go-ipfs/peer"
)

func TestHandshake(t *testing.T) {
11
	ska, pka, err := ci.GenerateKeyPair(ci.RSA, 512)
Jeromy's avatar
Jeromy committed
12 13 14
	if err != nil {
		t.Fatal(err)
	}
15
	skb, pkb, err := ci.GenerateKeyPair(ci.RSA, 512)
Jeromy's avatar
Jeromy committed
16 17 18 19 20 21 22
	if err != nil {
		t.Fatal(err)
	}

	cha := make(chan []byte, 5)
	chb := make(chan []byte, 5)

23
	ida, err := IdFromPubKey(pka)
Jeromy's avatar
Jeromy committed
24 25 26 27 28
	if err != nil {
		t.Fatal(err)
	}
	pa := &peer.Peer{
		ID:      ida,
29 30
		PubKey:  pka,
		PrivKey: ska,
Jeromy's avatar
Jeromy committed
31 32
	}

33
	idb, err := IdFromPubKey(pkb)
Jeromy's avatar
Jeromy committed
34 35 36 37 38
	if err != nil {
		t.Fatal(err)
	}
	pb := &peer.Peer{
		ID:      idb,
39 40
		PubKey:  pkb,
		PrivKey: skb,
Jeromy's avatar
Jeromy committed
41 42 43
	}

	go func() {
Brendan Mc's avatar
Brendan Mc committed
44
		_, _, err := Handshake(pa, pb, cha, chb)
Jeromy's avatar
Jeromy committed
45 46 47 48 49
		if err != nil {
			t.Fatal(err)
		}
	}()

Brendan Mc's avatar
Brendan Mc committed
50
	_, _, err = Handshake(pb, pa, chb, cha)
Jeromy's avatar
Jeromy committed
51 52 53 54
	if err != nil {
		t.Fatal(err)
	}
}