Skip to main content

The Internet Encryption Toolkit: Encrypted Internet Proxy and Encrypted Mail.

Project description

Bitmask

Your internet encryption toolkit

https://badge.fury.io/py/leap.bitmask.svg https://0xacab.org/leap/bitmask-dev/badges/master/build.svg Documentation Status IRC IRC-es

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.

Package under development!

The previous client using PySide has been deprecated (Bitmask version 0.9.2, still available at the http://github.com/leapcode/bitmask_client repo).

Read the Docs!

There is documentation about Bitmask for users and for developers.

Bugs

Please report any bugs in our bug tracker.

Logs

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

Development

Running Tests

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 python tests:

tox

There are some minimal end-to-end tests:

make test_e2e

For testing the UI (aka bitmask-js) you need to have mocha installed. You can run ui tests like this:

cd ui && make test

Hacking

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.

If you want to setup your whole development environment, and you are running a debian-based system, you can try:

make dev-bootstrap

To upgrade regularly the python dependencies installed inside your virtualenv, you can run:

make upgrade-all

inside your virtualenv, and it will install any new version of your dependencies that is found in pypi.

Run headless backend in development mode

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

Run user interface frontend

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.

Install Bitmask user interface in development mode

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.

License

https://raw.github.com/leapcode/bitmask_client/develop/docs/user/gpl.png

Bitmask is released under the terms of the GNU GPL version 3 or later.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

leap.bitmask-0.10rc2.tar.gz (229.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

leap.bitmask-0.10rc2-py2.py3-none-any.whl (298.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file leap.bitmask-0.10rc2.tar.gz.

File metadata

  • Download URL: leap.bitmask-0.10rc2.tar.gz
  • Upload date:
  • Size: 229.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for leap.bitmask-0.10rc2.tar.gz
Algorithm Hash digest
SHA256 aee2e56455ce6e4cf86ef5cd845922c2191964373579183fc408717836e17552
MD5 b0e9a5ff2f4fcb8253468273e44b46dc
BLAKE2b-256 eeb5f41750f832159bf14c00b63b52c03bdb9a688e68427888ddd65118ec7a7c

See more details on using hashes here.

File details

Details for the file leap.bitmask-0.10rc2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for leap.bitmask-0.10rc2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8865889d0171901d3702b5e40701df4c195ffff6a39504ca6cee7b11fa0c8cf2
MD5 46b086e49249dfd5ddf2cb4f19d2b170
BLAKE2b-256 5376cd5035c9e3aedacb94f720d044fa503cdc4e5f3b259e8d59e1b7620b3a0d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page