mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-04-23 03:00:50 -04:00
fix coordinator curie public key recover bug (#1474)
Co-authored-by: georgehao <georgehao@users.noreply.github.com>
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user