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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×