make credentials with version, fix test
This commit is contained in:
parent
f5bb73a3e7
commit
698507d363
@ -11,14 +11,12 @@ import (
|
|||||||
|
|
||||||
func newNoVerifyChecker(protoVersion uint32) handshake.CredentialChecker {
|
func newNoVerifyChecker(protoVersion uint32) handshake.CredentialChecker {
|
||||||
return &noVerifyChecker{
|
return &noVerifyChecker{
|
||||||
protoVersion: protoVersion,
|
cred: &handshakeproto.Credentials{Type: handshakeproto.CredentialsType_SkipVerify, Version: protoVersion},
|
||||||
cred: &handshakeproto.Credentials{Type: handshakeproto.CredentialsType_SkipVerify},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type noVerifyChecker struct {
|
type noVerifyChecker struct {
|
||||||
protoVersion uint32
|
cred *handshakeproto.Credentials
|
||||||
cred *handshakeproto.Credentials
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n noVerifyChecker) MakeCredentials(sc sec.SecureConn) *handshakeproto.Credentials {
|
func (n noVerifyChecker) MakeCredentials(sc sec.SecureConn) *handshakeproto.Credentials {
|
||||||
@ -26,7 +24,7 @@ func (n noVerifyChecker) MakeCredentials(sc sec.SecureConn) *handshakeproto.Cred
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n noVerifyChecker) CheckCredential(sc sec.SecureConn, cred *handshakeproto.Credentials) (identity []byte, err error) {
|
func (n noVerifyChecker) CheckCredential(sc sec.SecureConn, cred *handshakeproto.Credentials) (identity []byte, err error) {
|
||||||
if cred.Version != n.protoVersion {
|
if cred.Version != n.cred.Version {
|
||||||
return nil, handshake.ErrIncompatibleVersion
|
return nil, handshake.ErrIncompatibleVersion
|
||||||
}
|
}
|
||||||
return nil, nil
|
return nil, nil
|
||||||
@ -59,6 +57,7 @@ func (p *peerSignVerifier) MakeCredentials(sc sec.SecureConn) *handshakeproto.Cr
|
|||||||
return &handshakeproto.Credentials{
|
return &handshakeproto.Credentials{
|
||||||
Type: handshakeproto.CredentialsType_SignedPeerIds,
|
Type: handshakeproto.CredentialsType_SignedPeerIds,
|
||||||
Payload: payload,
|
Payload: payload,
|
||||||
|
Version: p.protoVersion,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -44,7 +44,6 @@ func TestIncompatibleVersion(t *testing.T) {
|
|||||||
a1 := newTestAccData(t)
|
a1 := newTestAccData(t)
|
||||||
a2 := newTestAccData(t)
|
a2 := newTestAccData(t)
|
||||||
_, _ = a1.SignKey.GetPublic().Marshall()
|
_, _ = a1.SignKey.GetPublic().Marshall()
|
||||||
identity2, _ := a2.SignKey.GetPublic().Marshall()
|
|
||||||
|
|
||||||
cc1 := newPeerSignVerifier(0, a1)
|
cc1 := newPeerSignVerifier(0, a1)
|
||||||
cc2 := newPeerSignVerifier(1, a2)
|
cc2 := newPeerSignVerifier(1, a2)
|
||||||
@ -54,9 +53,8 @@ func TestIncompatibleVersion(t *testing.T) {
|
|||||||
|
|
||||||
cr1 := cc1.MakeCredentials(c1)
|
cr1 := cc1.MakeCredentials(c1)
|
||||||
cr2 := cc2.MakeCredentials(c2)
|
cr2 := cc2.MakeCredentials(c2)
|
||||||
id1, err := cc1.CheckCredential(c1, cr2)
|
_, err := cc1.CheckCredential(c1, cr2)
|
||||||
assert.NoError(t, err)
|
assert.EqualError(t, err, handshake.ErrIncompatibleVersion.Error())
|
||||||
assert.Equal(t, identity2, id1)
|
|
||||||
|
|
||||||
_, err = cc2.CheckCredential(c2, cr1)
|
_, err = cc2.CheckCredential(c2, cr1)
|
||||||
assert.EqualError(t, err, handshake.ErrIncompatibleVersion.Error())
|
assert.EqualError(t, err, handshake.ErrIncompatibleVersion.Error())
|
||||||
|
|||||||
@ -64,7 +64,6 @@ func (s *secureService) Init(a *app.App) (err error) {
|
|||||||
if s.key, err = crypto.UnmarshalEd25519PrivateKey(peerKey); err != nil {
|
if s.key, err = crypto.UnmarshalEd25519PrivateKey(peerKey); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
s.noVerifyChecker = newNoVerifyChecker(s.protoVersion)
|
s.noVerifyChecker = newNoVerifyChecker(s.protoVersion)
|
||||||
s.peerSignVerifier = newPeerSignVerifier(s.protoVersion, account.Account())
|
s.peerSignVerifier = newPeerSignVerifier(s.protoVersion, account.Account())
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user