Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
1f2adb05
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1f2adb05
编写于
1月 21, 2015
作者:
Z
zelig
提交者:
Felix Lange
2月 06, 2015
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add initial peer level test (failing)
上级
4afde4e7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
52 addition
and
1 deletion
+52
-1
p2p/crypto_test.go
p2p/crypto_test.go
+52
-1
未找到文件。
p2p/crypto_test.go
浏览文件 @
1f2adb05
...
...
@@ -6,6 +6,7 @@ import (
// "crypto/elliptic"
// "crypto/rand"
"fmt"
"net"
"testing"
"github.com/ethereum/go-ethereum/crypto"
...
...
@@ -114,7 +115,9 @@ func TestCryptoHandshake(t *testing.T) {
t
.
Errorf
(
"%v"
,
err
)
}
fmt
.
Printf
(
"
\n
auth %x
\n
initNonce %x
\n
response%x
\n
remoteRecNonce %x
\n
remoteInitNonce %x
\n
remoteRandomPubKey %x
\n
recNonce %x
\n
remoteInitRandomPubKey %x
\n
initSessionToken %x
\n\n
"
,
auth
,
initNonce
,
response
,
remoteRecNonce
,
remoteInitNonce
,
remoteRandomPubKey
,
recNonce
,
remoteInitRandomPubKey
,
initSessionToken
)
fmt
.
Printf
(
"
\n
auth (%v) %x
\n\n
resp (%v) %x
\n\n
"
,
len
(
auth
),
auth
,
len
(
response
),
response
)
// fmt.Printf("\nauth %x\ninitNonce %x\nresponse%x\nremoteRecNonce %x\nremoteInitNonce %x\nremoteRandomPubKey %x\nrecNonce %x\nremoteInitRandomPubKey %x\ninitSessionToken %x\n\n", auth, initNonce, response, remoteRecNonce, remoteInitNonce, remoteRandomPubKey, recNonce, remoteInitRandomPubKey, initSessionToken)
if
!
bytes
.
Equal
(
initNonce
,
remoteInitNonce
)
{
t
.
Errorf
(
"nonces do not match"
)
...
...
@@ -140,3 +143,51 @@ func TestCryptoHandshake(t *testing.T) {
}
}
func
TestPeersHandshake
(
t
*
testing
.
T
)
{
defer
testlog
(
t
)
.
detach
()
var
err
error
// var sessionToken []byte
prv0
,
_
:=
crypto
.
GenerateKey
()
// = ecdsa.GenerateKey(crypto.S256(), rand.Reader)
pub0
:=
&
prv0
.
PublicKey
prv1
,
_
:=
crypto
.
GenerateKey
()
pub1
:=
&
prv1
.
PublicKey
prv0s
:=
crypto
.
FromECDSA
(
prv0
)
pub0s
:=
crypto
.
FromECDSAPub
(
pub0
)
prv1s
:=
crypto
.
FromECDSA
(
prv1
)
pub1s
:=
crypto
.
FromECDSAPub
(
pub1
)
conn1
,
conn2
:=
net
.
Pipe
()
initiator
:=
newPeer
(
conn1
,
[]
Protocol
{},
nil
)
receiver
:=
newPeer
(
conn2
,
[]
Protocol
{},
nil
)
initiator
.
dialAddr
=
&
peerAddr
{
IP
:
net
.
ParseIP
(
"1.2.3.4"
),
Port
:
2222
,
Pubkey
:
pub1s
[
1
:
]}
initiator
.
ourID
=
&
peerId
{
prv0s
,
pub0s
}
// this is cheating. identity of initiator/dialler not available to listener/receiver
// its public key should be looked up based on IP address
receiver
.
identity
=
initiator
.
ourID
receiver
.
ourID
=
&
peerId
{
prv1s
,
pub1s
}
initiator
.
pubkeyHook
=
func
(
*
peerAddr
)
error
{
return
nil
}
receiver
.
pubkeyHook
=
func
(
*
peerAddr
)
error
{
return
nil
}
initiator
.
cryptoHandshake
=
true
receiver
.
cryptoHandshake
=
true
errc0
:=
make
(
chan
error
,
1
)
errc1
:=
make
(
chan
error
,
1
)
go
func
()
{
_
,
err
:=
initiator
.
loop
()
errc0
<-
err
}()
go
func
()
{
_
,
err
:=
receiver
.
loop
()
errc1
<-
err
}()
select
{
case
err
=
<-
errc0
:
t
.
Errorf
(
"peer 0 quit with error: %v"
,
err
)
case
err
=
<-
errc1
:
t
.
Errorf
(
"peer 1 quit with error: %v"
,
err
)
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录