Remove the Update method from the Keybase interface. Remove redundant lazy keybase implementation altogether. Created LegacyKeybase interface to restrict capabilities to only those required by keys commands that deal with legacy keybase such as update and migrate. Rename keyring.New() -> keyring.NewLegacy(). Rename client/keys.NewKeyBaseFromDir -> NewLegacyKeyBaseFromDir. crypto/keyiring.NewInMemory() now returns a in-memory keyring. BackendMemory is added yet not exposed via command line --keyring-backend flag. keys add uses it when --dry-run flag is on.
55 lines
2.0 KiB
Go
55 lines
2.0 KiB
Go
package keys
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/viper"
|
|
|
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
|
)
|
|
|
|
// Commands registers a sub-tree of commands to interact with
|
|
// local private key storage.
|
|
func Commands() *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "keys",
|
|
Short: "Manage your application's keys",
|
|
Long: `Keyring management commands. These keys may be in any format supported by the
|
|
Tendermint crypto library and can be used by light-clients, full nodes, or any other application
|
|
that needs to sign with a private key.
|
|
|
|
The keyring supports the following backends:
|
|
|
|
os Uses the operating system's default credentials store.
|
|
file Uses encrypted file-based keystore within the app's configuration directory.
|
|
This keyring will request a password each time it is accessed, which may occur
|
|
multiple times in a single command resulting in repeated password prompts.
|
|
kwallet Uses KDE Wallet Manager as a credentials management application.
|
|
pass Uses the pass command line utility to store and retrieve keys.
|
|
test Stores keys insecurely to disk. It does not prompt for a password to be unlocked
|
|
and it should be use only for testing purposes.
|
|
|
|
kwallet and pass backends depend on external tools. Refer to their respective documentation for more
|
|
information:
|
|
KWallet https://github.com/KDE/kwallet
|
|
pass https://www.passwordstore.org/
|
|
|
|
The pass backend requires GnuPG: https://gnupg.org/
|
|
`,
|
|
}
|
|
cmd.AddCommand(
|
|
MnemonicKeyCommand(),
|
|
AddKeyCommand(),
|
|
ExportKeyCommand(),
|
|
ImportKeyCommand(),
|
|
ListKeysCmd(),
|
|
ShowKeysCmd(),
|
|
flags.LineBreak,
|
|
DeleteKeyCommand(),
|
|
ParseKeyStringCommand(),
|
|
MigrateCommand(),
|
|
)
|
|
cmd.PersistentFlags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|test)")
|
|
viper.BindPFlag(flags.FlagKeyringBackend, cmd.Flags().Lookup(flags.FlagKeyringBackend))
|
|
return cmd
|
|
}
|