Adding db persistence for all SecretFormat of vault keys as well as supporting derivations
* 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 * ...
parent
8f67e583
No related branches found
No related tags found
Showing
- .gitignore 1 addition, 0 deletions.gitignore
- Cargo.lock 1121 additions, 64 deletionsCargo.lock
- Cargo.toml 5 additions, 0 deletionsCargo.toml
- src/commands/identity.rs 16 additions, 2 deletionssrc/commands/identity.rs
- src/commands/net_test.rs 2 additions, 2 deletionssrc/commands/net_test.rs
- src/commands/revocation.rs 4 additions, 4 deletionssrc/commands/revocation.rs
- src/commands/vault.rs 926 additions, 50 deletionssrc/commands/vault.rs
- src/conf.rs 18 additions, 3 deletionssrc/conf.rs
- src/data.rs 42 additions, 23 deletionssrc/data.rs
- src/database.rs 71 additions, 0 deletionssrc/database.rs
- src/entities.rs 2 additions, 0 deletionssrc/entities.rs
- src/entities/vault_account.rs 106 additions, 0 deletionssrc/entities/vault_account.rs
- src/entities/vault_derivation.rs 150 additions, 0 deletionssrc/entities/vault_derivation.rs
- src/inputs.rs 85 additions, 0 deletionssrc/inputs.rs
- src/keys.rs 442 additions, 19 deletionssrc/keys.rs
- src/main.rs 53 additions, 5 deletionssrc/main.rs
- src/utils.rs 23 additions, 2 deletionssrc/utils.rs
Loading
Please register or sign in to comment