| Motoko backend | |
|---|---|
| Rust backend |
The VetKey Password Manager is an example application demonstrating how to use VetKeys and Encrypted Maps to build a secure, decentralized password manager on the Internet Computer (IC). This application allows users to create password vaults, store encrypted passwords, and share vaults with other users via their Internet Identity Principal.
- Secure Password Storage: Uses VetKey to encrypt passwords before storing them in Encrypted Maps.
- Vault-Based Organization: Users can create multiple vaults, each containing multiple passwords.
- Access Control: Vaults can be shared with other users via their Internet Identity Principal.
This example uses test_key_1 by default. To use a different available master key, change the "init_arg": "(\"test_key_1\")" line in dfx.json to the desired key before running dfx deploy in the next step.
If you want to deploy this project locally with a Motoko backend, then run:
dfx start --background && dfx deployfrom the motoko folder.
To use the Rust backend instead of Motoko, run the same command in the rust folder.
The backend consists of an Encrypted Maps-enabled canister that securely stores passwords. It is automatically deployed with dfx deploy.
The frontend is a Svelte application providing a user-friendly interface for managing vaults and passwords.
To run the frontend in development mode with hot reloading:
npm run devThis example dapp does not implement key rotation, which is strongly recommended in a production environment. Key rotation involves periodically changing encryption keys and re-encrypting data to enhance security. In a production dapp, key rotation would be useful to limit the impact of potential key compromise if a malicious party gains access to a key, or to limit access when users are added or removed from note sharing.
- Password Manager with Metadata - If you need to store additional metadata alongside passwords.