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