babab / dispass Goto Github PK
View Code? Open in Web Editor NEWDisperse and dispell passwords with a free alternative manager.
Home Page: https://dispass.org
License: Other
Disperse and dispell passwords with a free alternative manager.
Home Page: https://dispass.org
License: Other
When one or more of the labels have a sequence number > 9, the
formatting of the table is broken when running dispass list
:
~% dispass list
+---------+--------+----------+--------+---+
| Label | Length | Algo | Number | X |
+---------+--------+----------+--------+---+
| hotmail | 16 | dispass1 | 1 | n |
| test | 30 | dispass2 | 10 | n |
+---------+--------+----------+--------+---+
It seems that 0.1a8
doesn't complain anymore when no label has been given and just assumes test
.
Using test
as the password aswell:
$ dispass -o
Password:
test MTI1ZDZkMDNiMzJjODRkNDkyNzQ3Zj
$ dispas -co
Password:
Password (again):
test MTI1ZDZkMDNiMzJjODRkNDkyNzQ3Zj
Perhaps you meant to do this, then you can disregard this issue.
Updating a label where the right number of colons are present in the specification works without problems:
$ dispass update hotmail 18::
Label 'hotmail' updated
If the specification is malformed it currently prints a traceback:
$ dispass update hotmail 18:
Traceback (most recent call last):
File "/usr/local/bin/dispass", line 24, in <module>
pycommand.run_and_exit(DispassCommand)
File "/usr/local/lib/python2.7/dist-packages/pycommand.py", line 220, in run_and_exit
sys.exit(cmd.run())
File "/usr/local/lib/python2.7/dist-packages/dispass/dispass.py", line 157, in run
return cmd.run()
File "/usr/local/lib/python2.7/dist-packages/dispass/commands/update.py", line 76, in run
seqno = params[2] if params[2] else None
IndexError: list index out of range
Running dispass without arguments will diplay all labels stored in the labelfile.
This may feel uncomfortable to the security conscious and also might invite users to keep
a DisPass instance displaying all passphrases for long periods of time.
Adding an option to 'grep' the label from the labelfile might lead to more convenient usage.
In the windows version of gdispass
(haven't tested in in GNU/Linux) I cannot get it to generate a password by pressing <RETURN>
in the Password text field. It would be nice if this could be added so I don't have to grab my mouse to do it.
To allow multiple front-ends, some logic in the UI code needs to be refactored and placed into the core modules.
Add buttons to dynamically change fontsize. Hopefully the root window will play along.
Rewrite Add new GUI frontend of DisPass in Qt using PySide with Python version 3 Kivy (preferably), after logic in tkinter GUI and CLI commands has been refactored (see #60)
There should be a way to set a location for the default labelfile.
Some people may not want it in their $HOME
s.
For this to work I'm thinking about starting the interactive label editor (in development) when no ~/.dispass file can be found.
Then create an option in the editor to save the default labelfile and maybe more labelfile locations to a config file.
When using the dispass gui with dispass v0.1a8 it will complain when a password is less than 8 characters long, but the cli/curses interface doesn't complain about this.
It would be nice to have an indication of the state of num-lock and caps-lock while entering passwords (especially in the CLI when using a device that has no pretty indicator lights).
Preferably it will (only) show a warning when:
This task is for the CLI support.
In Windows the installer doesn't set DISPASS_LABELFILE
to some value like %USERPROFILE%\AppData\dispass\labels
. Windows doesn't know about XDG_CONFIG_HOME
and just can't parse the ~
in ~/.local/share/dispass/labels
. So, out of the box, it won't find the label file anywhere.
It is missing now and causes an error when installing through make install
from the dist tarball
It would be nice to have an indication of the state of num-lock and caps-lock while entering passwords (especially in the CLI when using a device that has no pretty indicator lights).
Preferably it will (only) show a warning when:
This task is for GUI support.
When a label is disabled, it should not appear in the autocompletion of Zsh for the most common subcommands that can take a label as argument. The only command where autocompletion for disabled label is handy, is dispass enable
.
Proper docstrings are missing for these subcommands:
First, when the following is placed in my labels file, regular DisPass seems to ignore the algorithm specification.
Labelfile:
test algo=dispass2
And then I call and get:
$ dispass -o test
Password:
test NjIzYzkyZDhjM2U4MGE2OTYzNTk5ZT
But when I test with dispass2
I get:
$ dispass -oa dispass2 test
Password:
test ZGMwYWM0YmYxYzIwNDc5MTVkZTg5Nz
So it seems that DisPass ignores the algorithm specification in the labelfile.
Second, when using dispass2
, DisPass doesn't seem to take the -n
parameter into account:
$ dispass -oa dispass2 -n 2 test
Password:
test ZGMwYWM0YmYxYzIwNDc5MTVkZTg5Nz
I've tried multiple orders (putting -n 2
before -a dispass2
, for example), but nothing seems to change it.
I will try to fix this later, if you don't beat me to it.
When starting the gui as:
dispass -f labels gui
Having made sure that labels exist, I still get the selection list for my standard label file instead of the ones specified in ./labels
.
Add a setup with some tests for nose and a configuration for Travis CI
Currently, starting gDisPass with dispass gui
shows a helpful error message like this:
Could not find Tkinter, this is a package needed for using
the graphical version of dispass.
To install, search for a python-tk package for your OS.
Arch Linux # pacman -S python-tk
Debian / Ubuntu $ sudo apt-get install python-tk
OpenBSD # pkg_add -i python-tk
However, starting gDisPass with gdispass
print a traceback:
Traceback (most recent call last):
File "/usr/local/bin/gdispass", line 21, in <module>
from dispass.gui import GUI
File "/usr/local/lib/python2.7/dist-packages/dispass/gui.py", line 16, in <module>
from Tkinter import (
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
raise ImportError, str(msg) + ', please install the python-tk package'
Imagine I have the following 2 lines in my labelfile
google algo=dispass2 seqno=2
google-mycompany-account
Now I can't use test
with the stored algorithm because the -s
switch will complain that I should be more specific if I use:
dispass -s google
Even though I'm specifying one exactly.
This means that I'd have to remember which algorithm and sequence
number I use for google
and specify them on the command line each
time, which seems like it would defeat the purpose of the labelfile.
One can't specify the lenght of a passphrase in gdispass
Add a contributing.rst file with helpful instructions on how to contribute
pycommand is a project born out of DisPass.
https://github.com/babab/pycommand
We can drop dispass.common.CommandBase and have the latest improvements that are in pycommand for all commands.
Labels that start with -
may give problems with some commands because they will be interpreted to be arguments when they are not separated using --
.
Although it may be expected because it is a common mechanism, the usage infomation of subcommands where this may happen should be updated to make this more obvious.
When gDisPass is started with the gdispass
script and it is interrupted by the user in the command line using Ctrl+C
, the interrupt gets handled nicely:
$ gdispass
^C
Ok, bye
Doing the same when gDisPass is started with dispass gui
prints a traceback:
$ dispass gui
^C
Traceback (most recent call last):
File "/usr/local/bin/dispass", line 24, in <module>
pycommand.run_and_exit(DispassCommand)
File "/usr/local/lib/python2.7/dist-packages/pycommand.py", line 220, in run_and_exit
sys.exit(cmd.run())
File "/usr/local/lib/python2.7/dist-packages/dispass/dispass.py", line 157, in run
return cmd.run()
File "/usr/local/lib/python2.7/dist-packages/dispass/commands/gui.py", line 47, in run
g.mainloop()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1073, in mainloop
self.tk.mainloop(n)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.