Commit 5e4e66a6 authored by QM's avatar QM

modify SetPassphase and ChangePassphase

parent 49765aa0
...@@ -67,7 +67,7 @@ function start_ebrelayerD() { ...@@ -67,7 +67,7 @@ function start_ebrelayerD() {
function InitAndDeploy() { function InitAndDeploy() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
result=$(${CLIA} relayer set_pwd -n 123456hzj -o kk) result=$(${CLIA} relayer set_pwd -p 123456hzj)
cli_ret "${result}" "set_pwd" cli_ret "${result}" "set_pwd"
result=$(${CLIA} relayer unlock -p 123456hzj) result=$(${CLIA} relayer unlock -p 123456hzj)
...@@ -88,7 +88,7 @@ function EthImportKey() { ...@@ -88,7 +88,7 @@ function EthImportKey() {
# 导入测试地址私钥 # 导入测试地址私钥
CLI="./ebcli_$name" CLI="./ebcli_$name"
result=$(${CLI} relayer set_pwd -n 123456hzj -o kk) result=$(${CLI} relayer set_pwd -p 123456hzj)
result=$(${CLI} relayer unlock -p 123456hzj) result=$(${CLI} relayer unlock -p 123456hzj)
cli_ret "${result}" "unlock" cli_ret "${result}" "unlock"
......
...@@ -20,6 +20,7 @@ func RelayerCmd() *cobra.Command { ...@@ -20,6 +20,7 @@ func RelayerCmd() *cobra.Command {
cmd.AddCommand( cmd.AddCommand(
SetPwdCmd(), SetPwdCmd(),
ChangePwdCmd(),
LockCmd(), LockCmd(),
UnlockCmd(), UnlockCmd(),
Chain33RelayerCmd(), Chain33RelayerCmd(),
...@@ -41,6 +42,33 @@ func SetPwdCmd() *cobra.Command { ...@@ -41,6 +42,33 @@ func SetPwdCmd() *cobra.Command {
} }
func addSetPwdFlags(cmd *cobra.Command) { func addSetPwdFlags(cmd *cobra.Command) {
cmd.Flags().StringP("password", "p", "", "password,[8-30]letter and digit")
cmd.MarkFlagRequired("password")
}
func setPwd(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
newPwd, _ := cmd.Flags().GetString("password")
params := relayerTypes.ReqSetPasswd{
Passphase: newPwd,
}
var res rpctypes.Reply
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Manager.SetPassphase", params, &res)
ctx.Run()
}
// ChangePwdCmd set password
func ChangePwdCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "change_pwd",
Short: "Change password",
Run: changePwd,
}
addChangePwdFlags(cmd)
return cmd
}
func addChangePwdFlags(cmd *cobra.Command) {
cmd.Flags().StringP("old", "o", "", "old password") cmd.Flags().StringP("old", "o", "", "old password")
cmd.MarkFlagRequired("old") cmd.MarkFlagRequired("old")
...@@ -48,16 +76,16 @@ func addSetPwdFlags(cmd *cobra.Command) { ...@@ -48,16 +76,16 @@ func addSetPwdFlags(cmd *cobra.Command) {
cmd.MarkFlagRequired("new") cmd.MarkFlagRequired("new")
} }
func setPwd(cmd *cobra.Command, args []string) { func changePwd(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
oldPwd, _ := cmd.Flags().GetString("old") oldPwd, _ := cmd.Flags().GetString("old")
newPwd, _ := cmd.Flags().GetString("new") newPwd, _ := cmd.Flags().GetString("new")
params := relayerTypes.ReqSetPasswd{ params := relayerTypes.ReqChangePasswd{
OldPassphase: oldPwd, OldPassphase: oldPwd,
NewPassphase: newPwd, NewPassphase: newPwd,
} }
var res rpctypes.Reply var res rpctypes.Reply
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Manager.SetPassphase", params, &res) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Manager.ChangePassphase", params, &res)
ctx.Run() ctx.Run()
} }
......
...@@ -75,7 +75,7 @@ func (chain33Relayer *Relayer4Chain33) StoreAccountWithNewPassphase(newPassphras ...@@ -75,7 +75,7 @@ func (chain33Relayer *Relayer4Chain33) StoreAccountWithNewPassphase(newPassphras
accountInfo, err := chain33Relayer.db.Get(chain33AccountKey) accountInfo, err := chain33Relayer.db.Get(chain33AccountKey)
if nil != err { if nil != err {
relayerLog.Info("StoreAccountWithNewPassphase", "pls check account is created already, err", err) relayerLog.Info("StoreAccountWithNewPassphase", "pls check account is created already, err", err)
return nil return err
} }
ethAccount := &x2ethTypes.Account4Relayer{} ethAccount := &x2ethTypes.Account4Relayer{}
if err := chain33Types.Decode(accountInfo, ethAccount); nil != err { if err := chain33Types.Decode(accountInfo, ethAccount); nil != err {
......
...@@ -139,7 +139,7 @@ func (ethRelayer *Relayer4Ethereum) StoreAccountWithNewPassphase(newPassphrase, ...@@ -139,7 +139,7 @@ func (ethRelayer *Relayer4Ethereum) StoreAccountWithNewPassphase(newPassphrase,
accountInfo, err := ethRelayer.db.Get(ethAccountKey) accountInfo, err := ethRelayer.db.Get(ethAccountKey)
if nil != err { if nil != err {
relayerLog.Info("StoreAccountWithNewPassphase", "pls check account is created already, err", err) relayerLog.Info("StoreAccountWithNewPassphase", "pls check account is created already, err", err)
return nil return err
} }
ethAccount := &x2ethTypes.Account4Relayer{} ethAccount := &x2ethTypes.Account4Relayer{}
if err := chain33Types.Decode(accountInfo, ethAccount); nil != err { if err := chain33Types.Decode(accountInfo, ethAccount); nil != err {
......
...@@ -66,6 +66,49 @@ func NewRelayerManager(chain33Relayer *chain33.Relayer4Chain33, ethRelayer *ethe ...@@ -66,6 +66,49 @@ func NewRelayerManager(chain33Relayer *chain33.Relayer4Chain33, ethRelayer *ethe
func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, result *interface{}) error { func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, result *interface{}) error {
manager.mtx.Lock() manager.mtx.Lock()
defer manager.mtx.Unlock() defer manager.mtx.Unlock()
// 第一次设置密码的时候才使用 后面用 ChangePasswd
if EncryptEnable == manager.encryptFlag {
return errors.New("passphase alreade exists")
}
// 密码合法性校验
if !utils.IsValidPassWord(setPasswdReq.Passphase) {
return chain33Types.ErrInvalidPassWord
}
//使用密码生成passwdhash用于下次密码的验证
newBatch := manager.store.NewBatch(true)
err := manager.store.SetPasswordHash(setPasswdReq.Passphase, newBatch)
if err != nil {
mlog.Error("SetPassphase", "SetPasswordHash err", err)
return err
}
//设置钱包加密标志位
err = manager.store.SetEncryptionFlag(newBatch)
if err != nil {
mlog.Error("SetPassphase", "SetEncryptionFlag err", err)
return err
}
err = newBatch.Write()
if err != nil {
mlog.Error("ProcWalletSetPasswd newBatch.Write", "err", err)
return err
}
manager.passphase = setPasswdReq.Passphase
atomic.StoreInt64(&manager.encryptFlag, EncryptEnable)
*result = rpctypes.Reply{
IsOk: true,
Msg: "Succeed to set passphase",
}
return nil
}
func (manager *Manager) ChangePassphase(setPasswdReq relayerTypes.ReqChangePasswd, result *interface{}) error {
manager.mtx.Lock()
defer manager.mtx.Unlock()
// 新密码合法性校验 // 新密码合法性校验
if !utils.IsValidPassWord(setPasswdReq.NewPassphase) { if !utils.IsValidPassWord(setPasswdReq.NewPassphase) {
return chain33Types.ErrInvalidPassWord return chain33Types.ErrInvalidPassWord
...@@ -79,17 +122,17 @@ func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, res ...@@ -79,17 +122,17 @@ func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, res
atomic.CompareAndSwapInt32(&manager.isLocked, Unlocked, tempislock) atomic.CompareAndSwapInt32(&manager.isLocked, Unlocked, tempislock)
}() }()
// 钱包已经加密需要验证oldpass的正确性 // 钱包已经加密需要验证oldpass的正确性 ??? 什么时候会进入到这个里
if len(manager.passphase) == 0 && manager.encryptFlag == 1 { if len(manager.passphase) == 0 && manager.encryptFlag == 1 {
isok := manager.store.VerifyPasswordHash(setPasswdReq.OldPassphase) isok := manager.store.VerifyPasswordHash(setPasswdReq.OldPassphase)
if !isok { if !isok {
mlog.Error("SetPassphase Verify Oldpasswd fail!") mlog.Error("ChangePassphase Verify Oldpasswd fail!")
return chain33Types.ErrVerifyOldpasswdFail return chain33Types.ErrVerifyOldpasswdFail
} }
} }
if len(manager.passphase) != 0 && setPasswdReq.OldPassphase != manager.passphase { if len(manager.passphase) != 0 && setPasswdReq.OldPassphase != manager.passphase {
mlog.Error("SetPassphase Oldpass err!") mlog.Error("ChangePassphase Oldpass err!")
return chain33Types.ErrVerifyOldpasswdFail return chain33Types.ErrVerifyOldpasswdFail
} }
...@@ -97,25 +140,25 @@ func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, res ...@@ -97,25 +140,25 @@ func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, res
newBatch := manager.store.NewBatch(true) newBatch := manager.store.NewBatch(true)
err := manager.store.SetPasswordHash(setPasswdReq.NewPassphase, newBatch) err := manager.store.SetPasswordHash(setPasswdReq.NewPassphase, newBatch)
if err != nil { if err != nil {
mlog.Error("SetPassphase", "SetPasswordHash err", err) mlog.Error("ChangePassphase", "SetPasswordHash err", err)
return err return err
} }
//设置钱包加密标志位 //设置钱包加密标志位
err = manager.store.SetEncryptionFlag(newBatch) err = manager.store.SetEncryptionFlag(newBatch)
if err != nil { if err != nil {
mlog.Error("SetPassphase", "SetEncryptionFlag err", err) mlog.Error("ChangePassphase", "SetEncryptionFlag err", err)
return err return err
} }
err = manager.ethRelayer.StoreAccountWithNewPassphase(setPasswdReq.NewPassphase, setPasswdReq.OldPassphase) err = manager.ethRelayer.StoreAccountWithNewPassphase(setPasswdReq.NewPassphase, setPasswdReq.OldPassphase)
if err != nil { if err != nil {
mlog.Error("SetPassphase", "StoreAccountWithNewPassphase err", err) mlog.Error("ChangePassphase", "StoreAccountWithNewPassphase err", err)
return err return err
} }
err = manager.chain33Relayer.StoreAccountWithNewPassphase(setPasswdReq.NewPassphase, setPasswdReq.OldPassphase) err = manager.chain33Relayer.StoreAccountWithNewPassphase(setPasswdReq.NewPassphase, setPasswdReq.OldPassphase)
if err != nil { if err != nil {
mlog.Error("SetPassphase", "StoreAccountWithNewPassphase err", err) mlog.Error("ChangePassphase", "StoreAccountWithNewPassphase err", err)
return err return err
} }
...@@ -129,7 +172,7 @@ func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, res ...@@ -129,7 +172,7 @@ func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, res
*result = rpctypes.Reply{ *result = rpctypes.Reply{
IsOk: true, IsOk: true,
Msg: "Succeed to set passphase", Msg: "Succeed to change passphase",
} }
return nil return nil
} }
......
...@@ -19,11 +19,15 @@ message Txhashes { ...@@ -19,11 +19,15 @@ message Txhashes {
repeated string txhash = 1; repeated string txhash = 1;
} }
message ReqSetPasswd { message ReqChangePasswd {
string oldPassphase = 1; string oldPassphase = 1;
string newPassphase = 2; string newPassphase = 2;
} }
message ReqSetPasswd {
string Passphase = 1;
}
message Account4Show { message Account4Show {
string privkey = 1; string privkey = 1;
string addr = 2; string addr = 2;
......
...@@ -43,7 +43,7 @@ maturityDegree=10 ...@@ -43,7 +43,7 @@ maturityDegree=10
function InitAndDeploy() { function InitAndDeploy() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
result=$(${CLIA} relayer set_pwd -n 123456hzj -o kk) result=$(${CLIA} relayer set_pwd -p 123456hzj)
cli_ret "${result}" "set_pwd" cli_ret "${result}" "set_pwd"
result=$(${CLIA} relayer unlock -p 123456hzj) result=$(${CLIA} relayer unlock -p 123456hzj)
...@@ -64,7 +64,7 @@ function EthImportKey() { ...@@ -64,7 +64,7 @@ function EthImportKey() {
# 导入测试地址私钥 # 导入测试地址私钥
CLI="../build/ebcli_$name" CLI="../build/ebcli_$name"
result=$(${CLI} relayer set_pwd -n 123456hzj -o kk) result=$(${CLI} relayer set_pwd -p 123456hzj)
#cli_ret "${result}" "set_pwd" #cli_ret "${result}" "set_pwd"
result=$(${CLI} relayer unlock -p 123456hzj) result=$(${CLI} relayer unlock -p 123456hzj)
......
...@@ -35,7 +35,7 @@ prophecyTx6="0x772260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde" ...@@ -35,7 +35,7 @@ prophecyTx6="0x772260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
InitAndDeploy() { InitAndDeploy() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
result=$(${CLI} relayer set_pwd -n 123456hzj -o kk) result=$(${CLI} relayer set_pwd -p 123456hzj)
cli_ret "${result}" "set_pwd" cli_ret "${result}" "set_pwd"
result=$(${CLI} relayer unlock -p 123456hzj) result=$(${CLI} relayer unlock -p 123456hzj)
......
...@@ -30,7 +30,7 @@ InitAndDeploy() { ...@@ -30,7 +30,7 @@ InitAndDeploy() {
cp '../build/ebrelayer' '../build/A/ebrelayer' cp '../build/ebrelayer' '../build/A/ebrelayer'
start_ebrelayer "./../build/A/ebrelayer" "./../build/A/ebrelayer.log" start_ebrelayer "./../build/A/ebrelayer" "./../build/A/ebrelayer.log"
result=$(${CLIA} relayer set_pwd -n 123456hzj -o kk) result=$(${CLIA} relayer set_pwd -p 123456hzj)
cli_ret "${result}" "set_pwd" cli_ret "${result}" "set_pwd"
result=$(${CLIA} relayer unlock -p 123456hzj) result=$(${CLIA} relayer unlock -p 123456hzj)
...@@ -83,7 +83,7 @@ function ImportCBDKey() { ...@@ -83,7 +83,7 @@ function ImportCBDKey() {
# 导入测试地址私钥 # 导入测试地址私钥
CLI="../build/ebcli_$name" CLI="../build/ebcli_$name"
result=$(${CLI} relayer set_pwd -n 123456hzj -o kk) result=$(${CLI} relayer set_pwd -p 123456hzj)
cli_ret "${result}" "set_pwd" cli_ret "${result}" "set_pwd"
result=$(${CLI} relayer unlock -p 123456hzj) result=$(${CLI} relayer unlock -p 123456hzj)
......
...@@ -165,7 +165,7 @@ function start_ebrelayer_and_setpwd_unlock() { ...@@ -165,7 +165,7 @@ function start_ebrelayer_and_setpwd_unlock() {
local CLI="./ebcli_$1" local CLI="./ebcli_$1"
local count=0 local count=0
while true; do while true; do
result=$(${CLI} relayer set_pwd -n 123456hzj -o kk | jq -r .isOK) result=$(${CLI} relayer set_pwd -p 123456hzj | jq -r .isOK)
if [[ ${result} == "true" ]]; then if [[ ${result} == "true" ]]; then
break break
fi fi
......
...@@ -35,7 +35,7 @@ maturityDegree=10 ...@@ -35,7 +35,7 @@ maturityDegree=10
function InitAndDeploy() { function InitAndDeploy() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
result=$(${CLI} relayer set_pwd -n 123456hzj -o kk) result=$(${CLI} relayer set_pwd -p 123456hzj)
cli_ret "${result}" "set_pwd" cli_ret "${result}" "set_pwd"
result=$(${CLI} relayer unlock -p 123456hzj) result=$(${CLI} relayer unlock -p 123456hzj)
...@@ -49,7 +49,7 @@ function InitAndDeploy() { ...@@ -49,7 +49,7 @@ function InitAndDeploy() {
function EthImportKey() { function EthImportKey() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
result=$(${CLI} relayer set_pwd -n 123456hzj -o kk) result=$(${CLI} relayer set_pwd -p 123456hzj)
result=$(${CLI} relayer unlock -p 123456hzj) result=$(${CLI} relayer unlock -p 123456hzj)
...@@ -94,7 +94,7 @@ function StartRelayerAndDeploy() { ...@@ -94,7 +94,7 @@ function StartRelayerAndDeploy() {
# 重启 ebrelayer 并解锁 # 重启 ebrelayer 并解锁
start_ebrelayer "../build/ebrelayer" "../build/ebrelayer.log" start_ebrelayer "../build/ebrelayer" "../build/ebrelayer.log"
${CLI} relayer set_pwd -n 123456hzj -o kk ${CLI} relayer set_pwd -p 123456hzj
${CLI} relayer unlock -p 123456hzj ${CLI} relayer unlock -p 123456hzj
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment