Age | Commit message (Collapse) | Author |
|
|
|
- Code is now PEP 8 compliant
- Uses argparse module for command line arguments
- Prints what it will do and prompts for confirmation before
proceeding
- Does not put URL and notes fields in the entry unless they
are present in the CSV file
- Adds a "user" field in the entry
- There are now command line arguments for the following:
- Exclude specific groups from being imported
- Convert groups and names to lowercase
- Use the name of the KeePass entry rather than the
username as the pass entry name
|
|
|
|
The CSV is generated by KeePassX 2.0 on Mac OSX
|
|
To assist the migration from the default Firefox password store to
passff.
Add also some basic tests.
More info at:
- <https://addons.mozilla.org/en-US/firefox/addon/password-exporter>
- <https://addons.mozilla.org/en-US/firefox/addon/passff>
|
|
Without this patch, all entries are processed twice: once in the first
call to import_group (which recursively processes all entries), then in
the following import_group on all subgroups.
This leads to spurious warnings ("Duplicate needs merging") and extra
text added to each entry.
|
|
In particular, people were encountering exceptions when `empty?` was
called on a `nil` grouping.
|
|
|
|
|
|
|
|
|
|
|
|
If keepassx2pass.py is given an xml file containing passwords with an empty
title, like <title></title>, ElementTree.text returns None. This commit
substitutes an empty string; which will produce a password with name '_',
instead of raising AtttributeError, as shown in this exception::
Traceback (most recent call last):
File "contrib/importers/keepassx2pass.py", line 80, in <module>
main(sys.argv[1])
File "contrib/importers/keepassx2pass.py", line 77, in main
import_group(group)
File "contrib/importers/keepassx2pass.py", line 71, in import_group
import_entry(entry, npath)
File "contrib/importers/keepassx2pass.py", line 58, in import_entry
print "Importing " + path_for(element, path)
File "contrib/importers/keepassx2pass.py", line 37, in path_for
title = cleanTitle(space_to_camelcase(element.find('title').text))
File "contrib/importers/keepassx2pass.py", line 16, in space_to_camelcase
for word in value.split(" "):
AttributeError: 'NoneType' object has no attribute 'split'
|
|
|
|
|
|
Without this, a forward slash in the title creates a new directory
in the password-store. This replaces forward slashes with dashes.
|
|
I found that revelatio2pass.py script doesn't work. It can not decrypt
my password file. I got following error message:
raceback (most recent call last):
File "git/password-store/contrib/importers/revelation2pass.py", line 159, in <module>
main(args.FILE, verbose=args.verbose, xml=args.xml)
File "git/password-store/contrib/importers/revelation2pass.py", line 140, in main
cleardata_gz = decrypt_gz(password, data)
File "git/password-store/contrib/importers/revelation2pass.py", line 117, in decrypt_gz
ct = c.decrypt(cipher_text[28:])
File "/usr/lib/python2.7/site-packages/Crypto/Cipher/blockalgo.py", line 295, in decrypt
return self._cipher.decrypt(ciphertext)
I was unable to fix the problem, but I created a workaround, that add
plain XML import option to the revelation2pass.py script. Revelation can
export its password file as plain XML format.
|
|
|
|
An importer script for 1Password. It supports 1Password's text exports
(CSV or TSV) and its 1PIF file format (pseudo-JSON). In addition to the passwords
it imports notes, as well as the username and URL which it stores in passff-
compatible format (it can also use either the title or the URL itself as pass-name).
|
|
|