Skip to content
Snippets Groups Projects
  • Nicolas80's avatar
    badf52ce
    Adding db persistence for all SecretFormat of vault keys as well as supporting derivations · badf52ce
    Nicolas80 authored
    * Added "/.idea" exclusion in .gitignore (for when using JetBrains IDEs)
    * Added dialoguer dependency for easier user input handling (see in inputs.rs)
    * Added sea-orm dependency to allow having DB entity mappings and use a local sqlite file database
    * Added rstest test dependency for parameterized tests support
    * Added derivation tests for each SecretFormat (including cesium v1 key derivation, using sp_core::ed25519::Pair)
    * Made a lot of changes to add vault_account and vault_derivation db tables to persist vault keys & derivations
    * Added support for KeyPair::Ed25519 linking to sp_core::ed25519::Pair which can be created from secret seed retrieved from nacl::sign::Keypair (which is created from cesium id + secret)
    ** This was necessary to allow deriving keys from "cesium v1" keys (to be reviewed - it might be a bad idea to permit that from a security point of view)
    * Only kept original (substrate) keyfiles support for migration (use "vault list-files" and "vault migrate")
    * Added possibility to give either "-a" Address or "-v" Vault Name as general option
    * Added extra commands in Vault
    ** list-files: (deprecated)List available key files (needs to be migrated with command "vault migrate" in order to use them)
    ** migrate: (deprecated)Migrate old key files into db (will have to provide password for each key)
    ** 'list' now has sub-commands 'all' or 'root' to show all keys or only root keys (without derivation path)
    ** use: "Use specific vault key (changes the config address)", which will have the same behaviour as `gcli <-a <Address>|-v <VaultName>> config save` (left a FIXME in there to review)
    ** derivation: Add a derivation to an existing (root) vault key
    ** rename: Give a meaningful vault name to a vault key or derivation
    ** remove: Remove a vault key (and potential derivations if it's a root key)
    * Had to bubble up "await" and "async" in a lot of places
    * ...
    badf52ce
    History
    Adding db persistence for all SecretFormat of vault keys as well as supporting derivations
    Nicolas80 authored
    * Added "/.idea" exclusion in .gitignore (for when using JetBrains IDEs)
    * Added dialoguer dependency for easier user input handling (see in inputs.rs)
    * Added sea-orm dependency to allow having DB entity mappings and use a local sqlite file database
    * Added rstest test dependency for parameterized tests support
    * Added derivation tests for each SecretFormat (including cesium v1 key derivation, using sp_core::ed25519::Pair)
    * Made a lot of changes to add vault_account and vault_derivation db tables to persist vault keys & derivations
    * Added support for KeyPair::Ed25519 linking to sp_core::ed25519::Pair which can be created from secret seed retrieved from nacl::sign::Keypair (which is created from cesium id + secret)
    ** This was necessary to allow deriving keys from "cesium v1" keys (to be reviewed - it might be a bad idea to permit that from a security point of view)
    * Only kept original (substrate) keyfiles support for migration (use "vault list-files" and "vault migrate")
    * Added possibility to give either "-a" Address or "-v" Vault Name as general option
    * Added extra commands in Vault
    ** list-files: (deprecated)List available key files (needs to be migrated with command "vault migrate" in order to use them)
    ** migrate: (deprecated)Migrate old key files into db (will have to provide password for each key)
    ** 'list' now has sub-commands 'all' or 'root' to show all keys or only root keys (without derivation path)
    ** use: "Use specific vault key (changes the config address)", which will have the same behaviour as `gcli <-a <Address>|-v <VaultName>> config save` (left a FIXME in there to review)
    ** derivation: Add a derivation to an existing (root) vault key
    ** rename: Give a meaningful vault name to a vault key or derivation
    ** remove: Remove a vault key (and potential derivations if it's a root key)
    * Had to bubble up "await" and "async" in a lot of places
    * ...