Jump to content
mietzen

Done with Enpass

Recommended Posts

Sorry but I'm done with your crappy software.

I'm a developer myself and I know releasing a bug free software is impossible, but your update from 5 to 6 was just BS.

You killed the sync functionality and the db conversion from 5 to 6 also wasn't bug free. OK bad thinks might happen... but all these problems were reported months ago and still there are no fixes.

Even worse  now sync is broken on all platforms!

In my case (WebDAV) sync is broken because of a character conversion failure. So if minor bugs like these take you months to fix, how long would a security critical bug like a failure in your vault.db design take to fix?

So I'm done with Enpass, not only did your support disappointed me also my trust in your Software is broken.

If anybody else how wants to switch to Keepass:

I quickly wrote an converter script from enpass json to keepass csv. Most of the informations are preserved. Everything that has no group in Keepass will be stored as Note. I wasn't sure how the attachments are serialized, so I didn't cared for them.

Have fun:

import json
with open('enpass_export.json') as enpass_json_fid:
    vault_data = json.loads(enpass_json_fid.read())

    keepass_csv_string = ''

    for item in vault_data['items']:

        title = item['title']
        group = item['category']
        last_modified = str(item['updated_at'])
        url = ''
        hostname = ''
        password = ''
        username = ''
        email = ''
        note = ''
        if item['note']:
            note += item['note'] + "\\n"
        for field in item['fields']:
            if field['value']:
                if field['label'] == 'Website':
                    url = field['value']

                elif field['label'] == 'Hostname':
                    hostname = field['value']

                elif field['label'] == 'Password':
                    password = field['value']

                elif field['label'] == 'Username':
                    username = field['value']

                elif field['label'] == 'E-mail':
                    email = field['value']

                else:
                    note += field['label'] + ": " + field['value'] + "\\n"

        if hostname and url:
            note += "Hostname: " + hostname + "\\n"
        elif hostname and not url:
            url = hostname

        if username and email:
            note += "E-Mail: " + email + "\\n"
        elif email and not username:
            username = email

        if note:
            note = note[: -2]

        keepass_csv_string += '\"' + title + '\"' + ',' + '\"' + group + '\"' + ',' + '\"' + username + '\"' + ',' \
                              + '\"' + password + '\"' + ',' + '\"' + url + '\"' + ',' + '\"' + note + '\"' + ',' \
                              + last_modified + "\n"

    enpass_json_fid.close()

with open('keepass_import.csv', 'w') as keepass_csv_fid:
    keepass_csv_fid.write(keepass_csv_string)
    keepass_csv_fid.close()

 

Edited by mietzen
  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks mietzen for the script! Can you please explain how to use it? Thanks a lot :)
@ Anonym Potato im testing Strongbox on iOS. So far so good

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...