diff --git a/common/version/version.go b/common/version/version.go index 3eab64087..5f1b9989a 100644 --- a/common/version/version.go +++ b/common/version/version.go @@ -5,7 +5,7 @@ import ( "runtime/debug" ) -var tag = "v4.4.41" +var tag = "v4.4.42" var commit = func() string { if info, ok := debug.ReadBuildInfo(); ok { diff --git a/coordinator/internal/types/auth.go b/coordinator/internal/types/auth.go index 97868ec36..810bea280 100644 --- a/coordinator/internal/types/auth.go +++ b/coordinator/internal/types/auth.go @@ -26,6 +26,23 @@ type LoginSchema struct { Token string `json:"token"` } +// TODO just use for darwin upgrade, need delete next upgrade +type identity struct { + ProverName string `json:"prover_name"` + ProverVersion string `json:"prover_version"` + Challenge string `json:"challenge"` + HardForkName string `json:"hard_fork_name"` +} + +func (i *identity) Hash() ([]byte, error) { + byt, err := rlp.EncodeToBytes(i) + if err != nil { + return nil, err + } + hash := crypto.Keccak256Hash(byt) + return hash[:], nil +} + // Message the login message struct type Message struct { Challenge string `form:"challenge" json:"challenge" binding:"required"` @@ -80,7 +97,14 @@ func (a *LoginParameter) Verify() (bool, error) { // RecoverPublicKeyFromSignature get public key from signature. // This method is for pre-darwin's compatible. func (a *LoginParameter) RecoverPublicKeyFromSignature() (string, error) { - hash, err := a.Message.Hash() + curieIdentity := identity{ + ProverName: a.Message.ProverName, + ProverVersion: a.Message.ProverVersion, + Challenge: a.Message.Challenge, + HardForkName: "curie", + } + + hash, err := curieIdentity.Hash() if err != nil { return "", err }