From dfbd928945d870a117010770426d9c87c4301da3 Mon Sep 17 00:00:00 2001 From: shwoop Date: Thu, 11 Sep 2025 20:16:44 +0200 Subject: [PATCH] update --- signer/core/api.go | 12 ++++++------ signer/core/signed_data_test.go | 6 +++--- signer/core/siwevalidation.go | 10 ++++++---- .../{valid_messages.json => invalid_messages.json} | 0 4 files changed, 15 insertions(+), 13 deletions(-) rename signer/core/testdata/siwe/{valid_messages.json => invalid_messages.json} (100%) diff --git a/signer/core/api.go b/signer/core/api.go index 4cd8d3736f..2742a8b425 100644 --- a/signer/core/api.go +++ b/signer/core/api.go @@ -113,13 +113,13 @@ type Validator interface { // SignerAPI defines the actual implementation of ExternalAPI type SignerAPI struct { - chainID *big.Int - am *accounts.Manager - UI UIClientAPI - validator Validator - rejectMode bool + chainID *big.Int + am *accounts.Manager + UI UIClientAPI + validator Validator + rejectMode bool validateSIWEMode bool - credentials storage.Storage + credentials storage.Storage } // Metadata about a request diff --git a/signer/core/signed_data_test.go b/signer/core/signed_data_test.go index 9176714d6f..96fd5e1381 100644 --- a/signer/core/signed_data_test.go +++ b/signer/core/signed_data_test.go @@ -1098,9 +1098,9 @@ func TestSignInWithEtheriumValidLocalhost(t *testing.T) { } } -func TestSignInWithEtheriumValidMessages(t *testing.T) { +func TestSignInWithEtheriumInValidMessages(t *testing.T) { t.Parallel() - jsonFile, err := os.ReadFile(filepath.Join("testdata", "siwe", "valid_messages.json")) + jsonFile, err := os.ReadFile(filepath.Join("testdata", "siwe", "invalid_messages.json")) require.NoError(t, err) tests := make(map[string]string) require.NoError(t, json.Unmarshal(jsonFile, &tests)) @@ -1122,7 +1122,7 @@ func TestSignInWithEtheriumValidMessages(t *testing.T) { control.inputCh <- "a_long_password" signature, err := api.SignData(ctx, apitypes.TextPlain.Mime, a, hexutil.Encode([]byte(message))) require.NoError(t, err) - require.Equal(t, 0, len(control.infoMessages)) + require.Equal(t, 1, len(control.infoMessages)) require.Equal(t, 0, len(control.errorMessages)) if signature == nil || len(signature) != 65 { diff --git a/signer/core/siwevalidation.go b/signer/core/siwevalidation.go index 13c4478619..2e78f554fe 100644 --- a/signer/core/siwevalidation.go +++ b/signer/core/siwevalidation.go @@ -108,10 +108,12 @@ func validateSIWE(req *SignDataRequest) error { } func validateDomain(request *SignDataRequest, scheme, domain string) error { - siweOrigin := fmt.Sprintf("%s://%s", scheme, domain) - requestOrigin := fmt.Sprintf("%s://%s", request.Meta.Scheme, request.Meta.Origin) - if siweOrigin != requestOrigin { - return fmt.Errorf("sign in request domain (%s) does not match source: %s", siweOrigin, requestOrigin) + if request.Meta.Scheme == "http" || request.Meta.Scheme == "https" { + siweOrigin := fmt.Sprintf("%s://%s", scheme, domain) + requestOrigin := fmt.Sprintf("%s://%s", request.Meta.Scheme, request.Meta.Origin) + if siweOrigin != requestOrigin { + return fmt.Errorf("sign in request domain (%s) does not match source: %s", siweOrigin, requestOrigin) + } } return nil } diff --git a/signer/core/testdata/siwe/valid_messages.json b/signer/core/testdata/siwe/invalid_messages.json similarity index 100% rename from signer/core/testdata/siwe/valid_messages.json rename to signer/core/testdata/siwe/invalid_messages.json