Git Product home page Git Product logo

sherlock's Introduction

Hello There ๐Ÿ––

๐Ÿซ  Currently confused about...

Programming

This is a small collection of projects to practivce and playaround with rust and its eco-system

๐Ÿ‘‰ rusting

Concepts

Besides programming I am facinated with replication and consensus protocols. Currently trying to wrap my head around Viewstamped Replication Revisited..

๐Ÿ”ญ Side Projects I am working on...

beam me up, scotty

Why only query and multiplex logs in production environments? scotty helps with that by multiplexing your logs from many local applications into a consolidated view on which you can apply filters or even run queries on your logs!

๐Ÿ‘‰ scotty contributions and/or feedback appreciated :)

sherlock

sherlock is a very simple cli password manager which suits my needs. I use it every day to manage my passwords for online accounts and servers.

๐Ÿ‘‰ sherlock

sherlock's People

Contributors

amit-pub avatar konstantingasser avatar rendyreivaldy25 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

sherlock's Issues

user input validation for account names and group names

Some commands (add account|group, del account|group, get group@account) require one argument which is the combination of the group name and account name joined with the @ sign. When a user creates a new group or account the internal.Account and internal.Group types must validate the names in their valid function. Especially required are checks for names as they must not contain the @ sign since names with this char will cause the internal.splitQuery to bug out.

password strength validation not working correctly

somehow long random password with a big entropy will be evaluated as security.Low. The func PasswordStrength should be re-written following some standards.

  • time to brute-force
  • entropy of characters
  • length

currently some actual secure passwords can only be inserted by using the --insecure flag...

deleting a group

IMO the user should be able to delete a group - however there are some things to consider:

  • should groups be deleted if its last account has been deleted?
  • deleting an entire group sounds like a dangerous thing. Should there be a different conformation dialog? a rollback option?

generate password command

The idea it to either have an separate command like sherlock gen to generate a password based on some flags (length, special chars, numbers, etc.)

Another option which would be nice is to have a flag --gen for Sherlock add account which will generate a password for the new account. Open for suggestions

command to list all groups

Listing all accounts for a given group already works with sherlock list group-name, here the default if no argument is given will be the default group. Having a separated command to list all groups would not be nice from a users point of view. Therefore, I feel the sherlock list command needs to change a bit.

Maybe the command could check if the argument is something like all to display all groups or simply use a flag --all?

inform user directly if group does not exists or password is wrong

if a user creates and account the command first asks for the group password and then for the account password. in case the group password is wrong or the group does not exists it would be good if the user would not need to type in the accounts password first just to see that

Help Command / Man Page

Hi, I interested in your works. may I contribute? I have an idea. How about we add more command to show list of commands available. like -h or --help flags perhaps? that would be nice. what do you think ? thanks.

update of accounts

there should be command like sherlock update group@account which lets you update account information.
Not sure what information can be updated. Obviously the password is something the user must be able to update. However, if the user can also update things like the account name we need to check if the name is colliding with other existing names in the group.

the internal.Account struct should also be appended with a UpdatedOn field which can be displayed for sherlock list group.

separate add group and add account into sub commands

currently the sherlock add command takes care of adding new groups as well as new accounts. It would be more explicit if the command would be build like sherlock add group --name and sherlock add account --name --tag.
However, I am not sure if the --name flags would than be still required?

deleting an account

the user should be able to delete an existing account. for the command I imagine something like sherlock del account group@account. Optional the command can have a --force flag which will not prompt the user for conformation else the user should be prompt to confirm the deletion with [y/N]

Fix README for group & account commands

  1. While adding a group, --group is required

Readme says:

sherlock add group detective

Existing behavior:

# sherlock add group g7
โ— account name required (--name)
  1. While adding an account to a group, --name is required

Readme says:

sherlock add account bakerstreet --gid detective --tag 221b

Existing behavior:

# sherlock add account  g1-a2 --gid g8 --insecure
โ— account name required (--name)

use context to react to signal interrupts from the user

If the user hits CTL-C mid command, sherlock needs take care of open files and more importantly unwritten data which might only be in-memory.

Each sherlock.Func must receive the ctx context.Background() as a first parameter and handle cancelation.

creating a new group should check for the groups password strength

When creating a new group the user needs to set a password to encrypt and decrypt the vault. As of now the password is not checked for its strength.

If the user adds a new group the password should be checked for its strength by using the security.PasswordStrength function altering if the password is insecure.

sherlock add group (not implemented but will be as laid out it #9) should therefore also have a --insecure flag to allow insecure passwords.

Furthermore the password check should also be implemented for setting up the default group when running sherlock setup

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.