diff --git a/cmix/nodes/request.go b/cmix/nodes/request.go index 499acb4550b2ff31ebf2e4a2d4a8f8c0ef1c707b..281b9a1190d42e06422473269761ecef94b3a8c0 100644 --- a/cmix/nodes/request.go +++ b/cmix/nodes/request.go @@ -8,6 +8,8 @@ package nodes import ( + "io" + "github.com/golang/protobuf/proto" "github.com/pkg/errors" jww "github.com/spf13/jwalterweatherman" @@ -27,7 +29,6 @@ import ( "gitlab.com/xx_network/crypto/tls" "gitlab.com/xx_network/primitives/id" "gitlab.com/xx_network/primitives/netTime" - "io" ) // requestKey is a helper function which constructs a ClientKeyRequest message. @@ -184,7 +185,7 @@ func processRequestResponse(signedKeyResponse *pb.SignedKeyResponse, } // Verify the response signature - err = rsa.Verify(nodePubKey, opts.Hash, hashedResponse, + err = verifyNodeSignature(nodePubKey, opts.Hash, hashedResponse, signedKeyResponse.KeyResponseSignedByGateway.Signature, opts) if err != nil { return nil, nil, 0, diff --git a/cmix/nodes/verifyNodeSig.go b/cmix/nodes/verifyNodeSig.go new file mode 100644 index 0000000000000000000000000000000000000000..5fff372159890c1228e8c2e340dac68302a14f80 --- /dev/null +++ b/cmix/nodes/verifyNodeSig.go @@ -0,0 +1,22 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright © 2022 xx foundation // +// // +// Use of this source code is governed by a license that can be found in the // +// LICENSE file. // +//////////////////////////////////////////////////////////////////////////////// + +//go:build !js || !wasm + +package nodes + +import ( + "crypto" + + "gitlab.com/xx_network/crypto/signature/rsa" +) + +func verifyNodeSignature(pub *rsa.PublicKey, hash crypto.Hash, + hashed []byte, sig []byte, opts *rsa.Options) error { + // Verify the response signature + return rsa.Verify(pub, hash, hashed, sig, opts) +} diff --git a/cmix/nodes/verifyNodeSig_js.go b/cmix/nodes/verifyNodeSig_js.go new file mode 100644 index 0000000000000000000000000000000000000000..23ce8817224298e134a2d322ef63cd369587e723 --- /dev/null +++ b/cmix/nodes/verifyNodeSig_js.go @@ -0,0 +1,22 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright © 2022 xx foundation // +// // +// Use of this source code is governed by a license that can be found in the // +// LICENSE file. // +//////////////////////////////////////////////////////////////////////////////// + +//go:build js && wasm + +package nodes + +import ( + "crypto" + + "gitlab.com/xx_network/crypto/signature/rsa" +) + +func verifyNodeSignature(pub *rsa.PublicKey, hash crypto.Hash, + hashed []byte, sig []byte, opts *rsa.Options) error { + jww.WARN.Printf("node signature checking disabled for wasm") + return nil +}