From 698507d363d7b92e69238b4f8d51f41ce63cc131 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Mon, 22 May 2023 15:31:55 +0200 Subject: [PATCH] make credentials with version, fix test --- net/secureservice/credential.go | 9 ++++----- net/secureservice/credential_test.go | 6 ++---- net/secureservice/secureservice.go | 1 - 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/net/secureservice/credential.go b/net/secureservice/credential.go index b0341226..b754b450 100644 --- a/net/secureservice/credential.go +++ b/net/secureservice/credential.go @@ -11,14 +11,12 @@ import ( func newNoVerifyChecker(protoVersion uint32) handshake.CredentialChecker { return &noVerifyChecker{ - protoVersion: protoVersion, - cred: &handshakeproto.Credentials{Type: handshakeproto.CredentialsType_SkipVerify}, + cred: &handshakeproto.Credentials{Type: handshakeproto.CredentialsType_SkipVerify, Version: protoVersion}, } } type noVerifyChecker struct { - protoVersion uint32 - cred *handshakeproto.Credentials + cred *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) { - if cred.Version != n.protoVersion { + if cred.Version != n.cred.Version { return nil, handshake.ErrIncompatibleVersion } return nil, nil @@ -59,6 +57,7 @@ func (p *peerSignVerifier) MakeCredentials(sc sec.SecureConn) *handshakeproto.Cr return &handshakeproto.Credentials{ Type: handshakeproto.CredentialsType_SignedPeerIds, Payload: payload, + Version: p.protoVersion, } } diff --git a/net/secureservice/credential_test.go b/net/secureservice/credential_test.go index ad3853df..c3ae8338 100644 --- a/net/secureservice/credential_test.go +++ b/net/secureservice/credential_test.go @@ -44,7 +44,6 @@ func TestIncompatibleVersion(t *testing.T) { a1 := newTestAccData(t) a2 := newTestAccData(t) _, _ = a1.SignKey.GetPublic().Marshall() - identity2, _ := a2.SignKey.GetPublic().Marshall() cc1 := newPeerSignVerifier(0, a1) cc2 := newPeerSignVerifier(1, a2) @@ -54,9 +53,8 @@ func TestIncompatibleVersion(t *testing.T) { cr1 := cc1.MakeCredentials(c1) cr2 := cc2.MakeCredentials(c2) - id1, err := cc1.CheckCredential(c1, cr2) - assert.NoError(t, err) - assert.Equal(t, identity2, id1) + _, err := cc1.CheckCredential(c1, cr2) + assert.EqualError(t, err, handshake.ErrIncompatibleVersion.Error()) _, err = cc2.CheckCredential(c2, cr1) assert.EqualError(t, err, handshake.ErrIncompatibleVersion.Error()) diff --git a/net/secureservice/secureservice.go b/net/secureservice/secureservice.go index b6a38403..fa8e3e23 100644 --- a/net/secureservice/secureservice.go +++ b/net/secureservice/secureservice.go @@ -64,7 +64,6 @@ 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())