DEV Community

Mario Mateaș
Mario Mateaș

Posted on

CLI-Based Keystore: my latest small project

Some weeks ago I started working on a Java CLI-based keystore app. I know some mature ones already exist on the market, but I wanted it to be as simple to use as possible and include commands that suit my work.

Until this moment, some functionality includes:

  • adding, removing, getting and listing custom keys
  • copying a key without displaying it on the screen
  • listing all keys without displaying their value on the screen
  • generating keys based on certain criteria (length, include digits, uppercase, lowercase, symbols, etc.)

Managing keys requires a password that is set by the user (keyboard input) when the first key is added/generated to the keystore. That password is used to AES-Encrypt the keystore file in the user data directory (e.g. %localappdata% for Windows).

There is also the possibility of switching to the FILE mode, which is going to ask the user for a file path instead of typing a password. That file contains the key that can be used to decrypt (maybe you keep your secrets on a USB drive). You don't need to create the key manually. Even in FILE mode, the user's still going to be asked for a password the first time, which will be used to derive a key and store it in the specified file path.

Was curious on how I can improve it: how to improve both user experience and also add features that might be helpful to you, the developer community.

You can find the repository here 😊

Top comments (0)