提交 671425ea 作者: Jakub Sztandera 提交者: Jeromy

cmd: harden config show with key

License: MIT
Signed-off-by: 's avatarJakub Sztandera <kubuxu@protonmail.ch>
上级 0e5e6cf9
......@@ -15,6 +15,7 @@ import (
repo "github.com/ipfs/go-ipfs/repo"
config "github.com/ipfs/go-ipfs/repo/config"
fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
u "gx/ipfs/QmZNVWh8LLjAavuQ2JXuFmuYH3C11xo988vSgp7UQrTRj1/go-ipfs-util"
)
......@@ -164,11 +165,25 @@ included in the output of this command.
idmap, ok := cfg["Identity"].(map[string]interface{})
if !ok {
res.SetError(fmt.Errorf("config has no identity"), cmds.ErrNormal)
res.SetError(errors.New("config has no identity"), cmds.ErrNormal)
return
}
delete(idmap, "PrivKey")
privKeyKey := "" // make sure we both find the name of privkey and we delete it
for key, _ := range idmap {
if strings.ToLower(key) == "privkey" {
if privKeyKey != "" {
res.SetError(errors.New("found multiple PrivKey keys"), cmds.ErrNormal)
return
}
privKeyKey = key
}
}
if privKeyKey == "" {
res.SetError(errors.New("haven't found PriveKey key"), cmds.ErrNormal)
}
delete(idmap, privKeyKey)
output, err := config.HumanOutput(cfg)
if err != nil {
......
......@@ -111,10 +111,10 @@ test_config_cmd() {
test_expect_success "'ipfs config replace' injects privkey back" '
ipfs config replace show_config &&
grep "\"PrivKey\":" "$IPFS_PATH/config" | grep -e ": \".\+\"" >/dev/null
grep "\"PrivKey\":" "$IPFS_PATH/config" | grep -e ": \".\+\"" >/dev/null
'
test_expect_success "'ipfs config replace' with privkey erors out" '
test_expect_success "'ipfs config replace' with privkey errors out" '
cp "$IPFS_PATH/config" real_config &&
test_expect_code 1 ipfs config replace - < real_config 2> replace_out
'
......@@ -124,6 +124,16 @@ test_config_cmd() {
test_cmp replace_out replace_expected
'
test_expect_success "'ipfs config replace' with lower case privkey errors out" '
cp "$IPFS_PATH/config" real_config &&
sed -i -e '\''s/PrivKey/privkey/'\'' real_config &&
test_expect_code 1 ipfs config replace - < real_config 2> replace_out
'
test_expect_success "output looks good" '
echo "Error: setting private key with API is not supported" > replace_expected
test_cmp replace_out replace_expected
'
}
test_init_ipfs
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论