diff --git a/rpc/server.go b/rpc/server.go index 9596477a85..097289eb58 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -259,7 +259,7 @@ func PeerInfoFromContext(ctx context.Context) PeerInfo { // ContextWithMockPeerInfo is a helper function to create a context with a mock peer info. // It is used in tests to simulate a peer info. -func ContextWithMockPeerInfo(ctx context.Context, transport, source, account string) context.Context { +func ContextWithMockPeerInfo(ctx context.Context, transport, source string) context.Context { peerInfo := PeerInfo{ Transport: transport, HTTP: struct { diff --git a/signer/core/signed_data_test.go b/signer/core/signed_data_test.go index 15480f28fb..c5f7ba84b1 100644 --- a/signer/core/signed_data_test.go +++ b/signer/core/signed_data_test.go @@ -17,8 +17,8 @@ package core_test import ( - "cmp" "bytes" + "cmp" "context" "encoding/json" "fmt" @@ -1064,69 +1064,136 @@ func TestEncodeDataRecursiveBytes(t *testing.T) { } } -func TestSignInWithEtheriumValid(t *testing.T) { - t.Parallel() - - testFiles, err := os.ReadDir(filepath.Join("testdata", "siwe")) - require.NoError(t, err) - - type TestData struct { - Msg string `json:"msg"` - Account string `json:"account"` - RequestContext struct { - Transport string `json:"transport"` - Source string `json:"source"` - Account string `json:"account"` - } `json:"request_context"` +func TestSignInWithEtheriumValidLocalhost(t *testing.T) { + tests := map[string]string{ + "argent": "http://localhost:4361 wants you to sign in with your Ethereum account:\n{{Account}}\n\nSIWE Notepad Example\n\nURI: http://localhost:4361\nVersion: 1\nChain ID: 1\nNonce: FbYd6TNB4m0IUHDG7\nIssued At: 2022-04-19T18:55:04.444Z", + "loopring": "http://localhost:4361 wants you to sign in with your Ethereum account:\n{{Account}}\n\nSIWE Notepad Example\n\nURI: http://localhost:4361\nVersion: 1\nChain ID: 1\nNonce: b19JyMHnM0Jdm20as\nIssued At: 2022-04-19T18:57:09.490Z", } - var messages map[string]TestData - var expectingWarning bool - for _, fInfo := range testFiles { - if !strings.HasSuffix(fInfo.Name(), "json") { - continue - } - if fInfo.Name() != "valid_eip1271.json" { - continue - } - expectingWarning = strings.HasPrefix(fInfo.Name(), "warning") + for testName, msg := range tests { + t.Run(testName, func(t *testing.T) { + t.Parallel() + api, control := setup(t, true) + createAccount(control, api, t) + createAccount(control, api, t) + control.approveCh <- "1" + list, err := api.List(context.Background()) + require.NoError(t, err) + a := common.NewMixedcaseAddress(list[0]) - jsonFile, err := os.ReadFile(filepath.Join("testdata", "siwe", fInfo.Name())) - require.NoError(t, err) + ctx := rpc.ContextWithMockPeerInfo(context.Background(), "http", "localhost:4361") + message := strings.ReplaceAll(msg, "{{Account}}", a.Address().Hex()) - err = json.Unmarshal(jsonFile, &messages) - require.NoError(t, err) + control.approveCh <- "Y" + control.inputCh <- "a_long_password" + signature, err := api.SignData(ctx, apitypes.TextPlain.Mime, a, hexutil.Encode([]byte(message))) + require.NoError(t, err) - for testName, testData := range messages { - t.Run(testName, func(t *testing.T) { - t.Parallel() - - api, control := setup(t, true) - createAccount(control, api, t) - createAccount(control, api, t) - control.approveCh <- "1" - list, err := api.List(context.Background()) - require.NoError(t, err) - a := common.NewMixedcaseAddress(list[0]) - - ctx := rpc.ContextWithMockPeerInfo(context.Background(), testData.RequestContext.Transport, testData.RequestContext.Source, testData.Account) - account := cmp.Or(testData.Account, a.Address().Hex()) - message := strings.ReplaceAll(testData.Msg, "{{Account}}", account) - - control.approveCh <- "Y" - control.inputCh <- "a_long_password" - signature, err := api.SignData(ctx, apitypes.TextPlain.Mime, a, hexutil.Encode([]byte(message))) - - if expectingWarning { - // todo: check UI for warning message - } else { - require.NoError(t, err) - } - - if signature == nil || len(signature) != 65 { - t.Errorf("Expected 65 byte signature (got %d bytes)", len(signature)) - } - }) - } + if signature == nil || len(signature) != 65 { + t.Errorf("Expected 65 byte signature (got %d bytes)", len(signature)) + } + }) + } +} + +func TestSignInWithEtheriumValidMessages(t *testing.T) { + jsonFile, err := os.ReadFile(filepath.Join("testdata", "siwe", "valid_messages.json")) + require.NoError(t, err) + tests := make(map[string]string) + require.NoError(t, json.Unmarshal(jsonFile, &tests)) + + for testName, msg := range tests { + t.Run(testName, func(t *testing.T) { + t.Parallel() + api, control := setup(t, true) + createAccount(control, api, t) + createAccount(control, api, t) + control.approveCh <- "1" + list, err := api.List(context.Background()) + require.NoError(t, err) + a := common.NewMixedcaseAddress(list[0]) + + ctx := rpc.ContextWithMockPeerInfo(context.Background(), "https", "service.org") + message := strings.ReplaceAll(msg, "{{Account}}", a.Address().Hex()) + + control.approveCh <- "Y" + control.inputCh <- "a_long_password" + signature, err := api.SignData(ctx, apitypes.TextPlain.Mime, a, hexutil.Encode([]byte(message))) + require.NoError(t, err) + // todo: check UI for warning message + + if signature == nil || len(signature) != 65 { + t.Errorf("Expected 65 byte signature (got %d bytes)", len(signature)) + } + }) + } +} + +func TestSignInWithEtheriumInvlid(t *testing.T) { + var tests map[string]struct { + Msg string `json:"msg"` + RequestContext struct { + Transport string `json:"transport"` + Source string `json:"source"` + Account string `json:"account"` + } `json:"request_context"` + } + jsonFile, err := os.ReadFile(filepath.Join("testdata", "siwe", "error_spoofing.json")) + require.NoError(t, err) + require.NoError(t, json.Unmarshal(jsonFile, &tests)) + + for testName, testData := range tests { + t.Run(testName, func(t *testing.T) { + t.Parallel() + api, control := setup(t, true) + createAccount(control, api, t) + createAccount(control, api, t) + control.approveCh <- "1" + list, err := api.List(context.Background()) + require.NoError(t, err) + a := common.NewMixedcaseAddress(list[0]) + + ctx := rpc.ContextWithMockPeerInfo(context.Background(), testData.RequestContext.Transport, testData.RequestContext.Source) + account := cmp.Or(testData.RequestContext.Account, a.Address().Hex()) + message := strings.ReplaceAll(testData.Msg, "{{Account}}", account) + + control.approveCh <- "Y" + control.inputCh <- "a_long_password" + _, err = api.SignData(ctx, apitypes.TextPlain.Mime, a, hexutil.Encode([]byte(message))) + require.Error(t, err) + }) + } +} + +func TestSignInWithEtheriumWarning(t *testing.T) { + jsonFile, err := os.ReadFile(filepath.Join("testdata", "siwe", "warnings.json")) + require.NoError(t, err) + tests := make(map[string]string) + require.NoError(t, json.Unmarshal(jsonFile, &tests)) + + for testName, msg := range tests { + t.Run(testName, func(t *testing.T) { + t.Parallel() + api, control := setup(t, true) + createAccount(control, api, t) + createAccount(control, api, t) + control.approveCh <- "1" + list, err := api.List(context.Background()) + require.NoError(t, err) + a := common.NewMixedcaseAddress(list[0]) + + ctx := rpc.ContextWithMockPeerInfo(context.Background(), "https", "service.org") + message := strings.ReplaceAll(msg, "{{Account}}", a.Address().Hex()) + + control.approveCh <- "Y" + control.inputCh <- "a_long_password" + signature, err := api.SignData(ctx, apitypes.TextPlain.Mime, a, hexutil.Encode([]byte(message))) + require.NoError(t, err) + // todo: check UI for warning message + + if signature == nil || len(signature) != 65 { + t.Errorf("Expected 65 byte signature (got %d bytes)", len(signature)) + } + }) } } diff --git a/signer/core/siwevalidation.go b/signer/core/siwevalidation.go index f0d4aacd70..269a842c64 100644 --- a/signer/core/siwevalidation.go +++ b/signer/core/siwevalidation.go @@ -30,7 +30,7 @@ var messageSize = `(?:\d+)` // Regular expression to match SIWE messages // Scheme (optional) -var scheme = `([a-zA-Z][a-zA-Z0-9+\-.]*://)?` +var scheme = `(?:([a-zA-Z][a-zA-Z0-9+\-.]*)://)?` // Domain var domain = `([^ ]+)` diff --git a/signer/core/testdata/siwe/error_spoofing.json b/signer/core/testdata/siwe/error_spoofing.json new file mode 100644 index 0000000000..4756013b6a --- /dev/null +++ b/signer/core/testdata/siwe/error_spoofing.json @@ -0,0 +1,24 @@ +{ + "incorrect_transport": { + "msg": "https://localhost:4361 wants you to sign in with your Ethereum account:\n{{Account}}\n\nSIWE Notepad Example\n\nURI: https://localhost:4361\nVersion: 1\nChain ID: 1\nNonce: FbYd6TNB4m0IUHDG7\nIssued At: 2022-04-19T18:55:04.444Z", + "request_context": { + "transport": "http", + "source": "localhost:4361" + } + }, + "spoofed_source": { + "msg": "https://important-website.com wants you to sign in with your Ethereum account:\n{{Account}}\n\nSIWE Notepad Example\n\nURI: https://important-website.com\nVersion: 1\nChain ID: 1\nNonce: b19JyMHnM0Jdm20as\nIssued At: 2022-04-19T18:57:09.490Z", + "request_context": { + "transport": "https", + "source": "bad-website.com" + } + }, + "spoofed_account": { + "msg": "localhost:4361 wants you to sign in with your Ethereum account:\n{{Account}}\n\nSIWE Notepad Example\n\nURI: https://localhost:4361\nVersion: 1\nChain ID: 1\nNonce: b19JyMHnM0Jdm20as\nIssued At: 2022-04-19T18:57:09.490Z", + "request_context": { + "transport": "https", + "source": "localhost:4361", + "account": "0x1234567890123456789012345678901234567890" + } + } +} \ No newline at end of file diff --git a/signer/core/testdata/siwe/valid_eip1271.json b/signer/core/testdata/siwe/valid_eip1271.json deleted file mode 100644 index 9096eaa934..0000000000 --- a/signer/core/testdata/siwe/valid_eip1271.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "argent": { - "msg": "localhost:4361 wants you to sign in with your Ethereum account:\n{{Account}}\n\nSIWE Notepad Example\n\nURI: http://localhost:4361\nVersion: 1\nChain ID: 1\nNonce: FbYd6TNB4m0IUHDG7\nIssued At: 2022-04-19T18:55:04.444Z", - "request_context": { - "transport": "https", - "source": "localhost:4361" - } - }, - "loopring": { - "msg": "localhost:4361 wants you to sign in with your Ethereum account:\n{{Account}}\n\nSIWE Notepad Example\n\nURI: http://localhost:4361\nVersion: 1\nChain ID: 1\nNonce: b19JyMHnM0Jdm20as\nIssued At: 2022-04-19T18:57:09.490Z", - "request_context": { - "transport": "https", - "source": "localhost:4361" - } - } -} \ No newline at end of file diff --git a/signer/core/testdata/siwe/valid_messages.json b/signer/core/testdata/siwe/valid_messages.json new file mode 100644 index 0000000000..2eaff26de9 --- /dev/null +++ b/signer/core/testdata/siwe/valid_messages.json @@ -0,0 +1,36 @@ +{ + "Resources: [uri:, uri://@]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri:\n- uri://@", + "Resources: [uri://@:, uri://]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://@:\n- uri://", + "Resources: [uri://:, uri:?]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://:\n- uri:?", + "Resources: [uri:#, uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri:#\n- uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body", + "Resources IPv4: [uri://10.10.10.10, uri://010.0.00.000]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://10.10.10.10\n- uri://010.0.00.000", + "Resources IP-literal: [uri://[2001:db8::7], uri://[::ffff:129.144.52.38]]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[2001:db8::7]\n- uri://[::ffff:129.144.52.38]", + "Resources IP-literal: [uri://10.10.10.10.example.com/en/process, uri://[2606:2800:220:1:248:1893:25c8:1946]/test]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://10.10.10.10.example.com/en/process\n- uri://[2606:2800:220:1:248:1893:25c8:1946]/test", + "Resources IP-literal: [uri://[2001:db8::1]:80, uri://[2001:db8::1:ffff]:5128]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[2001:db8::1]:80\n- uri://[2001:db8::1:ffff]:5128", + "IPv4 bad octets: - uri://[::0.0.0.256]/p/path": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::0.0.0.256]/p/path\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv4 bad octets: - uri://[::300.0.0.0]/p/path": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::300.0.0.0]/p/path\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv4 bad octets: - uri://[::0.ff.0.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::0.ff.0.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv4 bad octets: - uri://[::0.0.256.0]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::0.0.256.0]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv4 bad octets: - uri://[::.0.255.0]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::.0.255.0]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 no :: no IPv4 too many 16-bit digits - uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 no :: no IPv4 too few 16-bit digits - uri://[ffff:abcd:0:10:200:3000:f8a]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:f8a]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 no :: with IPv4 too many 16-bit digits - uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 leading :: too many 16-bit digits - uri://[::1:2:3:4:5:6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::1:2:3:4:5:6:7:8]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 leading :: with IPv4 - too many 16-bit digits - uri://[::1:2:3:4:5:6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::1:2:3:4:5:6:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 trailing :: too many 16-bit digits - uri://[1:2:3:4:5:6:7:8::]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[1:2:3:4:5:6:7:8::]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 trailing :: with IPv4 - too many 16-bit digits - uri://[1:2:3:4:5:6::198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[1:2:3:4:5:6::198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 leading & trailing :: no IPv4 - too many 16-bit digits - uri://[1:2:3:4:5::6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[1:2:3:4:5::6:7:8]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 leading & trailing :: with IPv4 - too many 16-bit digits - uri://[1:2:3:4:5::6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[1:2:3:4:5::6:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "No scheme - ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "bad query - uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "bad fragment - uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "Resources present": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri:", + "Resources empty": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:", + "Resources missing": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "Request-id present": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nRequest ID: request123", + "Request-id empty": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nRequest ID: ", + "Request-id missing": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "Statement present": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\nhave statement\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "Statement empty": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "Statement missing": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z" +} \ No newline at end of file diff --git a/signer/core/testdata/siwe/valid_resources.json b/signer/core/testdata/siwe/valid_resources.json deleted file mode 100644 index 95ebfb6f96..0000000000 --- a/signer/core/testdata/siwe/valid_resources.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Resources: [uri:, uri://@]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri:\n- uri://@", - "Resources: [uri://@:, uri://]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://@:\n- uri://", - "Resources: [uri://:, uri:?]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://:\n- uri:?", - "Resources: [uri:#, uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri:#\n- uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body", - "Resources IPv4: [uri://10.10.10.10, uri://010.0.00.000]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://10.10.10.10\n- uri://010.0.00.000", - "Resources IP-literal: [uri://[2001:db8::7], uri://[::ffff:129.144.52.38]]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[2001:db8::7]\n- uri://[::ffff:129.144.52.38]", - "Resources IP-literal: [uri://10.10.10.10.example.com/en/process, uri://[2606:2800:220:1:248:1893:25c8:1946]/test]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://10.10.10.10.example.com/en/process\n- uri://[2606:2800:220:1:248:1893:25c8:1946]/test", - "Resources IP-literal: [uri://[2001:db8::1]:80, uri://[2001:db8::1:ffff]:5128]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[2001:db8::1]:80\n- uri://[2001:db8::1:ffff]:5128" -} \ No newline at end of file diff --git a/signer/core/testdata/siwe/valid_specification.json b/signer/core/testdata/siwe/valid_specification.json deleted file mode 100644 index ef9df5ebb6..0000000000 --- a/signer/core/testdata/siwe/valid_specification.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "resources present": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri:", - "resources empty": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:", - "resources missing": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "request-id present": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nRequest ID: request123", - "request-id empty": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nRequest ID: ", - "request-id missing": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "statement present": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\nhave statement\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "statement empty": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "statement missing": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z" -} diff --git a/signer/core/testdata/siwe/valid_uris.json b/signer/core/testdata/siwe/valid_uris.json deleted file mode 100644 index d5acd817aa..0000000000 --- a/signer/core/testdata/siwe/valid_uris.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "uri-js scheme: uri:": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js userinfo: uri://@": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://@\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js empty host: uri://@:": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://@:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js host: uri://": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js port: uri://:": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js query: uri:?": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:?\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js fragment: uri:#": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:#\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js all: uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js IPv4address: uri://10.10.10.10": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://10.10.10.10\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js IPv6address: uri://[2001:db8::7]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[2001:db8::7]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js mixed IPv6address & IPv4address: uri://[::ffff:129.144.52.38]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::ffff:129.144.52.38]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js mixed IPv4address & reg-name: uri://10.10.10.10.example.com/en/process": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://10.10.10.10.example.com/en/process\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js IPv6address, example from bkw: uri://[2606:2800:220:1:248:1893:25c8:1946]/test": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[2606:2800:220:1:248:1893:25c8:1946]/test\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js IPv6address, example from RFC 5952: uri://[2001:db8::1]:80": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[2001:db8::1]:80\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "uri-js end test: uri:": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv4address: uri://[::10.10.10.10]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::10.10.10.10]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv4address leading zeros: uri://[::000.000.010.001]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::000.000.010.001]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv4address max value: uri://[::001.099.200.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::001.099.200.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address no :: : uri://[ffff:abcd:0:10:200:3000:f8a:1]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:f8a:1]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address no :: & IPv4: uri://[ffff:abcd:0:10:200:3000:255.255.255.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:255.255.255.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading :: no IPv4: uri://[::]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading :: no IPv4: uri://[::ffff]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::ffff]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading :: no IPv4: uri://[::1:2:3:4:5:6:7]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::1:2:3:4:5:6:7]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading :: with IPv4: uri://[::198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading :: with IPv4: uri://[::ffff:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::ffff:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading :: with IPv4: uri://[::1:2:3:4:5:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::1:2:3:4:5:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address trailing :: no IPv4: uri://[1::]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1::]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address trailing :: no IPv4: uri://[1:2:3:4:5:6:7::]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1:2:3:4:5:6:7::]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address trailing :: with IPv4: uri://[1::198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1::198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address trailing :: with IPv4: uri://[1:2:3:4:5::198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1:2:3:4:5::198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading & trailing :: no IPv4: uri://[1::2]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1::2]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading & trailing :: no IPv4: uri://[1:2:3:4:5:6::7]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1:2:3:4:5:6::7]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading & trailing :: no IPv4: uri://[ffff:aaaa:bbbb::cccc:dddd:eeee:9999]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[ffff:aaaa:bbbb::cccc:dddd:eeee:9999]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading & trailing :: with IPv4: uri://[1::2:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1::2:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading & trailing :: with IPv4: uri://[1:2:3:4::7:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1:2:3:4::7:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6address leading & trailing :: with IPv4: uri://[ffff:aaaa:bbbb::cccc:dddd:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[ffff:aaaa:bbbb::cccc:dddd:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z" -} diff --git a/signer/core/testdata/siwe/warning_resources.json b/signer/core/testdata/siwe/warning_resources.json deleted file mode 100644 index da5820ddf7..0000000000 --- a/signer/core/testdata/siwe/warning_resources.json +++ /dev/null @@ -1,18 +0,0 @@ -{ -"IPv4 bad octets: - resources uri - uri://[::0.0.0.256]/p/path": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::0.0.0.256]/p/path", -"IPv4 bad octets: - resources uri - uri://[::300.0.0.0]/p/path": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::300.0.0.0]/p/path", -"IPv4 bad octets: - resources uri - uri://[::0.ff.0.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::0.ff.0.255]", -"IPv4 bad octets: - resources uri - uri://[::0.0.256.0]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::0.0.256.0]", -"IPv6 no :: no IPv4 too many 16-bit digits - resources uri - uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]", -"IPv6 no :: no IPv4 too few 16-bit digits - resources uri - uri://[ffff:abcd:0:10:200:3000:f8a]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[ffff:abcd:0:10:200:3000:f8a]", -"IPv6 no :: with IPv4 too many 16-bit digits - resources uri - uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]", -"IPv6 leading :: too many 16-bit digits - resources uri - uri://[::1:2:3:4:5:6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::1:2:3:4:5:6:7:8]", -"IPv6 leading :: with IPv4 - too many 16-bit digits - resources uri - uri://[::1:2:3:4:5:6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::1:2:3:4:5:6:198.162.10.255]", -"IPv6 trailing :: too many 16-bit digits - resources uri - uri://[1:2:3:4:5:6:7:8::]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[1:2:3:4:5:6:7:8::]", -"IPv6 trailing :: with IPv4 - too many 16-bit digits - resources uri - uri://[1:2:3:4:5:6::198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[1:2:3:4:5:6::198.162.10.255]", -"IPv6 leading & trailing :: no IPv4 - too many 16-bit digits - resources uri - uri://[1:2:3:4:5::6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[1:2:3:4:5::6:7:8]", -"IPv6 leading & trailing :: with IPv4 - too many 16-bit digits - resources uri - uri://[1:2:3:4:5::6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[1:2:3:4:5::6:198.162.10.255]", -"No scheme - resources uri - ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body", -"bad query - resources uri - uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body", -"bad fragment - resources uri - uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body" -} diff --git a/signer/core/testdata/siwe/warning_uris.json b/signer/core/testdata/siwe/warning_uris.json deleted file mode 100644 index 6f135d5c10..0000000000 --- a/signer/core/testdata/siwe/warning_uris.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "IPv4 bad octets: - uri://[::0.0.0.256]/p/path": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::0.0.0.256]/p/path\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv4 bad octets: - uri://[::300.0.0.0]/p/path": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::300.0.0.0]/p/path\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv4 bad octets: - uri://[::0.ff.0.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::0.ff.0.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv4 bad octets: - uri://[::0.0.256.0]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::0.0.256.0]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv4 bad octets: - uri://[::.0.255.0]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::.0.255.0]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 no :: no IPv4 too many 16-bit digits - uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 no :: no IPv4 too few 16-bit digits - uri://[ffff:abcd:0:10:200:3000:f8a]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:f8a]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 no :: with IPv4 too many 16-bit digits - uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 leading :: too many 16-bit digits - uri://[::1:2:3:4:5:6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::1:2:3:4:5:6:7:8]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 leading :: with IPv4 - too many 16-bit digits - uri://[::1:2:3:4:5:6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[::1:2:3:4:5:6:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 trailing :: too many 16-bit digits - uri://[1:2:3:4:5:6:7:8::]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1:2:3:4:5:6:7:8::]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 trailing :: with IPv4 - too many 16-bit digits - uri://[1:2:3:4:5:6::198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1:2:3:4:5:6::198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 leading & trailing :: no IPv4 - too many 16-bit digits - uri://[1:2:3:4:5::6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1:2:3:4:5::6:7:8]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "IPv6 leading & trailing :: with IPv4 - too many 16-bit digits - uri://[1:2:3:4:5::6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://[1:2:3:4:5::6:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "No scheme - ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "bad query - uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", - "bad fragment - uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body": "service.org wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z" -} diff --git a/signer/core/testdata/siwe/warnings.json b/signer/core/testdata/siwe/warnings.json new file mode 100644 index 0000000000..1925e12cfa --- /dev/null +++ b/signer/core/testdata/siwe/warnings.json @@ -0,0 +1,36 @@ +{ + "IPv4 bad octets: - resources uri - uri://[::0.0.0.256]/p/path": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::0.0.0.256]/p/path", + "IPv4 bad octets: - resources uri - uri://[::300.0.0.0]/p/path": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::300.0.0.0]/p/path", + "IPv4 bad octets: - resources uri - uri://[::0.ff.0.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::0.ff.0.255]", + "IPv4 bad octets: - resources uri - uri://[::0.0.256.0]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::0.0.256.0]", + "IPv6 no :: no IPv4 too many 16-bit digits - resources uri - uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]", + "IPv6 no :: no IPv4 too few 16-bit digits - resources uri - uri://[ffff:abcd:0:10:200:3000:f8a]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[ffff:abcd:0:10:200:3000:f8a]", + "IPv6 no :: with IPv4 too many 16-bit digits - resources uri - uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]", + "IPv6 leading :: too many 16-bit digits - resources uri - uri://[::1:2:3:4:5:6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::1:2:3:4:5:6:7:8]", + "IPv6 leading :: with IPv4 - too many 16-bit digits - resources uri - uri://[::1:2:3:4:5:6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[::1:2:3:4:5:6:198.162.10.255]", + "IPv6 trailing :: too many 16-bit digits - resources uri - uri://[1:2:3:4:5:6:7:8::]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[1:2:3:4:5:6:7:8::]", + "IPv6 trailing :: with IPv4 - too many 16-bit digits - resources uri - uri://[1:2:3:4:5:6::198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[1:2:3:4:5:6::198.162.10.255]", + "IPv6 leading & trailing :: no IPv4 - too many 16-bit digits - resources uri - uri://[1:2:3:4:5::6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[1:2:3:4:5::6:7:8]", + "IPv6 leading & trailing :: with IPv4 - too many 16-bit digits - resources uri - uri://[1:2:3:4:5::6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://[1:2:3:4:5::6:198.162.10.255]", + "No scheme - resources uri - ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body", + "bad query - resources uri - uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body", + "bad fragment - resources uri - uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri:\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z\nResources:\n- uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body", + "IPv4 bad octets: - uri://[::0.0.0.256]/p/path": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::0.0.0.256]/p/path\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv4 bad octets: - uri://[::300.0.0.0]/p/path": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::300.0.0.0]/p/path\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv4 bad octets: - uri://[::0.ff.0.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::0.ff.0.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv4 bad octets: - uri://[::0.0.256.0]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::0.0.256.0]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv4 bad octets: - uri://[::.0.255.0]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::.0.255.0]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 no :: no IPv4 too many 16-bit digits - uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:f8a:1:ffff]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 no :: no IPv4 too few 16-bit digits - uri://[ffff:abcd:0:10:200:3000:f8a]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:f8a]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 no :: with IPv4 too many 16-bit digits - uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[ffff:abcd:0:10:200:3000:ff:255.255.255.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 leading :: too many 16-bit digits - uri://[::1:2:3:4:5:6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::1:2:3:4:5:6:7:8]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 leading :: with IPv4 - too many 16-bit digits - uri://[::1:2:3:4:5:6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[::1:2:3:4:5:6:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 trailing :: too many 16-bit digits - uri://[1:2:3:4:5:6:7:8::]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[1:2:3:4:5:6:7:8::]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 trailing :: with IPv4 - too many 16-bit digits - uri://[1:2:3:4:5:6::198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[1:2:3:4:5:6::198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 leading & trailing :: no IPv4 - too many 16-bit digits - uri://[1:2:3:4:5::6:7:8]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[1:2:3:4:5::6:7:8]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "IPv6 leading & trailing :: with IPv4 - too many 16-bit digits - uri://[1:2:3:4:5::6:198.162.10.255]": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://[1:2:3:4:5::6:198.162.10.255]\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "No scheme - ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: ://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "bad query - uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://user:pass@example.com:123/one/two.three ?q1=a1&q2=a2#body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z", + "bad fragment - uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body": "service.org wants you to sign in with your Ethereum account:\n0x{{Account}}\n\n\nURI: uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2 #body\nVersion: 1\nChain ID: 1\nNonce: 32891757\nIssued At: 2021-09-30T16:25:24.000Z" + +}