This commit is contained in:
shwoop 2025-09-11 20:16:44 +02:00
parent 374a2759f5
commit dfbd928945
No known key found for this signature in database
GPG key ID: 95A35B68C1E5F95A
4 changed files with 15 additions and 13 deletions

View file

@ -1098,9 +1098,9 @@ func TestSignInWithEtheriumValidLocalhost(t *testing.T) {
} }
} }
func TestSignInWithEtheriumValidMessages(t *testing.T) { func TestSignInWithEtheriumInValidMessages(t *testing.T) {
t.Parallel() 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) require.NoError(t, err)
tests := make(map[string]string) tests := make(map[string]string)
require.NoError(t, json.Unmarshal(jsonFile, &tests)) require.NoError(t, json.Unmarshal(jsonFile, &tests))
@ -1122,7 +1122,7 @@ func TestSignInWithEtheriumValidMessages(t *testing.T) {
control.inputCh <- "a_long_password" control.inputCh <- "a_long_password"
signature, err := api.SignData(ctx, apitypes.TextPlain.Mime, a, hexutil.Encode([]byte(message))) signature, err := api.SignData(ctx, apitypes.TextPlain.Mime, a, hexutil.Encode([]byte(message)))
require.NoError(t, err) 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)) require.Equal(t, 0, len(control.errorMessages))
if signature == nil || len(signature) != 65 { if signature == nil || len(signature) != 65 {

View file

@ -108,11 +108,13 @@ func validateSIWE(req *SignDataRequest) error {
} }
func validateDomain(request *SignDataRequest, scheme, domain string) error { func validateDomain(request *SignDataRequest, scheme, domain string) error {
if request.Meta.Scheme == "http" || request.Meta.Scheme == "https" {
siweOrigin := fmt.Sprintf("%s://%s", scheme, domain) siweOrigin := fmt.Sprintf("%s://%s", scheme, domain)
requestOrigin := fmt.Sprintf("%s://%s", request.Meta.Scheme, request.Meta.Origin) requestOrigin := fmt.Sprintf("%s://%s", request.Meta.Scheme, request.Meta.Origin)
if siweOrigin != requestOrigin { if siweOrigin != requestOrigin {
return fmt.Errorf("sign in request domain (%s) does not match source: %s", siweOrigin, requestOrigin) return fmt.Errorf("sign in request domain (%s) does not match source: %s", siweOrigin, requestOrigin)
} }
}
return nil return nil
} }