Muragala Password Manager - #03 Basic Application
Hello All 👋,
Today I wanted to quickly discuss the Muragala Application; more specifically the C# CLI Application and Python Application. Both of them have similar functionality, so what we discuss will apply to both of them.
The Python Application is written solely by itself, so I will refer to its perspective. As discussed in the previous article, the C# Application is written to interface with the C# library which handles the functionality. However, the structure is still the same. In the next article, I will discuss the library itself.
The first task the application has to do is to initialize itself. This is done by the initialize()
function. In it, we have to perform two tasks:
- Load the database to memory
- Load the preferences (Key and Hash) to memory
Once these two tasks are done, we can allow the user to enter commands. The available commands are as follows:
exit
- Exits the applicationhelp
- Shows the help contentabout
- Display the about informationversion
- Display the current version of the applicationcopyright
- Displays the copyright detailsencrypt
- Encrypts a message with the user passcodedecrypt
- Decrypts an encrypted message from the user passcodevalidate
- Check if the password is correctadd
- Adds a new password to the databaseedit
- Edits an existing password in the databasedelete
- Deletes a password from the databaseshow
- Displays the password for an existing profilecopy
- Copies the password of an existing profile (Not available on C# CLI Applicationplatforms
- Lists out all the platforms that exist in the databaseusername
- Lists out all the usernames that exist under a provided platform name
When using the help
command, you can provide the name of a command as the argument to get only the help information for that particular command.
Add
and edit
functions accept the arguments -u
, -n
, -c
. These commands command the application to exclude Uppercase characters, numbers and special characters from the password when generating one. Before these, you can also provide a number which commands the application on how long the password must be (Character count). It is recommended not to exclude any characters and to have around 12 characters (Which is the default length). Without any of these commands, you can include a -m
to enter a password manually. When -m
is given, a prompt will ask you to enter a custom password instead of generating a password. Other than this, add doesn't accept any commands, however, the edit has to be entered in the form edit <platform> <username>
to edit the add
, the application provides prompts to enter the new platform name and username.
delete
, show
and copy
also has to be entered in the form <command> <platform> <username>
. delete
will delete the provided username from the platform after one more confirmation prompt. Therefore it is important to make sure that you're ok with losing this information. show
and copy
will output the password to the user. show
will display it while copy
will copy it to the clipboard without displaying. Make sure that the pyperclip library is installed in the device, otherwise, on Python, you will see an error. C# CLI doesn't support the copy
command as C# doesn't allow CLI applications to access the clipboard as far as I'm aware. I'm open to any ideas on how to achieve this if anyone knows. Therefore for now we don't have any way to directly copy the password to the clipboard on the C# CLI Application.
platform
command can be used as platform <keyword> <rows>
. Both arguments are optional. username
is similar, however, after the keyword, -a
command to scan all of the usernames. This gives the username command the form: username <keyword/'-a'> <platform> <rows>
where all the arguments are optional.
Cheers 🎉
External Links
Comments
Post a Comment