Your internet encryption toolkit
Bitmask is the client for the services offered by the LEAP Platform. It contains a command-line interface and a multiplatform desktop client. It can be also used as a set of libraries to communicate with the different services from third party applications.
It is written in python using Twisted and licensed under the GPL3. The Graphical User Interface is written in html+js and uses PyQt5 for serving the application.
This is a unified repo that has merged the following packages, previously isolated, under the leap namespace:
bonafide, mail, keymanager, bitmask.
The previous Qt client has been deprecated (bitmask version 0.9.2, still available at the http://github.com/leapcode/bitmask_client repo).
The latest documentation about Bitmask is available at LEAP.
Please report any bugs in our bug tracker.
If you want to watch the logs, from the command line:
bitmaskctl logs watch
The paste command can be handy to do bug reports (needs pastebinit
installed
in the system):
bitmaskctl logs send
You need tox to run the tests. If you don't have it in your system yet:
pip install tox
And then run all the tests:
tox
In order to run bitmask in a development environment, you must activate a virtualenv and install the various packages using 'pip install -e'. This installs python packages as links to the source code, so that your code changes are immediately reflected in the packages installed in the virtualenv.
The various make dev-*
commands will run the appropriate pip install
commands for you.
Prerequisites:
sudo apt install build-essential python-dev python-virtualenv \ libsqlcipher-dev libssl-dev libffi-dev
Install and activate a virtualenv:
cd bitmask-dev virtualenv venv source venv/bin/activate
(Refer to the virtualenv documentation if you're not using bash/zsh/dash).
All the subsequent commands assume that you have activated the virtualenv.
Install all the python dependencies:
make dev-backend
Run application:
bitmaskd
If you want to run the Bitmask user interface, you additionally need the following:
Prerequisites:
sudo apt install python-pyqt5 python-pyqt5.qtwebkit
Install python dependencies:
make dev-all
Note: even though the UI is in javascript, Qt is used to create a webview window.
Run user interface:
bitmask
The command bitmask should be in your path if you have activated the virtual environment.
The above instructions will install a python package that contains a pre- bundled version of the javascript UI.
If you want to modify the javascript UI, then you need to be able to update the javascript bundle whenever a javascript or CSS source file changes. To support this, we build a python package of the javascript UI and install it in "development mode" so that changes to the contents of the package are reflected in bitmaskd immediately.
Prerequisites:
sudo apt install nodejs npm nodejs-legacy
Next, run dev-install
:
cd ui make dev-install
Now you should be able to run the user interface with debugging tools:
bitmaskd cd ui npm run ui
This command is the same as running:
chromium-browser "http://localhost:7070/#$(cat ~/.config/leap/authtoken)"
Firefox does not work as well, because the UI is only tested with webkit-based browsers.
Chromium is not the most ideal, however, because it uses a newer webkit than is available in Qt. Instead, try qupzilla:
sudo apt install qupzilla bitmaskd qupzilla -ow "http://localhost:7070/#$(cat ~/.config/leap/authtoken)"
If you make a change to any of the CSS or JS source files, you need to rebuild the javascript bundle. You can do this continually as files change like so:
cd ui node run watch
The new javascript bundle will be used when you refresh the page so long as
make dev-install
was previously run.
For more information, see ui/README.md
.
Bitmask is released under the terms of the GNU GPL version 3 or later.