an english translation of my previous post for non-french-speaking readers .
Background and motivations
Subscribing to Lastpass Premium since 2011, I took a five-year subscription for $60, or $5 a year. A very good deal at the time.
In 2017, I extended my premium subscription for another year for $28.80. Sacred inflation for a very good service, certainly, but with some failures.
- the new version of the user interface did not convince me.
- the binary software "thick client" is no longer developed as before.
- Slow Firefox extension. Menu has become less user-friendly. Complicated, messy.
- the detection of site fields is less conclusive.
From my point of view, the Lastpass acquisition by LogMeIn is no stranger to this situation.
In short, at the end of 2018, on the anniversary of the subscription extension, it was time to put Lastpass into competition.
After various evaluations, I took the plunge for the young challenger Bitwarden, for the open view, the possibility of hosting its own server and the very positive evolution of the application over the last year. The price of the $9/year premium subscription does the rest. Three times cheaper than Lastpass, though. Everything is said!
All right. Not everything is perfect. Bitwarden is a young product and the format of its export CSV file is not yet recognized by other password managers. A little annoying for me because I regularly use KeepassX and derivatives to have my password database in offline mode on different media and OS. I exported the LastPass password database once a week into a CSV file, to import it into a new KeepassX database with the import option. A perfect solution for my needs that took me only 5 minutes every Sunday evening.
To date, I have not yet found any program/application on the Net to convert the CSV-Bitwarden file into a CSV-LastPass file, or other KeepassX compatible format.
In this situation, we drop the case or roll up our sleeves and develop something that does the job.
I took the opportunity to step outside my comfort zone and seriously try a language I didn't practice much: Python3, generally preferring Perl more versatile but more challenging.
So I wrote the python program Bitwarden2Lastpass, for a weekend. The result is suitable enough for me to share with the community.
For information, the code python was written with python 3.7, not downward compatible.
The program has been developed:
on Linux Debian, python 3.7 of the distribution anaconda.
and tested on Windows, python 3.7 of the distribution anaconda also.
- development hosted by Github
- Place the file bitwarden2lastpass.py in ~/local/bin or /usr/local/bin (root mode required for this case)
Python3 is the programming language with which Bitwarden2lastpass.py* is developed. * pip install csv errno getopt inspect ntpath os pathlib platform re logging sys
Integration in KDE
Video of the integration in Dolphin under KDE: bitwarden2lastpass-kde-dolphin-integration.mp4
- Edit and adapt the files to your installation:
- Copy the file bitwarden2lastpass.bash to ~/local/bin or /usr/local/bin (root mode required for this case)
Run kf5-config --path services to determine the directories where to store menuitems files from the menu.
~/.local/share/kservices5/ServiceMenus/ or /usr/share/kservices5/ServiceMenus/
cp bitwarden2lastpass.desktop ~/.local/share/kservices5/ServiceMenus/
- Close all Dolphin instances in the KDE session.
- There you go.
bitwarden2lastpass.py -i <inputfile> -o <outputfile> -d <directory> Usage: bitwarden2lastpass.py detect the last bitwarden exxport file in the current directory and convert it to a compatible lastpass export file. (same to 'bitwarden2lastpass.py -d .') bitwarden2lastpass.py -d <directory> detect the last bitwarden export file in the directory <directory> and convert it to a compatible lastpass export file. bitwarden2lastpass.py -i <export-bitwarden-file> convert <export-bitwarden-file> to a compatible lastpass export file, in the same directory. bitwarden2lastpass.py -i <export-bitwarden-file> -o <export-lastpass-file> convert <export-bitwarden-file> to a compatible lastpass export file with name : <export-lastpass-file> bitwarden2lastpass.py (-h | --help) bitwarden2lastpass.py --version Options: -h --help Show this screen. -v --version Show version.