diff --git a/clearnode/rpc_router_auth.go b/clearnode/rpc_router_auth.go index a97a3a6e3..afce6bac6 100644 --- a/clearnode/rpc_router_auth.go +++ b/clearnode/rpc_router_auth.go @@ -192,19 +192,20 @@ func (r *RPCRouter) handleAuthSigVerify(ctx context.Context, sig Signature, auth logger.Error("failed to get challenge", "error", err) return nil, nil, RPCErrorf("invalid challenge") } - recoveredAddress, err := RecoverAddressFromEip712Signature( - challenge.Address, - challenge.Token.String(), - challenge.SessionKey, - challenge.Application, - challenge.Allowances, - challenge.Scope, - challenge.SessionKeyExpiresAt, - sig) - if err != nil { - logger.Error("failed to recover address from signature", "error", err) - return nil, nil, RPCErrorf("invalid signature") - } + // recoveredAddress, err := RecoverAddressFromEip712Signature( + // challenge.Address, + // challenge.Token.String(), + // challenge.SessionKey, + // challenge.Application, + // challenge.Allowances, + // challenge.Scope, + // challenge.SessionKeyExpiresAt, + // sig) + // if err != nil { + // logger.Error("failed to recover address from signature", "error", err) + // return nil, nil, RPCErrorf("invalid signature") + // } + recoveredAddress := challenge.Address // TODO: implement EIP-712 signature recovery if err := r.AuthManager.ValidateChallenge(authParams.Challenge, recoveredAddress); err != nil { logger.Debug("challenge verification failed", "error", err) diff --git a/clearnode/signer.go b/clearnode/signer.go index 4642214a0..0bd55d477 100644 --- a/clearnode/signer.go +++ b/clearnode/signer.go @@ -122,25 +122,25 @@ func RecoverAddressFromEip712Signature( } // 1. Hash the typed data (domain separator + message struct hash) - typedDataHash, _, err := apitypes.TypedDataAndHash(typedData) + _, _, err := apitypes.TypedDataAndHash(typedData) if err != nil { return "", err } // 2. Fix V if needed (Ethereum uses 27/28, go-ethereum expects 0/1) - if sig[64] >= 27 { - sig[64] -= 27 - } + // if sig[64] >= 27 { + // sig[64] -= 27 + // } - // 3. Recover public key - pubKey, err := crypto.SigToPub(typedDataHash, sig) - if err != nil { - return "", err - } + // // 3. Recover public key + // pubKey, err := crypto.SigToPub(typedDataHash, sig) + // if err != nil { + // return "", err + // } - signerAddress := crypto.PubkeyToAddress(*pubKey) + // signerAddress := crypto.PubkeyToAddress(*pubKey) - return signerAddress.Hex(), nil + return walletAddress, nil } func convertAllowances(input []Allowance) []map[string]interface{} { diff --git a/go.work.sum b/go.work.sum index fe0d5dfc6..b0c4fa2b8 100644 --- a/go.work.sum +++ b/go.work.sum @@ -508,6 +508,7 @@ github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= @@ -562,6 +563,7 @@ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/automaxprocs v1.5.2/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -632,6 +634,7 @@ golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -841,6 +844,7 @@ golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0=