Skip to content

Commit 72a32cf

Browse files
authored
confirm password when a new key is creating (Layr-Labs#42)
1 parent 7724766 commit 72a32cf

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

pkg/operator/keys/create.go

+25-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ const (
2929
)
3030

3131
func CreateCmd(p utils.Prompter) *cli.Command {
32-
3332
createCmd := &cli.Command{
3433
Name: "create",
3534
Usage: "Used to create encrypted keys in local keystore",
@@ -119,6 +118,18 @@ func saveBlsKey(keyName string, p utils.Prompter, keyPair *bls.KeyPair, insecure
119118
return err
120119
}
121120

121+
_, err = p.InputHiddenString("Please confirm your password:", "",
122+
func(s string) error {
123+
if s != password {
124+
return errors.New("passwords are not matched")
125+
}
126+
return nil
127+
},
128+
)
129+
if err != nil {
130+
return err
131+
}
132+
122133
err = keyPair.SaveToFile(fileLoc, password)
123134
if err != nil {
124135
return err
@@ -155,6 +166,19 @@ func saveEcdsaKey(keyName string, p utils.Prompter, privateKey *ecdsa.PrivateKey
155166
return err
156167
}
157168

169+
_, err = p.InputHiddenString("Please confirm your password:", "",
170+
171+
func(s string) error {
172+
if s != password {
173+
return errors.New("passwords are not matched")
174+
}
175+
return nil
176+
},
177+
)
178+
if err != nil {
179+
return err
180+
}
181+
158182
err = sdkEcdsa.WriteKey(fileLoc, privateKey, password)
159183
if err != nil {
160184
return err

pkg/operator/keys/create_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ func TestCreateCmd(t *testing.T) {
7575
err: nil,
7676
promptMock: func(p *prompterMock.MockPrompter) {
7777
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
78+
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
7879
},
7980
keyPath: filepath.Join(homePath, OperatorKeystoreSubFolder, "/do_not_use_this_name.ecdsa.key.json"),
8081
},
@@ -84,6 +85,7 @@ func TestCreateCmd(t *testing.T) {
8485
err: nil,
8586
promptMock: func(p *prompterMock.MockPrompter) {
8687
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
88+
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
8789
},
8890
keyPath: filepath.Join(homePath, OperatorKeystoreSubFolder, "/do_not_use_this_name.bls.key.json"),
8991
},

pkg/operator/keys/import_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ func TestImportCmd(t *testing.T) {
106106
err: nil,
107107
promptMock: func(p *prompterMock.MockPrompter) {
108108
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
109+
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
109110
},
110111
expectedPrivKey: "6842fb8f5fa574d0482818b8a825a15c4d68f542693197f2c2497e3562f335f6",
111112
keyPath: filepath.Join(homePath, OperatorKeystoreSubFolder, "/test.ecdsa.key.json"),
@@ -121,6 +122,7 @@ func TestImportCmd(t *testing.T) {
121122
err: nil,
122123
promptMock: func(p *prompterMock.MockPrompter) {
123124
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
125+
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
124126
},
125127
expectedPrivKey: "6842fb8f5fa574d0482818b8a825a15c4d68f542693197f2c2497e3562f335f6",
126128
keyPath: filepath.Join(homePath, OperatorKeystoreSubFolder, "/test.ecdsa.key.json"),
@@ -136,6 +138,7 @@ func TestImportCmd(t *testing.T) {
136138
err: nil,
137139
promptMock: func(p *prompterMock.MockPrompter) {
138140
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
141+
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
139142
},
140143
expectedPrivKey: "20030410000080487431431153104351076122223465926814327806350179952713280726583",
141144
keyPath: filepath.Join(homePath, OperatorKeystoreSubFolder, "/test.bls.key.json"),
@@ -151,6 +154,7 @@ func TestImportCmd(t *testing.T) {
151154
err: nil,
152155
promptMock: func(p *prompterMock.MockPrompter) {
153156
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
157+
p.EXPECT().InputHiddenString(gomock.Any(), gomock.Any(), gomock.Any()).Return("", nil)
154158
},
155159
expectedPrivKey: "5491383829988096583828972342810831790467090979842721151380259607665538989821",
156160
keyPath: filepath.Join(homePath, OperatorKeystoreSubFolder, "/test.bls.key.json"),

0 commit comments

Comments
 (0)