provide client version in secureservice
This commit is contained in:
parent
38090ee68f
commit
be58956bec
@ -8,9 +8,13 @@ import (
|
|||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newNoVerifyChecker(protoVersion uint32) handshake.CredentialChecker {
|
func newNoVerifyChecker(protoVersion uint32, clientVersion string) handshake.CredentialChecker {
|
||||||
return &noVerifyChecker{
|
return &noVerifyChecker{
|
||||||
cred: &handshakeproto.Credentials{Type: handshakeproto.CredentialsType_SkipVerify, Version: protoVersion},
|
cred: &handshakeproto.Credentials{
|
||||||
|
Type: handshakeproto.CredentialsType_SkipVerify,
|
||||||
|
Version: protoVersion,
|
||||||
|
ClientVersion: clientVersion,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,15 +37,17 @@ func (n noVerifyChecker) CheckCredential(remotePeerId string, cred *handshakepro
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func newPeerSignVerifier(protoVersion uint32, account *accountdata.AccountKeys) handshake.CredentialChecker {
|
func newPeerSignVerifier(protoVersion uint32, clientVersion string, account *accountdata.AccountKeys) handshake.CredentialChecker {
|
||||||
return &peerSignVerifier{
|
return &peerSignVerifier{
|
||||||
protoVersion: protoVersion,
|
protoVersion: protoVersion,
|
||||||
|
clientVersion: clientVersion,
|
||||||
account: account,
|
account: account,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type peerSignVerifier struct {
|
type peerSignVerifier struct {
|
||||||
protoVersion uint32
|
protoVersion uint32
|
||||||
|
clientVersion string
|
||||||
account *accountdata.AccountKeys
|
account *accountdata.AccountKeys
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,6 +67,7 @@ func (p *peerSignVerifier) MakeCredentials(remotePeerId string) *handshakeproto.
|
|||||||
Type: handshakeproto.CredentialsType_SignedPeerIds,
|
Type: handshakeproto.CredentialsType_SignedPeerIds,
|
||||||
Payload: payload,
|
Payload: payload,
|
||||||
Version: p.protoVersion,
|
Version: p.protoVersion,
|
||||||
|
ClientVersion: p.clientVersion,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,8 +15,8 @@ func TestPeerSignVerifier_CheckCredential(t *testing.T) {
|
|||||||
identity1, _ := a1.SignKey.GetPublic().Marshall()
|
identity1, _ := a1.SignKey.GetPublic().Marshall()
|
||||||
identity2, _ := a2.SignKey.GetPublic().Marshall()
|
identity2, _ := a2.SignKey.GetPublic().Marshall()
|
||||||
|
|
||||||
cc1 := newPeerSignVerifier(0, a1)
|
cc1 := newPeerSignVerifier(0, "test:v1", a1)
|
||||||
cc2 := newPeerSignVerifier(0, a2)
|
cc2 := newPeerSignVerifier(0, "test:v1", a2)
|
||||||
|
|
||||||
c1 := a2.PeerId
|
c1 := a2.PeerId
|
||||||
c2 := a1.PeerId
|
c2 := a1.PeerId
|
||||||
@ -40,8 +40,8 @@ func TestIncompatibleVersion(t *testing.T) {
|
|||||||
a2 := newTestAccData(t)
|
a2 := newTestAccData(t)
|
||||||
_, _ = a1.SignKey.GetPublic().Marshall()
|
_, _ = a1.SignKey.GetPublic().Marshall()
|
||||||
|
|
||||||
cc1 := newPeerSignVerifier(0, a1)
|
cc1 := newPeerSignVerifier(0, "test:v1", a1)
|
||||||
cc2 := newPeerSignVerifier(1, a2)
|
cc2 := newPeerSignVerifier(1, "test:v1", a2)
|
||||||
|
|
||||||
c1 := a2.PeerId
|
c1 := a2.PeerId
|
||||||
c2 := a1.PeerId
|
c2 := a1.PeerId
|
||||||
|
|||||||
@ -64,8 +64,8 @@ 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, a.VersionName())
|
||||||
s.peerSignVerifier = newPeerSignVerifier(s.protoVersion, account.Account())
|
s.peerSignVerifier = newPeerSignVerifier(s.protoVersion, a.VersionName(), account.Account())
|
||||||
|
|
||||||
s.nodeconf = a.MustComponent(nodeconf.CName).(nodeconf.Service)
|
s.nodeconf = a.MustComponent(nodeconf.CName).(nodeconf.Service)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user