[pass] Keepass import should include root-level entries

Erik Mackdanz erikmack at gmail.com
Tue Jan 28 18:32:22 CET 2014

Hey, great project!  I was frustrated with the two password managers I've
been using.  I thought about how I'd like a password manager to be
designed, which involved small gpg-encrypted documents backed by git.  I'm
glad I found your project before I launched into a new, unnecessary

The contrib script for importing from keepass was skipping all my entries,
which are stored at the Keepass root level.  The patch below fixed it.

Repro steps:
1. In KeePass, add some entries as children of the root node
2. Export the KeePass to foo.xml
3. 'keepass2pass.py -f foo.xml'
Expect: all entries imported
Actual: root-level entries are skipped

diff --git a/contrib/keepass2pass.py b/contrib/keepass2pass.py
index 16764bd..80a2ad9 100755
--- a/contrib/keepass2pass.py
+++ b/contrib/keepass2pass.py
@@ -90,6 +90,7 @@ def import_passwords(xml_file, root_path=None):
         xml_tree = ElementTree.XML(text)
         root = xml_tree.find('Root')
         root_group = root.find('Group')
+        import_group(entries,root_group,'')
         if root_path is None: root_path = root_group.find('Name').text
         groups = root_group.findall('Group')
         for group in groups:

Thanks, and keep it up!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.zx2c4.com/pipermail/password-store/attachments/20140128/286cc898/attachment.html>

More information about the Password-Store mailing list