├── pkg
├── __init__.py
├── next-version
├── pyinst
│ ├── bitmask.py
│ ├── qt.conf
│ ├── bitmaskd
│ ├── bitmask_cli
│ ├── trim-notes.txt
│ ├── README.rst
│ ├── bitmask_cli.spec
│ ├── bitmaskd.spec
│ ├── bitmask.spec.orig
│ ├── bitmask.spec
│ └── multi.spec
├── requirements-docs.pip
├── windows
│ ├── bitmask.nis
│ ├── pyinstaller
│ │ ├── zlib-mingw-shared.patch
│ │ └── pysqlcipher_setup.py.patch
│ ├── installer
│ │ └── Dockerfile
│ ├── Makefile
│ ├── openvpn
│ │ └── Dockerfile
│ ├── bitmask_client_product.nsh
│ ├── TODO
│ ├── openvpn_manifest
│ ├── docker-compose.yml
│ ├── openvpn-build.sh
│ └── bitmask_client_registry_install.nsh
├── branding
│ ├── branding.mk
│ └── patch_pixel_logo.py
├── leap_versions.txt
├── osx
│ ├── bitmask.icns
│ ├── bitmask-wrapper
│ ├── pre-inst.sh
│ ├── post-inst.sh
│ ├── README.rst
│ ├── bitmask.pf.conf
│ ├── se.leap.bitmask-helper.plist
│ ├── build_tuntaposx
│ ├── __init__.py
│ └── daemon
│ │ └── pidfile.py
├── requirements-leap.pip
├── tools
│ ├── with_venv.sh
│ ├── get_authors.sh
│ ├── with_venvwrapper.sh
│ └── profile.mk
├── requirements-pixelated.pip
├── requirements-testing.pip
├── scripts
│ ├── checkout_leap_versions.sh
│ ├── monitor_resource.zsh
│ ├── filter-bitmask-deps
│ └── check_code.sh
├── version-template
├── launcher
│ ├── Makefile
│ ├── README.rst
│ └── bitmask-launcher.c
├── linux
│ ├── leap.desktop
│ ├── pyinst-notes.txt
│ ├── bitmask-launcher
│ ├── polkit
│ │ ├── se.leap.bitmask.policy
│ │ └── se.leap.bitmask.bundle.policy
│ └── README.rst
├── generate_wheels.sh
├── requirements.pip
├── requirements-dev.pip
├── sumo-tarballs.mk
├── deps.mk
├── postmkvenv.sh
├── pip_install_requirements.sh
└── tuf
│ └── apply_updates.py
├── src
└── leap
│ ├── bitmask
│ ├── cli
│ │ └── __init__.py
│ ├── backend
│ │ └── __init__.py
│ ├── config
│ │ ├── __init__.py
│ │ ├── flags.py
│ │ └── tests
│ │ │ └── test_leapsettings.py
│ ├── crypto
│ │ ├── __init__.py
│ │ └── tests
│ │ │ ├── test_provider.json
│ │ │ ├── __init__.py
│ │ │ ├── eip-service.json
│ │ │ ├── openvpn.pem
│ │ │ └── wrongcert.pem
│ ├── provider
│ │ ├── tests
│ │ │ └── __init__.py
│ │ └── __init__.py
│ ├── services
│ │ ├── mail
│ │ │ ├── __init__.py
│ │ │ └── smtpspec.py
│ │ ├── tests
│ │ │ └── __init__.py
│ │ ├── eip
│ │ │ ├── tests
│ │ │ │ ├── __init__.py
│ │ │ │ └── wrongcert.pem
│ │ │ ├── connection.py
│ │ │ ├── udstelnet.py
│ │ │ ├── __init__.py
│ │ │ └── windowsvpnlauncher.py
│ │ └── soledad
│ │ │ ├── __init__.py
│ │ │ ├── soledadconfig.py
│ │ │ └── soledadspec.py
│ ├── util
│ │ ├── tests
│ │ │ ├── __init__.py
│ │ │ └── test_is_release_version.py
│ │ ├── constants.py
│ │ ├── compat.py
│ │ ├── request_helpers.py
│ │ ├── autostart.py
│ │ ├── keyring_helpers.py
│ │ ├── polkit_agent.py
│ │ └── averages.py
│ ├── _appname.py
│ ├── _components.py
│ ├── logs
│ │ ├── __init__.py
│ │ └── streamtologger.py
│ ├── platform_init
│ │ └── __init__.py
│ ├── gui
│ │ ├── clickablelabel.py
│ │ ├── __init__.py
│ │ ├── wizardpage.py
│ │ ├── preferences_page.py
│ │ ├── systray.py
│ │ ├── account.py
│ │ ├── ui
│ │ │ ├── logout.ui
│ │ │ └── preferences_vpn_page.ui
│ │ ├── signaltracker.py
│ │ ├── flashable.py
│ │ └── qt_browser.py
│ └── __init__.py
│ └── __init__.py
├── docs
├── dev
│ ├── todo.rst
│ ├── authors.rst
│ ├── internals.rst
│ ├── signals.rst
│ ├── resources.rst
│ ├── automating_login.rst
│ ├── tests.rst
│ ├── translations.rst
│ └── quickstart.rst
├── pkg
│ ├── osx.rst
│ ├── win.rst
│ └── debian.rst
├── user
│ ├── gpl.png
│ ├── leap-color-small.png
│ └── running.rst
├── api
│ ├── modules.rst
│ ├── leap.keymanager.tests.rst
│ ├── leap.services.eip.tests.rst
│ ├── leap.services.rst
│ ├── leap.config.rst
│ ├── leap.crypto.tests.rst
│ ├── leap.platform_init.rst
│ ├── leap.services.mail.rst
│ ├── leap.services.soledad.rst
│ ├── leap.crypto.rst
│ ├── leap.rst
│ ├── leap.keymanager.rst
│ ├── leap.util.rst
│ ├── leap.services.eip.rst
│ └── leap.gui.rst
├── leap-autopep8.post-commit.hook.ADD
├── leap-commit-template
├── leap-flake8.pre-commit.hook
├── config
│ └── files.rst
├── leap-autopep8.post-commit.hook
├── core_api_contract
├── leap-commit-template.README
├── testing-rcs.README
└── index.rst
├── data
├── images
│ ├── pastebin.png
│ ├── black
│ │ ├── 22
│ │ │ ├── on.png
│ │ │ ├── off.png
│ │ │ ├── wait.png
│ │ │ └── question.png
│ │ └── 32
│ │ │ ├── user.png
│ │ │ ├── earth.png
│ │ │ ├── email.png
│ │ │ ├── arrow-up.png
│ │ │ └── arrow-down.png
│ ├── mask-icon.png
│ ├── white
│ │ └── 22
│ │ │ ├── on.png
│ │ │ ├── off.png
│ │ │ ├── wait.png
│ │ │ └── question.png
│ ├── countries
│ │ ├── ar.png
│ │ ├── at.png
│ │ ├── au.png
│ │ ├── bd.png
│ │ ├── be.png
│ │ ├── br.png
│ │ ├── ca.png
│ │ ├── cat.png
│ │ ├── ch.png
│ │ ├── cl.png
│ │ ├── cn.png
│ │ ├── co.png
│ │ ├── cy.png
│ │ ├── cz.png
│ │ ├── de.png
│ │ ├── dk.png
│ │ ├── ec.png
│ │ ├── ee.png
│ │ ├── es.png
│ │ ├── fi.png
│ │ ├── fr.png
│ │ ├── gb.png
│ │ ├── gr.png
│ │ ├── hk.png
│ │ ├── hu.png
│ │ ├── id.png
│ │ ├── ie.png
│ │ ├── il.png
│ │ ├── in.png
│ │ ├── iq.png
│ │ ├── ir.png
│ │ ├── is.png
│ │ ├── it.png
│ │ ├── jp.png
│ │ ├── kh.png
│ │ ├── kr.png
│ │ ├── lb.png
│ │ ├── ly.png
│ │ ├── mx.png
│ │ ├── my.png
│ │ ├── ng.png
│ │ ├── nl.png
│ │ ├── no.png
│ │ ├── nz.png
│ │ ├── pe.png
│ │ ├── pk.png
│ │ ├── pl.png
│ │ ├── ps.png
│ │ ├── py.png
│ │ ├── ru.png
│ │ ├── se.png
│ │ ├── sg.png
│ │ ├── tn.png
│ │ ├── tr.png
│ │ ├── ua.png
│ │ ├── us.png
│ │ ├── ve.png
│ │ ├── vn.png
│ │ ├── xx.png
│ │ └── za.png
│ ├── menubar-mask-icon.png
│ └── oxygen-icons
│ │ ├── edit-bomb.png
│ │ ├── dialog-error.png
│ │ ├── script-error.png
│ │ ├── dialog-warning.png
│ │ ├── dialog-information.png
│ │ └── document-save-as.png
├── translations
│ ├── es.qm
│ ├── vi.qm
│ ├── en_GB.qm
│ └── README.rst
├── resources
│ ├── locale.qrc
│ ├── loggerwindow.qrc
│ ├── icons.qrc
│ └── flags.qrc
├── bitmask.pro.template
├── ts
│ └── README.rst
└── make_project_file.py
├── thirdparty
├── openvpn
│ ├── Sources
│ └── README
└── gnupg
│ └── build_gnupg.sh
├── docker
├── bitmask-nightly.json
├── debian
│ ├── bitmask-on-docker.sh
│ └── run-docker-for-bitmask.sh
├── Dockerfile
└── README.rst
├── MANIFEST.in
├── changes
├── VERSION_COMPAT
└── next-changelog.rst
├── AUTHORS
├── setup.cfg
├── release-notes.rst
└── README.rst
/pkg/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pkg/next-version:
--------------------------------------------------------------------------------
1 | 0.9.2
2 |
--------------------------------------------------------------------------------
/src/leap/bitmask/cli/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/backend/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/config/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/crypto/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/provider/tests/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/services/mail/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/services/tests/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/util/tests/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/services/eip/tests/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/leap/bitmask/services/soledad/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pkg/pyinst/bitmask.py:
--------------------------------------------------------------------------------
1 | ../../src/leap/bitmask/app.py
--------------------------------------------------------------------------------
/pkg/pyinst/qt.conf:
--------------------------------------------------------------------------------
1 | [Paths]
2 | Plugins=qt4_plugins
--------------------------------------------------------------------------------
/pkg/pyinst/bitmaskd:
--------------------------------------------------------------------------------
1 | ../../src/leap/bitmask/core/launcher.py
--------------------------------------------------------------------------------
/src/leap/bitmask/_appname.py:
--------------------------------------------------------------------------------
1 | __appname__ = "bitmask"
2 |
--------------------------------------------------------------------------------
/pkg/pyinst/bitmask_cli:
--------------------------------------------------------------------------------
1 | ../../src/leap/bitmask/cli/bitmask_cli.py
--------------------------------------------------------------------------------
/pkg/requirements-docs.pip:
--------------------------------------------------------------------------------
1 | sphinx
2 | Sphinx-PyPI-upload
3 |
--------------------------------------------------------------------------------
/docs/dev/todo.rst:
--------------------------------------------------------------------------------
1 | .. _todo:
2 |
3 | To-Do
4 | =====
5 |
6 | alot
7 |
--------------------------------------------------------------------------------
/pkg/windows/bitmask.nis:
--------------------------------------------------------------------------------
1 | !define PKGNAME bitmask
2 | !include .\bitmask.nsh
--------------------------------------------------------------------------------
/docs/pkg/osx.rst:
--------------------------------------------------------------------------------
1 | .. _osx:
2 |
3 | OS X
4 | =====
5 |
6 | Nothing here
7 | move on
8 |
--------------------------------------------------------------------------------
/pkg/branding/branding.mk:
--------------------------------------------------------------------------------
1 | branding-logo:
2 | python pkg/branding/patch_pixel_logo.py
3 |
--------------------------------------------------------------------------------
/docs/pkg/win.rst:
--------------------------------------------------------------------------------
1 | .. _win:
2 |
3 | Windows
4 | =======
5 |
6 | Nothing here
7 | move on
8 |
--------------------------------------------------------------------------------
/docs/user/gpl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/docs/user/gpl.png
--------------------------------------------------------------------------------
/docs/api/modules.rst:
--------------------------------------------------------------------------------
1 | leap
2 | ====
3 |
4 | .. toctree::
5 | :maxdepth: 4
6 |
7 | leap
8 |
--------------------------------------------------------------------------------
/pkg/leap_versions.txt:
--------------------------------------------------------------------------------
1 | soledad 0.8.0
2 | keymanager 0.5.0
3 | leap_common 0.5.1
4 | leap_mail 0.4.1
5 |
--------------------------------------------------------------------------------
/pkg/osx/bitmask.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/pkg/osx/bitmask.icns
--------------------------------------------------------------------------------
/data/images/pastebin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/pastebin.png
--------------------------------------------------------------------------------
/data/translations/es.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/translations/es.qm
--------------------------------------------------------------------------------
/data/translations/vi.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/translations/vi.qm
--------------------------------------------------------------------------------
/data/images/black/22/on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/22/on.png
--------------------------------------------------------------------------------
/data/images/mask-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/mask-icon.png
--------------------------------------------------------------------------------
/data/images/white/22/on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/white/22/on.png
--------------------------------------------------------------------------------
/data/translations/en_GB.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/translations/en_GB.qm
--------------------------------------------------------------------------------
/docs/dev/authors.rst:
--------------------------------------------------------------------------------
1 | .. _authors:
2 |
3 | Authors
4 | =======
5 |
6 | We are many.
7 | We are legion.
8 |
9 |
--------------------------------------------------------------------------------
/data/images/black/22/off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/22/off.png
--------------------------------------------------------------------------------
/data/images/black/22/wait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/22/wait.png
--------------------------------------------------------------------------------
/data/images/black/32/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/32/user.png
--------------------------------------------------------------------------------
/data/images/countries/ar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ar.png
--------------------------------------------------------------------------------
/data/images/countries/at.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/at.png
--------------------------------------------------------------------------------
/data/images/countries/au.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/au.png
--------------------------------------------------------------------------------
/data/images/countries/bd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/bd.png
--------------------------------------------------------------------------------
/data/images/countries/be.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/be.png
--------------------------------------------------------------------------------
/data/images/countries/br.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/br.png
--------------------------------------------------------------------------------
/data/images/countries/ca.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ca.png
--------------------------------------------------------------------------------
/data/images/countries/cat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/cat.png
--------------------------------------------------------------------------------
/data/images/countries/ch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ch.png
--------------------------------------------------------------------------------
/data/images/countries/cl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/cl.png
--------------------------------------------------------------------------------
/data/images/countries/cn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/cn.png
--------------------------------------------------------------------------------
/data/images/countries/co.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/co.png
--------------------------------------------------------------------------------
/data/images/countries/cy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/cy.png
--------------------------------------------------------------------------------
/data/images/countries/cz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/cz.png
--------------------------------------------------------------------------------
/data/images/countries/de.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/de.png
--------------------------------------------------------------------------------
/data/images/countries/dk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/dk.png
--------------------------------------------------------------------------------
/data/images/countries/ec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ec.png
--------------------------------------------------------------------------------
/data/images/countries/ee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ee.png
--------------------------------------------------------------------------------
/data/images/countries/es.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/es.png
--------------------------------------------------------------------------------
/data/images/countries/fi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/fi.png
--------------------------------------------------------------------------------
/data/images/countries/fr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/fr.png
--------------------------------------------------------------------------------
/data/images/countries/gb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/gb.png
--------------------------------------------------------------------------------
/data/images/countries/gr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/gr.png
--------------------------------------------------------------------------------
/data/images/countries/hk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/hk.png
--------------------------------------------------------------------------------
/data/images/countries/hu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/hu.png
--------------------------------------------------------------------------------
/data/images/countries/id.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/id.png
--------------------------------------------------------------------------------
/data/images/countries/ie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ie.png
--------------------------------------------------------------------------------
/data/images/countries/il.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/il.png
--------------------------------------------------------------------------------
/data/images/countries/in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/in.png
--------------------------------------------------------------------------------
/data/images/countries/iq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/iq.png
--------------------------------------------------------------------------------
/data/images/countries/ir.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ir.png
--------------------------------------------------------------------------------
/data/images/countries/is.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/is.png
--------------------------------------------------------------------------------
/data/images/countries/it.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/it.png
--------------------------------------------------------------------------------
/data/images/countries/jp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/jp.png
--------------------------------------------------------------------------------
/data/images/countries/kh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/kh.png
--------------------------------------------------------------------------------
/data/images/countries/kr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/kr.png
--------------------------------------------------------------------------------
/data/images/countries/lb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/lb.png
--------------------------------------------------------------------------------
/data/images/countries/ly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ly.png
--------------------------------------------------------------------------------
/data/images/countries/mx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/mx.png
--------------------------------------------------------------------------------
/data/images/countries/my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/my.png
--------------------------------------------------------------------------------
/data/images/countries/ng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ng.png
--------------------------------------------------------------------------------
/data/images/countries/nl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/nl.png
--------------------------------------------------------------------------------
/data/images/countries/no.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/no.png
--------------------------------------------------------------------------------
/data/images/countries/nz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/nz.png
--------------------------------------------------------------------------------
/data/images/countries/pe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/pe.png
--------------------------------------------------------------------------------
/data/images/countries/pk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/pk.png
--------------------------------------------------------------------------------
/data/images/countries/pl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/pl.png
--------------------------------------------------------------------------------
/data/images/countries/ps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ps.png
--------------------------------------------------------------------------------
/data/images/countries/py.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/py.png
--------------------------------------------------------------------------------
/data/images/countries/ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ru.png
--------------------------------------------------------------------------------
/data/images/countries/se.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/se.png
--------------------------------------------------------------------------------
/data/images/countries/sg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/sg.png
--------------------------------------------------------------------------------
/data/images/countries/tn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/tn.png
--------------------------------------------------------------------------------
/data/images/countries/tr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/tr.png
--------------------------------------------------------------------------------
/data/images/countries/ua.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ua.png
--------------------------------------------------------------------------------
/data/images/countries/us.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/us.png
--------------------------------------------------------------------------------
/data/images/countries/ve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/ve.png
--------------------------------------------------------------------------------
/data/images/countries/vn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/vn.png
--------------------------------------------------------------------------------
/data/images/countries/xx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/xx.png
--------------------------------------------------------------------------------
/data/images/countries/za.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/countries/za.png
--------------------------------------------------------------------------------
/data/images/white/22/off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/white/22/off.png
--------------------------------------------------------------------------------
/data/images/white/22/wait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/white/22/wait.png
--------------------------------------------------------------------------------
/data/images/black/32/earth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/32/earth.png
--------------------------------------------------------------------------------
/data/images/black/32/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/32/email.png
--------------------------------------------------------------------------------
/docs/user/leap-color-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/docs/user/leap-color-small.png
--------------------------------------------------------------------------------
/data/images/black/22/question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/22/question.png
--------------------------------------------------------------------------------
/data/images/black/32/arrow-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/32/arrow-up.png
--------------------------------------------------------------------------------
/data/images/menubar-mask-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/menubar-mask-icon.png
--------------------------------------------------------------------------------
/data/images/white/22/question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/white/22/question.png
--------------------------------------------------------------------------------
/pkg/requirements-leap.pip:
--------------------------------------------------------------------------------
1 | leap.soledad.client>=0.8.0
2 | leap.keymanager>=0.5.0
3 | leap.mail>=0.4.1
4 | leap.common>=0.5.1
5 |
--------------------------------------------------------------------------------
/pkg/tools/with_venv.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | TOOLS=`dirname $0`
3 | VENV=$TOOLS/../../.venv
4 | source $VENV/bin/activate && $@
5 |
--------------------------------------------------------------------------------
/data/images/black/32/arrow-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/black/32/arrow-down.png
--------------------------------------------------------------------------------
/pkg/osx/bitmask-wrapper:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
3 | exec $DIR/bitmask-app --debug
4 |
--------------------------------------------------------------------------------
/thirdparty/openvpn/Sources:
--------------------------------------------------------------------------------
1 | lzo -2.06 .tar.gz
2 | opensc -0.12.2 .tar.gz
3 | openssl -1.0.1c .tar.gz
4 | polarssl -1.1.4 .tgz
5 |
--------------------------------------------------------------------------------
/data/images/oxygen-icons/edit-bomb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/oxygen-icons/edit-bomb.png
--------------------------------------------------------------------------------
/docs/leap-autopep8.post-commit.hook.ADD:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | cd .git/hooks && ln -s ../../docs/leap-autopep8.post-commit.hook post-commit
3 |
--------------------------------------------------------------------------------
/data/images/oxygen-icons/dialog-error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/oxygen-icons/dialog-error.png
--------------------------------------------------------------------------------
/data/images/oxygen-icons/script-error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/oxygen-icons/script-error.png
--------------------------------------------------------------------------------
/data/images/oxygen-icons/dialog-warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/oxygen-icons/dialog-warning.png
--------------------------------------------------------------------------------
/data/images/oxygen-icons/dialog-information.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/oxygen-icons/dialog-information.png
--------------------------------------------------------------------------------
/data/images/oxygen-icons/document-save-as.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leapcode/bitmask_client/HEAD/data/images/oxygen-icons/document-save-as.png
--------------------------------------------------------------------------------
/pkg/requirements-pixelated.pip:
--------------------------------------------------------------------------------
1 | --find-links https://downloads.leap.se/libs/pixelated/
2 | pixelated-user-agent
3 | pixelated-www
4 | whoosh
5 | leap.auth
--------------------------------------------------------------------------------
/pkg/tools/get_authors.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | git log --format='%aN <%aE>' | awk '{arr[$0]++} END{for (i in arr){print arr[i], i;}}' | sort -rn | cut -d' ' -f2-
3 |
--------------------------------------------------------------------------------
/docs/leap-commit-template:
--------------------------------------------------------------------------------
1 | [bug|feat|docs|style|refactor|test|pkg|i18n] ...
2 | ...
3 |
4 | - Resolves: #XYZ
5 | - Related: #XYZ
6 | - Documentation: #XYZ
7 | - Releases: XYZ
8 |
--------------------------------------------------------------------------------
/src/leap/bitmask/_components.py:
--------------------------------------------------------------------------------
1 | """
2 | Enabled Modules in Bitmask.
3 | Change these values for builds of the client with only one module enabled.
4 | """
5 | HAS_EIP = True
6 | HAS_MAIL = True
7 |
--------------------------------------------------------------------------------
/pkg/osx/pre-inst.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Bitmask Post-Instalation script
3 | [[ -f /Library/LaunchDaemons/se.leap.bitmask-helper.plist ]] && launchctl unload /Library/LaunchDaemons/se.leap.bitmask-helper.plist
4 |
--------------------------------------------------------------------------------
/pkg/requirements-testing.pip:
--------------------------------------------------------------------------------
1 | nose
2 | nose-exclude
3 | nose-progressive
4 | mock
5 |
6 |
7 | unittest2 # TODO we should include this dep only for python2.6
8 | coverage
9 | pep8>=1.1
10 | flake8
11 | tox
12 |
--------------------------------------------------------------------------------
/data/resources/locale.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | ../translations/vi.qm
4 | ../translations/en_GB.qm
5 | ../translations/es.qm
6 |
7 |
8 |
--------------------------------------------------------------------------------
/data/bitmask.pro.template:
--------------------------------------------------------------------------------
1 | {header}
2 |
3 | SOURCES += {sources}
4 |
5 | FORMS += {forms}
6 |
7 | # where to generate ts files -- tx will pick from here
8 | # original file, english
9 | TRANSLATIONS += ts/en_US.ts
10 |
--------------------------------------------------------------------------------
/docs/dev/internals.rst:
--------------------------------------------------------------------------------
1 | .. _internals:
2 |
3 | Internals
4 | =========
5 |
6 | This section covers briefly the internal organization of Bitmask source tree.
7 |
8 | .. note::
9 |
10 | very unfinished.
11 |
12 | `TBD`
13 |
--------------------------------------------------------------------------------
/src/leap/bitmask/logs/__init__.py:
--------------------------------------------------------------------------------
1 | LOG_FORMAT = (u'[{record.time:%Y-%m-%d %H:%M:%S}] '
2 | u'{record.level_name: <8} - L#{record.lineno: <4} : '
3 | u'{record.module}:{record.func_name} - {record.message}')
4 |
--------------------------------------------------------------------------------
/docs/leap-flake8.pre-commit.hook:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Auto-check for pep8 so I don't check in bad code
3 | FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -e '\.py$')
4 |
5 | if [ -n "$FILES" ]; then
6 | flake8 -r $FILES
7 | fi
8 |
--------------------------------------------------------------------------------
/pkg/scripts/checkout_leap_versions.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | cat pkg/leap_versions.txt | while read line
3 | do
4 | package=$(echo $line | cut -f1 -d' ')
5 | tag=$(echo $line | cut -f2 -d' ')
6 | cd ../$package && git fetch origin && git checkout $tag
7 | done
8 |
--------------------------------------------------------------------------------
/pkg/version-template:
--------------------------------------------------------------------------------
1 | version_version = "xxx"
2 | full_revisionid = 'deadbeef'
3 |
4 |
5 | def get_versions(default={}, verbose=False):
6 | return {'version': version_version,
7 | 'full-revisionid': full_revisionid}
8 |
9 |
--------------------------------------------------------------------------------
/data/translations/README.rst:
--------------------------------------------------------------------------------
1 | data/translations
2 | =================
3 |
4 | We expect finished translations (i.e., those downloaded from ``transifex``) to live here.
5 |
6 | Translator object will pick them from here.
7 |
8 | (Actually, from the embedded locale_rc)
9 |
--------------------------------------------------------------------------------
/docs/config/files.rst:
--------------------------------------------------------------------------------
1 | .. _files:
2 |
3 | Configuration Files
4 | ===================
5 |
6 | This document covers the different configuration files used by Bitmask.
7 |
8 | leap.conf
9 | ---------
10 |
11 | TBD
12 |
13 | eip.json
14 | --------
15 |
16 | TBD
17 |
--------------------------------------------------------------------------------
/pkg/osx/post-inst.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Bitmask Post-Instalation script
3 |
4 | cp se.leap.bitmask-helper.plist /Library/LaunchDaemons/
5 | launchctl load /Library/LaunchDaemons/se.leap.bitmask-helper.plist
6 | cp tuntap_20150118.pkg /tmp/
7 | open /tmp/tuntap_20150118.pkg
8 |
--------------------------------------------------------------------------------
/src/leap/__init__.py:
--------------------------------------------------------------------------------
1 | # See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
2 | try:
3 | __import__('pkg_resources').declare_namespace(__name__)
4 | except ImportError:
5 | from pkgutil import extend_path
6 | __path__ = extend_path(__path__, __name__)
7 |
--------------------------------------------------------------------------------
/docs/api/leap.keymanager.tests.rst:
--------------------------------------------------------------------------------
1 | tests Package
2 | =============
3 |
4 | :mod:`test_keymanager` Module
5 | -----------------------------
6 |
7 | .. automodule:: leap.keymanager.tests.test_keymanager
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 |
--------------------------------------------------------------------------------
/docs/api/leap.services.eip.tests.rst:
--------------------------------------------------------------------------------
1 | tests Package
2 | =============
3 |
4 | :mod:`test_eipconfig` Module
5 | ----------------------------
6 |
7 | .. automodule:: leap.services.eip.tests.test_eipconfig
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 |
--------------------------------------------------------------------------------
/pkg/pyinst/trim-notes.txt:
--------------------------------------------------------------------------------
1 | 88M
2 | -------------
3 | libaudio.so.2
4 | libQt3Support.so.4
5 | libQtNetwork.so.4
6 | libtiff.so.5
7 | libQtSvg.so.4
8 | libQtXml.so.4
9 | libQtSql.so.4
10 | libQtOpenGL.so.4
11 | libnvidia-glcore.so.352.79
12 | PySide.QtNetwork.x86_64-linux-gnu.so
13 |
--------------------------------------------------------------------------------
/docker/bitmask-nightly.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "nightly",
3 | "tuf_repo": "",
4 | "bitmask_client": "develop",
5 | "soledad": "develop",
6 | "keymanager": "develop",
7 | "leap_mail": "develop",
8 | "leap_pycommon": "develop",
9 | "bitmask_launcher": "develop",
10 | "leap_assets": "master"
11 | }
12 |
--------------------------------------------------------------------------------
/pkg/launcher/Makefile:
--------------------------------------------------------------------------------
1 | CC = gcc
2 | CFLAGS = -g -Wall
3 | STRIP = strip
4 |
5 | default: bitmask
6 |
7 | bitmask.o: bitmask-launcher.c
8 | $(CC) $(CFLAGS) -c bitmask-launcher.c -o bitmask.o
9 |
10 | bitmask: bitmask.o
11 | $(CC) bitmask.o -o bitmask
12 | $(STRIP) bitmask
13 | clean:
14 | -rm -f bitmask.o
15 | -rm -f bitmask
16 |
--------------------------------------------------------------------------------
/thirdparty/openvpn/README:
--------------------------------------------------------------------------------
1 | OpenVPN binary, build scripts
2 | Works using a GCC minGW32 cross-compiler on Debian/Ubuntu
3 | Produces a working MS Windows executable
4 | openvpn.exe: PE32 executable (DLL) (console) Intel 80386, for MS Windows
5 | goes smooth for the 99%, might still need some slapping the flags around now and then
6 | -jrml
7 |
--------------------------------------------------------------------------------
/docs/dev/signals.rst:
--------------------------------------------------------------------------------
1 | Startup process
2 | ---------------
3 |
4 | mainwindow._login -> backend.run_provider_setup_checks
5 | [...provider bootstrap...]
6 | self._provider_config_loaded
7 | [...login...]
8 | authentication_finished
9 | _start_eip_bootstrap
10 | _maybe_start_eip
11 | _maybe_run_soledad_setup_checks
12 | soledadbootstrapper
13 |
--------------------------------------------------------------------------------
/pkg/linux/leap.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=0.1.0
3 | Encoding=UTF-8
4 | Name=EIP
5 | Comment=Anonymity and privacy
6 | Comment[en]=Anonymity and privacy
7 | Comment[es]=Anonimato y privacidad
8 | Comment[sv]=Anonymitet och avlyssningsskydd
9 | Exec=leap
10 | Terminal=false
11 | Type=Application
12 | Icon=leap.png
13 | Categories=Network;
14 |
--------------------------------------------------------------------------------
/data/ts/README.rst:
--------------------------------------------------------------------------------
1 | data/ts
2 | =======
3 |
4 | Here we expect the .ts files generated by typing::
5 |
6 | $ make translations
7 |
8 | Which will generate the sources (en_US)
9 |
10 | For uploading a source::
11 |
12 | $ tx push -s
13 |
14 | Translator should pick finished ``.qm`` files from ``data/translations`` instead of this folder.
15 |
--------------------------------------------------------------------------------
/pkg/windows/pyinstaller/zlib-mingw-shared.patch:
--------------------------------------------------------------------------------
1 | diff -Naur ../zlib-1.2.8-org/win32/Makefile.gcc ./win32/Makefile.gcc
2 | --- ../zlib-1.2.8-org/win32/Makefile.gcc 2008-10-23 17:44:36.000000000 +0000
3 | +++ ./win32/Makefile.gcc 2015-12-06 19:20:00.449471787 +0000
4 | @@ -37,6 +37,6 @@
5 | # Set to 1 if shared object needs to be installed
6 | #
7 | -SHARED_MODE=0
8 | +SHARED_MODE=1
9 |
10 | #LOC = -DASMV
--------------------------------------------------------------------------------
/pkg/generate_wheels.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Generate wheels for dependencies
3 | # Use at your own risk.
4 |
5 | if [ "$WHEELHOUSE" = "" ]; then
6 | WHEELHOUSE=$HOME/wheelhouse
7 | fi
8 |
9 | pip wheel --wheel-dir $WHEELHOUSE pip
10 | pip wheel --wheel-dir $WHEELHOUSE -r pkg/requirements.pip
11 | if [ -f pkg/requirements-testing.pip ]; then
12 | pip wheel --wheel-dir $WHEELHOUSE -r pkg/requirements-testing.pip
13 | fi
14 |
--------------------------------------------------------------------------------
/docs/leap-autopep8.post-commit.hook:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Auto pep8 correction as a post-commit hook.
4 | # Thanks to http://victorlin.me/posts/2014/02/05/auto-post-commit-pep8-correction
5 |
6 | echo "[+] running autopep8..."
7 | FILES=$(git diff HEAD^ HEAD --name-only --diff-filter=ACM | grep -e '\.py$')
8 |
9 | for f in $FILES
10 | do
11 | # auto pep8 correction
12 | autopep8 --in-place $f
13 | done
14 |
15 | git status
16 |
--------------------------------------------------------------------------------
/pkg/osx/README.rst:
--------------------------------------------------------------------------------
1 | environment setup in osx
2 | ========================
3 |
4 | Requirements
5 | ============
6 |
7 | pyinstaller
8 | -----------
9 | You need at least version 3.0.
10 |
11 | pyside
12 | ----------
13 | use repo branch kalikaneko/PySide (has --standalone patch)
14 |
15 | python2.7 setup.py bdist_wheel --version=1.2.2 --standalone
16 |
17 | Blockers
18 | ========
19 | #7321 - requests bug in merge_environment_settings
20 |
--------------------------------------------------------------------------------
/pkg/windows/installer/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM debian:jessie
2 | MAINTAINER paixu@0xn0.de
3 | RUN apt-get update
4 |
5 | ######
6 | # install packages required to build
7 |
8 | RUN apt-get -y install \
9 | nsis
10 | WORKDIR /var/src/bitmask/pkg/windows
11 |
12 | ######
13 | # set a specific user
14 | # needs external tuning of the /var/dist rights!
15 | # RUN useradd installer
16 | # USER installer
17 | ENTRYPOINT ["/var/src/bitmask/pkg/windows/installer-build.sh"]
--------------------------------------------------------------------------------
/docs/dev/resources.rst:
--------------------------------------------------------------------------------
1 | .. _resources:
2 |
3 | PySide Resource files
4 | =====================
5 |
6 | Compiling resource/ui files
7 | ---------------------------
8 |
9 | You should refresh resource/ui files every time you change an image or a resource/ui (.ui / .qc). From the root folder::
10 |
11 | % make ui
12 | % make resources
13 |
14 | As there are some tests to guard against unwanted resource updates, you will have to update the resource hash in those failing tests.
15 |
--------------------------------------------------------------------------------
/src/leap/bitmask/crypto/tests/test_provider.json:
--------------------------------------------------------------------------------
1 | {
2 | "api_uri": "https://localhost:8443",
3 | "api_version": "1",
4 | "ca_cert_fingerprint": "SHA256: 0f17c033115f6b76ff67871872303ff65034efe7dd1b910062ca323eb4da5c7e",
5 | "ca_cert_uri": "https://bitmask.net/ca.crt",
6 | "default_language": "en",
7 | "domain": "example.com",
8 | "enrollment_policy": "open",
9 | "name": {
10 | "en": "Bitmask"
11 | },
12 | "services": [
13 | "openvpn"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include pkg/*
2 | include docs/*
3 | recursive-include docs api/* config/* dev/* man/* pkg/* testers/* user/*
4 | prune docs/_build
5 | prune docs/covhtml
6 | include versioneer.py
7 | include LICENSE
8 | include README.rst
9 | include CHANGELOG.rst
10 | include src/leap/bitmask/util/reqs.txt
11 | include src/leap/bitmask/crypto/tests/wrongcert.pem
12 |
13 | include src/leap/bitmask/gui/ui_*.py
14 | include src/leap/bitmask/gui/*_rc.py
15 | include src/leap/bitmask/_version.py
16 |
--------------------------------------------------------------------------------
/pkg/launcher/README.rst:
--------------------------------------------------------------------------------
1 | bitmask-launcher.c
2 | ------------------
3 |
4 | A small, portable launcher for bitmask bundles.
5 |
6 | Problem that solves
7 | -------------------
8 | PyInstaller bundles leave everything (libs, data and the main binary) in a
9 | single folder. In a case like ours, there are too many files cluttering this
10 | top-most folder.
11 |
12 | We wanted to have a cleaner folder, with an obviously clickable entrypoint, that
13 | calls the binary that hides in an inferior folder.
14 |
15 |
--------------------------------------------------------------------------------
/pkg/tools/with_venvwrapper.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #Wraps a command in a virtualenwrapper passed as first argument.
4 | #Example:
5 | #with_virtualenvwrapper.sh leap-bitmask ./run_tests.sh
6 |
7 | wd=`pwd`
8 | alias pyver='python -c "import $1;print $1.__path__[0]; print $1.__version__;"'
9 |
10 | source `which virtualenvwrapper.sh`
11 | echo "Activating virtualenv " $1
12 | echo "------------------------------------"
13 | workon $1
14 | cd $wd
15 | echo "running version: " `pyver leap.bitmask`
16 | $2 $3 $4 $5
17 |
--------------------------------------------------------------------------------
/pkg/osx/bitmask.pf.conf:
--------------------------------------------------------------------------------
1 | default_device = "en99"
2 |
3 | set block-policy drop
4 | set skip on lo0
5 |
6 | # block all traffic on default device
7 | block out on $default_device all
8 |
9 | # allow traffic to gateways
10 | pass out on $default_device to
11 |
12 | # allow traffic to local networks over the default device
13 | pass out on $default_device to $default_device:network
14 |
15 | # block all DNS, except to the gateways
16 | block out proto udp to any port 53
17 | pass out proto udp to port 53
18 |
--------------------------------------------------------------------------------
/pkg/launcher/bitmask-launcher.c:
--------------------------------------------------------------------------------
1 | /*
2 | * bitmask-launcher.c
3 | *
4 | * part of the bitmask bundle.
5 | * execute main entrypoint in a child folder inside the bundle.
6 | *
7 | * (c) LEAP Encryption Access Project, 2016.
8 | * License: GPL.
9 | *
10 | */
11 |
12 | #include
13 | #include
14 |
15 | char* const bitmask_path = "lib";
16 | char* const entrypoint = "bitmask";
17 |
18 | int main(int argc, char *argv[])
19 | {
20 | argv[0] = entrypoint;
21 | chdir(bitmask_path);
22 | execv(entrypoint, argv);
23 | }
24 |
--------------------------------------------------------------------------------
/pkg/windows/Makefile:
--------------------------------------------------------------------------------
1 | .PHONY: all pkg installer openvpn pyinstaller
2 | all:
3 | docker-compose build
4 | $(MAKE) pkg
5 |
6 | pkg:
7 | $(MAKE) openvpn
8 | $(MAKE) pyinstaller
9 | $(MAKE) installer
10 |
11 | pyinstaller:
12 | docker-compose run --rm pyinstaller
13 |
14 | openvpn:
15 | docker-compose run --rm openvpn
16 |
17 | installer:
18 | docker-compose run --rm installer
19 |
20 | clean:
21 | docker rmi windows_pyinstaller
22 | docker rmi windows_openvpn
23 | docker rmi windows_installer
24 | rm -rf ../../dist/*.exe
25 | rm -rf ../../build/*
--------------------------------------------------------------------------------
/data/resources/loggerwindow.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | ../images/pastebin.png
4 | ../images/oxygen-icons/edit-bomb.png
5 | ../images/oxygen-icons/document-save-as.png
6 | ../images/oxygen-icons/dialog-information.png
7 | ../images/oxygen-icons/script-error.png
8 | ../images/oxygen-icons/dialog-error.png
9 | ../images/oxygen-icons/dialog-information.png
10 | ../images/oxygen-icons/dialog-warning.png
11 |
12 |
13 |
--------------------------------------------------------------------------------
/changes/VERSION_COMPAT:
--------------------------------------------------------------------------------
1 | #################################################
2 | # This file keeps track of the recent changes
3 | # introduced in internal leap dependencies.
4 | # Add your changes here so we can properly update
5 | # requirements.pip during the release process.
6 | # (leave header when resetting)
7 | #
8 | # When bumping it during the release cycle
9 | # remember to update also pkg/leap_versions.txt
10 | #################################################
11 | #
12 | # BEGIN DEPENDENCY LIST -------------------------
13 | # leap.foo.bar>=x.y.z
14 |
15 | leap.keymanager >= 0.5.1
16 |
--------------------------------------------------------------------------------
/AUTHORS:
--------------------------------------------------------------------------------
1 | Tomás Touceda
2 | Ivan Alejandro
3 | Kali Kaneko
4 | drebs
5 | antialias
6 | elijah
7 | Ruben Pollan
8 | k clair
9 | Jaromil
10 | kwadronaut
11 | Duda Dornelles
12 | Bruno Wagner Goncalves
13 | Parménides GV
14 | Neissi Lima
15 | Micah Anderson
16 | irregulator
17 |
--------------------------------------------------------------------------------
/docs/api/leap.services.rst:
--------------------------------------------------------------------------------
1 | services Package
2 | ================
3 |
4 | :mod:`abstractbootstrapper` Module
5 | ----------------------------------
6 |
7 | .. automodule:: leap.services.abstractbootstrapper
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`tx` Module
13 | ----------------
14 |
15 | .. automodule:: leap.services.tx
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | Subpackages
21 | -----------
22 |
23 | .. toctree::
24 |
25 | leap.services.eip
26 | leap.services.mail
27 | leap.services.soledad
28 |
29 |
--------------------------------------------------------------------------------
/docs/pkg/debian.rst:
--------------------------------------------------------------------------------
1 | .. _debian:
2 |
3 | Debian
4 | ======
5 |
6 | This section documents all related to the Debian package.
7 |
8 |
9 | Dependencies
10 | ------------
11 |
12 | * ``openvpn``
13 | * ``python-pyside``
14 | * ``python-crypto``
15 | * ``python-setuptools``
16 | * ``python-requests``
17 | * ``python-openssl``
18 |
19 | .. note::
20 | these need a version that is not found in the current debian stable or in ubuntu 12.04.
21 | They will be packaged... soon.
22 |
23 | * ``python-keyring``
24 |
25 | For tests
26 | ^^^^^^^^^
27 | * ``python-nose``, ``python-mock``, ``python-coverage``
28 |
29 |
--------------------------------------------------------------------------------
/pkg/windows/openvpn/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM debian:jessie
2 | MAINTAINER paixu@0xn0.de
3 |
4 | ######
5 | # install packages required to build
6 | # https-transport: winehq deb
7 | # winbind: pip install keyring (requirements.pip) needs this somehow
8 | # git-core: clone rw copy of repo and build specific commit
9 | # imagemagick: convert png to ico-files
10 | RUN apt-get update && apt-get -y install \
11 | unzip bzip2 \
12 | curl wget \
13 | apt-transport-https \
14 | man2html \
15 | git-core \
16 | build-essential autoconf mingw-w64
17 | ENTRYPOINT ["/var/src/bitmask/pkg/windows/openvpn-build.sh"]
--------------------------------------------------------------------------------
/docs/api/leap.config.rst:
--------------------------------------------------------------------------------
1 | config Package
2 | ==============
3 |
4 | :mod:`leapsettings` Module
5 | --------------------------
6 |
7 | .. automodule:: leap.config.leapsettings
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`provider_spec` Module
13 | ---------------------------
14 |
15 | .. automodule:: leap.config.provider_spec
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`providerconfig` Module
21 | ----------------------------
22 |
23 | .. automodule:: leap.config.providerconfig
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 |
--------------------------------------------------------------------------------
/pkg/windows/bitmask_client_product.nsh:
--------------------------------------------------------------------------------
1 | !define APPNAME "Bitmask"
2 | !define COMPANYNAME "leap.se"
3 | !define DESCRIPTION "With Bitmask VPN, all your traffic is securely routed through your provider before it is decrypted and sent on to the open internet."
4 | # These will be displayed by the "Click here for support information" link in "Add/Remove Programs"
5 | # It is possible to use "mailto:" links in here to open the email client
6 | !define HELPURL "https://bitmask.net/en/help" # "Support Information" link
7 | !define UPDATEURL "https://bitmask.net/en/install" # "Product Updates" link
8 | !define ABOUTURL "https://bitmask.net/" # "Publisher" link
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | [build_sphinx]
2 | source-dir = docs/
3 | build-dir = docs/_build
4 | all_files = 1
5 |
6 | [upload_sphinx]
7 | upload-dir = docs/_build/html
8 | repository = https://pypi.python.org/pypi
9 |
10 | [pep8]
11 | ignore = E731
12 | exclude = *_rc.py,ui_*,_version.py,docker,build,docs,pkg,versioneer.py,_binaries.py,pinned_*
13 |
14 | [flake8]
15 | ignore = E731
16 | exclude = *_rc.py,ui_*,_version.py,docker,build,docs,pkg,versioneer.py,_binaries.py
17 |
18 | [versioneer]
19 | VCS = git
20 | style = pep440
21 | versionfile_source = src/leap/bitmask/_version.py
22 | versionfile_build = leap/bitmask/_version.py
23 | tag_prefix =
24 |
--------------------------------------------------------------------------------
/docs/api/leap.crypto.tests.rst:
--------------------------------------------------------------------------------
1 | tests Package
2 | =============
3 |
4 | :mod:`tests` Package
5 | --------------------
6 |
7 | .. automodule:: leap.crypto.tests
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`fake_provider` Module
13 | ---------------------------
14 |
15 | .. automodule:: leap.crypto.tests.fake_provider
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`test_srpregister` Module
21 | ------------------------------
22 |
23 | .. automodule:: leap.crypto.tests.test_srpregister
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 |
--------------------------------------------------------------------------------
/docs/api/leap.platform_init.rst:
--------------------------------------------------------------------------------
1 | platform_init Package
2 | =====================
3 |
4 | :mod:`platform_init` Package
5 | ----------------------------
6 |
7 | .. automodule:: leap.platform_init
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`initializers` Module
13 | --------------------------
14 |
15 | .. automodule:: leap.platform_init.initializers
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`locks` Module
21 | -------------------
22 |
23 | .. automodule:: leap.platform_init.locks
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 |
--------------------------------------------------------------------------------
/docs/api/leap.services.mail.rst:
--------------------------------------------------------------------------------
1 | mail Package
2 | ============
3 |
4 | :mod:`smtpbootstrapper` Module
5 | ------------------------------
6 |
7 | .. automodule:: leap.services.mail.smtpbootstrapper
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`smtpconfig` Module
13 | ------------------------
14 |
15 | .. automodule:: leap.services.mail.smtpconfig
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`smtpspec` Module
21 | ----------------------
22 |
23 | .. automodule:: leap.services.mail.smtpspec
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 |
--------------------------------------------------------------------------------
/pkg/windows/pyinstaller/pysqlcipher_setup.py.patch:
--------------------------------------------------------------------------------
1 | --- setup.py.org 2014-11-12 16:38:07.000000000 +0000
2 | +++ setup.py 2016-01-23 14:08:13.255261595 +0000
3 | @@ -192,10 +192,7 @@
4 | ext.define_macros.append(("inline", "__inline"))
5 |
6 | # Configure the linker
7 | - ext.extra_link_args.append("libeay32.lib")
8 | - ext.extra_link_args.append(
9 | - "/LIBPATH:" + os.path.join(openssl, "lib")
10 | - )
11 | + ext.extra_link_args.append("-lcrypto")
12 | else:
13 | ext.extra_link_args.append("-lcrypto")
14 |
15 |
--------------------------------------------------------------------------------
/docs/dev/automating_login.rst:
--------------------------------------------------------------------------------
1 | .. _automating_login:
2 |
3 | Automating login
4 | ================
5 |
6 | There's an annoying bug with python keyring module, that makes the 'remember
7 | login' checkbox non functional.
8 |
9 | That, and the need to script end-to-end tests with the client inside a docker
10 | environment, made us put a mechanism to pass credentials via environment
11 | variables.
12 |
13 | To automate login, set BITMASK_CREDENTIALS env var::
14 |
15 | BITMASK_CREDENTIALS=/tmp/secrets.conf bitmask --debug
16 |
17 | where the pointed file looks like this::
18 |
19 | [Credentials]
20 | username = user@provider
21 | password = mypass
22 |
--------------------------------------------------------------------------------
/docs/api/leap.services.soledad.rst:
--------------------------------------------------------------------------------
1 | soledad Package
2 | ===============
3 |
4 | :mod:`soledadbootstrapper` Module
5 | ---------------------------------
6 |
7 | .. automodule:: leap.services.soledad.soledadbootstrapper
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`soledadconfig` Module
13 | ---------------------------
14 |
15 | .. automodule:: leap.services.soledad.soledadconfig
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`soledadspec` Module
21 | -------------------------
22 |
23 | .. automodule:: leap.services.soledad.soledadspec
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 |
--------------------------------------------------------------------------------
/docker/debian/bitmask-on-docker.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Helper script to install, run and do a screenshot of bitmask
3 |
4 | # You can use this as follows:
5 | # $ docker run -t -i --rm -v `pwd`:/host/ ubuntu:14.04 /bin/bash
6 | # $ cd /host/
7 | # $ ./bitmask-on-docker.sh stable
8 |
9 | [[ -z $1 ]] && exit 1
10 |
11 | ./apt-bitmask.sh $1 # this does an `apt-get update`
12 | apt-get -y install xinit xvfb imagemagick lxpolkit
13 |
14 | startx -- `which Xvfb` :1 -screen 0 1024x768x24 &
15 | sleep 1
16 |
17 | DISPLAY=:1 lxpolkit &
18 | sleep 0.5 # bitmask needs polkit to work
19 |
20 | DISPLAY=:1 bitmask &
21 | sleep 2 # wait for bitmask to start
22 |
23 | DISPLAY=:1 import -window root bitmask.png
24 |
--------------------------------------------------------------------------------
/docs/api/leap.crypto.rst:
--------------------------------------------------------------------------------
1 | crypto Package
2 | ==============
3 |
4 | :mod:`constants` Module
5 | -----------------------
6 |
7 | .. automodule:: leap.crypto.constants
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`srpauth` Module
13 | ---------------------
14 |
15 | .. automodule:: leap.crypto.srpauth
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`srpregister` Module
21 | -------------------------
22 |
23 | .. automodule:: leap.crypto.srpregister
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 | Subpackages
29 | -----------
30 |
31 | .. toctree::
32 |
33 | leap.crypto.tests
34 |
35 |
--------------------------------------------------------------------------------
/docker/debian/run-docker-for-bitmask.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # NOTE: to get X11 socket forwarding to work we need this
3 | xhost local:root
4 |
5 | docker run --rm -it \
6 | --net host \
7 | --privileged \
8 | -v /tmp/.X11-unix:/tmp/.X11-unix \
9 | -e DISPLAY=unix$DISPLAY \
10 | -v `pwd`:/host/ \
11 | -p 1984:1984 -p 2013:2013 \
12 | ubuntu:vivid bash
13 |
14 | # NOTE: what to do next?
15 | # Install bitmask package:
16 | # $ apt-bitmask.sh stable
17 | # Install polkit agent (bitmask needs it):
18 | # $ apt-get install lxpolkit
19 | # Run polkit in background:
20 | # $ lxpolkit & # this will show you a message like: 'No session for pid 5801', ignore it
21 | # Run bitmask:
22 | # $ bitmask -d
23 |
--------------------------------------------------------------------------------
/pkg/linux/pyinst-notes.txt:
--------------------------------------------------------------------------------
1 | hacks
2 | -----
3 | **because nobody's perfect, at least the first time**
4 |
5 | missing osrandom_engine header
6 | ===============================
7 |
8 | 1. extract osrandom_engine.* from original cryptography tarball:
9 |
10 | cp /src/cryptography/hazmat/bindings/openssl/src/osrandom_engine.h /tmp
11 | cp /src/cryptography/hazmat/bindings/openssl/src/osrandom_engine.c /tmp
12 |
13 | cd dist/bitmask
14 | mkdir -p cryptography/hazmat/bindings/openssl/src
15 | cp /tmp/osrandom_engine.* cryptography/hazmat/bindings/openssl/src
16 |
17 | missing dbschema.sql
18 | ====================
19 | mkdir -p u1db/backends
20 | cp ~VIRTUAL_ENV/lib/python2.7/site-packages/u1db/backends/dbschema.sql u1db/backends
21 |
--------------------------------------------------------------------------------
/pkg/requirements.pip:
--------------------------------------------------------------------------------
1 | # in order of addition to the project.
2 | # try not to change the ordering.
3 | #
4 | # PySide -- It's a requirement indeed, but
5 | # it gives troubles when operating inside virtualenvs.
6 | # Use LEAP_VENV_SKIP_PYSIDE to avoid installing it!
7 |
8 | argparse
9 | requests>=1.1.0
10 | srp>=1.0.2
11 | pyopenssl
12 | coloredlogs
13 |
14 | psutil
15 |
16 | ipaddr
17 | twisted
18 | python-daemon==1.6.1 # this should not be needed for Windows.
19 | keyring
20 | zope.proxy
21 |
22 | # You will want to install this bundled if you don't have sodium in your system:
23 | # pip install pyzmq --install-option="--zmq=bundled"
24 | pyzmq
25 | txzmq
26 |
27 | # Remove this when u1db fixes its dependency on oauth
28 | oauth
29 |
30 | logbook>=0.7.0
31 |
--------------------------------------------------------------------------------
/pkg/windows/TODO:
--------------------------------------------------------------------------------
1 | TODO
2 | ====
3 |
4 | fix python-code (0.9.1) that fails on windows:
5 | - fix the race condition for the backend/frontend startup.
6 | spawning the backend takes time. with a introduced 15s timeout
7 | it was possible to ensure the backend is up. It would be ideal
8 | if the backend could signal the app to continue loading the frontend
9 | - fix the ~/leap/events/zmq_certificates/public_keys/server.key
10 | - fix logger (& remove hack in pyinstaller-build.sh:228)
11 | - fix pysqlcipher (/LIB:,https get not working in setup.py, remove hack
12 | in pyinstaller-build:164)
13 | - merge bitmask_root from https://github.com/alirezamirzaeiyan/bitmask-root
14 |
15 | create similar infrastructure for osx dmg, preferably run on osx for compressed dmg
--------------------------------------------------------------------------------
/docs/api/leap.rst:
--------------------------------------------------------------------------------
1 | leap Package
2 | ============
3 |
4 | :mod:`leap` Package
5 | -------------------
6 |
7 | .. automodule:: leap.__init__
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`_version` Module
13 | ----------------------
14 |
15 | .. automodule:: leap._version
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`app` Module
21 | -----------------
22 |
23 | .. automodule:: leap.app
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 | Subpackages
29 | -----------
30 |
31 | .. toctree::
32 |
33 | leap.config
34 | leap.crypto
35 | leap.gui
36 | leap.keymanager
37 | leap.platform_init
38 | leap.services
39 | leap.util
40 |
41 |
--------------------------------------------------------------------------------
/pkg/pyinst/README.rst:
--------------------------------------------------------------------------------
1 | Building da bundles
2 | --------------------
3 | Because, you know, bundles are cool. Who needs a decent package manager nowadays? .
4 |
5 | You need a couple of things in your virtualenv:
6 |
7 | - All the dependencies. A sumo tarball is probably a good idea.
8 | - PyInstaller. Version 3 or higher.
9 | - A PySide build. While the postmkenv.sh hack is good enough for
10 | developing, you will need a wheel built with --standalone flag.
11 | See
12 | http://pyside.readthedocs.org/en/latest/building/linux.html#building-pyside-distribution::
13 |
14 | $ python2.7 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4 --standalone
15 |
16 | (since this takes a while, you can probably grab the already built wheel from
17 | the leap servers).
18 |
--------------------------------------------------------------------------------
/src/leap/bitmask/crypto/tests/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # __init__.py
3 | # Copyright (C) 2013 LEAP
4 | #
5 | # This program is free software: you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation, either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 |
--------------------------------------------------------------------------------
/pkg/scripts/monitor_resource.zsh:
--------------------------------------------------------------------------------
1 | #!/bin/zsh
2 | if (( ! $# )); then
3 | echo "Usage: $0:t " >&2
4 | return 1;
5 | fi
6 |
7 | OUT="$1-usage.data"
8 | GRAPH="bitmask-resources.png"
9 | MAX=150
10 | let "ticks=$2*60/3"
11 | echo "cpu mem" >> $OUT
12 | for i in {1..$ticks}; do;
13 | cpu=$(ps -p $1 -o pcpu | grep -v %)
14 | mem=$(ps wuh -p $1 | awk '{print $4}')
15 | echo "$cpu $mem" >> $OUT;
16 | sleep 3;
17 | echo $i / $ticks;
18 | done;
19 |
20 | gnuplot -e "set term dumb; \
21 | set key outside; set yrange [0:$MAX]; \
22 | plot for [col=1:2] '$OUT' using 0:col title columnheader s c"
23 |
24 | gnuplot -e "set term png; set output '$GRAPH'; \
25 | set key outside; set yrange [0:$MAX]; \
26 | plot for [col=1:2] '$OUT' using 0:col with lines title columnheader"
27 |
--------------------------------------------------------------------------------
/docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Ivan Alejandro
4 |
5 | RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
6 | g++ \
7 | git \
8 | libffi-dev \
9 | libsqlite3-dev \
10 | libssl-dev \
11 | libzmq-dev \
12 | openvpn \
13 | pyside-tools \
14 | python-dev \
15 | python-openssl \
16 | python-pip \
17 | python-pyside \
18 | python-setuptools \
19 | python-virtualenv \
20 | make realpath lxpolkit policykit-1 iptables && \
21 | apt-get clean && rm -rf /var/lib/apt/lists/*
22 |
23 |
24 | RUN mkdir -p /bitmask
25 | WORKDIR /bitmask
26 |
27 | COPY leap_bootstrap.sh /bitmask/
28 |
29 | VOLUME ["/data/"]
30 |
31 | EXPOSE 1984 2013
32 | ENTRYPOINT ["/bitmask/leap_bootstrap.sh"]
33 |
--------------------------------------------------------------------------------
/pkg/scripts/filter-bitmask-deps:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | """
4 | Filter bitmask dependencies.
5 |
6 | Usage: pipdeptree | filter-bitmask-deps
7 | """
8 | import fileinput
9 |
10 | TARGET = "leap.bitmask"
11 |
12 |
13 | def get_bitmask_deps(dep_lines):
14 | res = []
15 | begin = False
16 | for dep in dep_lines:
17 | if dep.startswith(TARGET):
18 | begin = True
19 | res.append(dep)
20 | continue
21 | elif dep.startswith(' ') and begin:
22 | res.append(dep)
23 | continue
24 | if begin:
25 | return res
26 |
27 |
28 | if __name__ == "__main__":
29 | lines = []
30 | for line in fileinput.input():
31 | lines.append(line)
32 |
33 | bitmask_deps = get_bitmask_deps(lines)
34 | for line in bitmask_deps:
35 | print line[:-1]
36 |
--------------------------------------------------------------------------------
/pkg/tools/profile.mk:
--------------------------------------------------------------------------------
1 | do_cprofile:
2 | python -m cProfile -o bitmask.cprofile src/leap/bitmask/app.py --debug -N
3 |
4 | view_cprofile:
5 | cprofilev bitmask.cprofile
6 |
7 | mailprofile:
8 | gprof2dot -f pstats /tmp/leap_mail_profile.pstats -n 0.2 -e 0.2 | dot -Tpdf -o /tmp/leap_mail_profile.pdf
9 |
10 | do_lineprof:
11 | LEAP_PROFILE_IMAPCMD=1 LEAP_MAIL_MANHOLE=1 kernprof.py -l src/leap/bitmask/app.py --debug
12 |
13 | do_lineprof_offline:
14 | LEAP_PROFILE_IMAPCMD=1 LEAP_MAIL_MANHOLE=1 kernprof.py -l src/leap/bitmask/app.py --offline --debug -N
15 |
16 | view_lineprof:
17 | @python -m line_profiler app.py.lprof | $(EDITOR) -
18 |
19 | resource_graph:
20 | #./pkg/scripts/monitor_resource.zsh `ps aux | grep app.py | head -1 | awk '{print $$2}'` $(RESOURCE_TIME)
21 | ./pkg/scripts/monitor_resource.zsh `pgrep bitmask` $(RESOURCE_TIME)
22 | display bitmask-resources.png
23 |
24 |
--------------------------------------------------------------------------------
/src/leap/bitmask/util/constants.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # constants.py
3 | # Copyright (C) 2013 LEAP
4 | #
5 | # This program is free software: you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation, either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 |
18 | SIGNUP_TIMEOUT = 5
19 | REQUEST_TIMEOUT = 15
20 | PASTEBIN_API_DEV_KEY = "09563100642af6085d641f749a1922b4"
21 |
--------------------------------------------------------------------------------
/changes/next-changelog.rst:
--------------------------------------------------------------------------------
1 | 0.10.0 - xxx
2 | +++++++++++++++++++++++++++++++
3 |
4 | Please add lines to this file, they will be moved to the CHANGELOG.rst during
5 | the next release.
6 |
7 | There are two template lines for each category, use them as reference.
8 |
9 | I've added a new category `Misc` so we can track doc/style/packaging stuff.
10 |
11 | Features
12 | ~~~~~~~~
13 | - `#1234 `_: Description of the new feature corresponding with issue #1234.
14 | - New feature without related issue number.
15 |
16 | Bugfixes
17 | ~~~~~~~~
18 | - `#1235 `_: Description for the fixed stuff corresponding with issue #1235.
19 | - Bugfix without related issue number.
20 |
21 | Misc
22 | ~~~~
23 | - `#1236 `_: Description of the new feature corresponding with issue #1236.
24 | - Some change without issue number.
25 |
26 | Known Issues
27 | ~~~~~~~~~~~~
28 |
--------------------------------------------------------------------------------
/pkg/linux/bitmask-launcher:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # The Bitmask Launcher
3 | # (c) 2015 - The LEAP Encryption Access Project
4 |
5 | [ -f libQtCore.so.4 ] || ln -s libQtCore.so.4.orig libQtCore.so.4
6 | [ -f libQtGui.so.4 ] || ln -s libQtGui.so.4.orig libQtGui.so.4
7 | [ -f libQtNetwork.so.4 ] || ln -s libQtNetwork.so.4.orig libQtNetwork.so.4
8 | [ -f libQtSvg.so.4 ] || ln -s libQtSvg.so.4.orig libQtSvg.so.4
9 | [ -f libQtWebKit.so.4 ] || ln -s libQtWebKit.so.4.orig libQtWebKit.so.4
10 | [ -f libQtXmlPatterns.so.4 ] || ln -s libQtXmlPatterns.so.4.orig libQtXmlPatterns.so.4
11 | [ -f libQtXml.so.4 ] || ln -s libQtXml.so.4.orig libQtXml.so.4
12 |
13 | cat /etc/os-release | grep ID | grep -i ubuntu && \
14 | unlink libQtCore.so.4 && \
15 | unlink libQtGui.so.4 && \
16 | unlink libQtNetwork.so.4 && \
17 | unlink libQtSvg.so.4 && \
18 | unlink libQtWebKit.so.4 && \
19 | unlink libQtXmlPatterns.so.4 && \
20 | unlink libQtXml.so.4
21 |
22 | ./bitmask-app --standalone "$@"
23 |
--------------------------------------------------------------------------------
/pkg/requirements-dev.pip:
--------------------------------------------------------------------------------
1 | # ------------------------------------
2 | # -- useful tools that you probably --
3 | # -- will want during development --
4 | # ------------------------------------
5 |
6 | wheel
7 | sphinx
8 | ipdb
9 | pipdeptree
10 |
11 | # ---------------------------
12 | # -- external requirements --
13 | # -- during development --
14 | # ---------------------------
15 | #
16 | # For temporary work, you can point this to your developer repo.
17 | # consolidated changes will be pushed to pypi and then added
18 | # to the main requirements.pip
19 | #
20 | # NOTE: you have to run pip install -r pkg/requirements.pip for pip
21 | # to install it. (do it after python setup.py develop and it
22 | # will only install this)
23 | #
24 |
25 | # in case you want to install a package from a git source, you can use this:
26 | # Useful to test pre-release branches together.
27 | #-e git+https://github.com/leapcode/leap_pycommon.git@develop#egg=leap.common
28 |
--------------------------------------------------------------------------------
/pkg/osx/se.leap.bitmask-helper.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | StandardOutPath
6 | bitmask-helper.log
7 | StandardErrorPath
8 | bitmask-helper-err.log
9 | GroupName
10 | daemon
11 | KeepAlive
12 |
13 | SuccessfulExit
14 |
15 |
16 | Label
17 | se.leap.bitmask-helper
18 | ProgramArguments
19 |
20 | /Applications/Bitmask.app/Contents/Resources/bitmask-helper/bitmask-helper
21 |
22 | RunAtLoad
23 |
24 | WorkingDirectory
25 | /Applications/Bitmask.app/Contents/Resources/bitmask-helper/
26 | SessionCreate
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/pkg/scripts/check_code.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Escape code
4 | esc=`echo -en "\033"`
5 |
6 | # Set colors
7 | cc_green="${esc}[0;32m"
8 | cc_red="${esc}[0;31m"
9 | cc_normal=`echo -en "${esc}[m\017"`
10 |
11 |
12 | [[ -z "$1" ]] && WHERE='src/leap/bitmask' || WHERE=$1
13 |
14 | PEP8="pep8 --ignore=E202,W602 --exclude=*_rc.py,ui_*,_version.py $WHERE"
15 | echo "${cc_green}$PEP8${cc_normal}"
16 | $PEP8
17 |
18 | echo
19 | FLAKE8="flake8 --ignore=E202,W602 --exclude=*_rc.py,ui_*,_version.py $WHERE"
20 | echo "${cc_green}$FLAKE8${cc_normal}"
21 | $FLAKE8
22 |
23 | echo
24 | echo "${cc_green}Looking for 'print's, no prints in code, use logging/twisted.log.${cc_normal}"
25 | echo `git grep -n "print " | wc -l` 'coincidences.'
26 |
27 | echo
28 | echo "${cc_green}Grepping for 'pdb' code left behind.${cc_normal}"
29 | git grep -n "pdb"
30 |
31 | echo
32 | echo "${cc_green}Grepping for 'XXX|TODO|FIXME|NOTE|HACK'.${cc_normal}"
33 | echo `git grep -E "XXX|TODO|FIXME|NOTE|HACK" | wc -l` 'coincidences.'
34 |
--------------------------------------------------------------------------------
/pkg/pyinst/bitmask_cli.spec:
--------------------------------------------------------------------------------
1 | # -*- mode: python -*-
2 |
3 | block_cipher = None
4 |
5 |
6 | a = Analysis(['bitmask_cli'],
7 | pathex=['/home/kali/leap/bitmask_client/pkg/pyinst'],
8 | binaries=None,
9 | datas=None,
10 | hiddenimports=[],
11 | hookspath=[],
12 | runtime_hooks=[],
13 | excludes=[],
14 | win_no_prefer_redirects=False,
15 | win_private_assemblies=False,
16 | cipher=block_cipher)
17 | pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
18 | exe = EXE(pyz,
19 | a.scripts,
20 | exclude_binaries=True,
21 | name='bitmask_cli',
22 | debug=False,
23 | strip=False,
24 | upx=True,
25 | console=True )
26 | coll = COLLECT(exe,
27 | a.binaries,
28 | a.zipfiles,
29 | a.datas,
30 | strip=False,
31 | upx=True,
32 | name='bitmask_cli')
33 |
--------------------------------------------------------------------------------
/pkg/pyinst/bitmaskd.spec:
--------------------------------------------------------------------------------
1 | # -*- mode: python -*-
2 |
3 | block_cipher = None
4 |
5 |
6 | a = Analysis(['bitmaskd'],
7 | pathex=['/home/kali/leap/bitmask_client/pkg/pyinst'],
8 | binaries=None,
9 | datas=None,
10 | hiddenimports=[],
11 | hookspath=[],
12 | runtime_hooks=[],
13 | excludes=[],
14 | win_no_prefer_redirects=False,
15 | win_private_assemblies=False,
16 | cipher=block_cipher)
17 | pyz = PYZ(a.pure, a.zipped_data,
18 | cipher=block_cipher)
19 | exe = EXE(pyz,
20 | a.scripts,
21 | exclude_binaries=True,
22 | name='bitmaskd',
23 | debug=False,
24 | strip=False,
25 | upx=True,
26 | console=True )
27 | coll = COLLECT(exe,
28 | a.binaries,
29 | a.zipfiles,
30 | a.datas,
31 | strip=False,
32 | upx=True,
33 | name='bitmaskd')
34 |
--------------------------------------------------------------------------------
/src/leap/bitmask/platform_init/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # __init__.py
3 | # Copyright (C) 2013 LEAP
4 | #
5 | # This program is free software: you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation, either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 |
18 | """
19 | System constants
20 | """
21 | import platform
22 |
23 | _system = platform.system()
24 |
25 | IS_LINUX = _system == "Linux"
26 | IS_MAC = _system == "Darwin"
27 | IS_UNIX = IS_MAC or IS_LINUX
28 | IS_WIN = _system == "Windows"
29 |
--------------------------------------------------------------------------------
/docs/api/leap.keymanager.rst:
--------------------------------------------------------------------------------
1 | keymanager Package
2 | ==================
3 |
4 | :mod:`keymanager` Package
5 | -------------------------
6 |
7 | .. automodule:: leap.keymanager
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`errors` Module
13 | --------------------
14 |
15 | .. automodule:: leap.keymanager.errors
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`gpg` Module
21 | -----------------
22 |
23 | .. automodule:: leap.keymanager.gpg
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 | :mod:`keys` Module
29 | ------------------
30 |
31 | .. automodule:: leap.keymanager.keys
32 | :members:
33 | :undoc-members:
34 | :show-inheritance:
35 |
36 | :mod:`openpgp` Module
37 | ---------------------
38 |
39 | .. automodule:: leap.keymanager.openpgp
40 | :members:
41 | :undoc-members:
42 | :show-inheritance:
43 |
44 | Subpackages
45 | -----------
46 |
47 | .. toctree::
48 |
49 | leap.keymanager.tests
50 |
51 |
--------------------------------------------------------------------------------
/src/leap/bitmask/gui/clickablelabel.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # clickablelabel.py
3 | # Copyright (C) 2013 LEAP
4 | #
5 | # This program is free software: you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation, either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 |
18 | """
19 | Clickable label
20 | """
21 | from PySide import QtCore, QtGui
22 |
23 |
24 | class ClickableLabel(QtGui.QLabel):
25 | clicked = QtCore.Signal()
26 |
27 | def mousePressEvent(self, event):
28 | self.clicked.emit()
29 |
--------------------------------------------------------------------------------
/src/leap/bitmask/crypto/tests/eip-service.json:
--------------------------------------------------------------------------------
1 | {
2 | "gateways": [
3 | {
4 | "capabilities": {
5 | "adblock": false,
6 | "filter_dns": false,
7 | "limited": true,
8 | "ports": [
9 | "1194",
10 | "443",
11 | "53",
12 | "80"
13 | ],
14 | "protocols": [
15 | "tcp",
16 | "udp"
17 | ],
18 | "transport": [
19 | "openvpn"
20 | ],
21 | "user_ips": false
22 | },
23 | "host": "harrier.cdev.bitmask.net",
24 | "ip_address": "199.254.238.50",
25 | "location": "seattle__wa"
26 | }
27 | ],
28 | "locations": {
29 | "seattle__wa": {
30 | "country_code": "US",
31 | "hemisphere": "N",
32 | "name": "Seattle, WA",
33 | "timezone": "-7"
34 | }
35 | },
36 | "openvpn_configuration": {
37 | "auth": "SHA1",
38 | "cipher": "AES-128-CBC",
39 | "tls-cipher": "DHE-RSA-AES128-SHA"
40 | },
41 | "serial": 1,
42 | "version": 1
43 | }
--------------------------------------------------------------------------------
/pkg/sumo-tarballs.mk:
--------------------------------------------------------------------------------
1 | checkout_leapdeps_release:
2 | pkg/scripts/checkout_leap_versions.sh
3 |
4 | setup_without_namespace:
5 | awk '!/namespace_packages*/' setup.py > file && mv file setup.py
6 |
7 | sumo_tarball_release: checkout_leapdeps_release setup_without_namespace
8 | python setup.py sdist --sumo
9 | git checkout -- src/leap/__init__.py
10 | git checkout -- src/leap/bitmask/_version.py
11 | rm -rf src/leap/soledad
12 | git checkout -- setup.py
13 |
14 | # XXX We need two sets of sumo-tarballs: the one published for a release
15 | # (that will pick the pinned leap deps), and the other which will be used
16 | # for the nightly builds.
17 | # TODO change naming scheme for sumo-latest: should include date (in case
18 | # bitmask is not updated bu the dependencies are)
19 |
20 | sumo_tarball_latest: checkout_leapdeps_develop pull_leapdeps setup_without_namespace
21 | python setup.py sdist --sumo # --latest
22 | git checkout -- src/leap/__init__.py
23 | git checkout -- src/leap/bitmask/_version.py
24 | rm -rf src/leap/soledad
25 | git checkout -- setup.py
26 |
--------------------------------------------------------------------------------
/pkg/linux/polkit/se.leap.bitmask.policy:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | LEAP Project
8 | http://leap.se/
9 |
10 |
11 | Runs bitmask helper to launch firewall and openvpn
12 | Ejecuta el asistente de bitmask para lanzar el firewall y openvpn
13 | Bitmask needs that you authenticate to start
14 | Bitmask necesita autorizacion para comenzar
15 | package-x-generic
16 |
17 | yes
18 | yes
19 | yes
20 |
21 | /usr/sbin/bitmask-root
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/leap/bitmask/gui/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # __init__.py
3 | # Copyright (C) 2013 LEAP
4 | #
5 | # This program is free software: you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation, either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 | """
18 | init file for leap.gui
19 | """
20 | # This was added for coverage and testing, but when doing the osx
21 | # bundle with py2app it fails because of this, so commenting for now
22 | # Also creates conflicts with the new frontend/backend separation.
23 | # app = __import__("app", globals(), locals(), [], 2)
24 | # __all__ = [app]
25 |
--------------------------------------------------------------------------------
/pkg/windows/openvpn_manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/pkg/deps.mk:
--------------------------------------------------------------------------------
1 | get_wheels:
2 | pip install --upgrade setuptools
3 | pip install --upgrade pip
4 | pip install wheel
5 |
6 | gather_wheels:
7 | pip wheel --wheel-dir=../wheelhouse pyzmq --build-option "--zmq=bundled"
8 | # because fuck u1db externals, that's why...
9 | pip wheel --wheel-dir=../wheelhouse --allow-external dirspec --allow-unverified dirspec --allow-external u1db --allow-unverified u1db -r pkg/requirements.pip
10 |
11 | install_wheel:
12 | # if it's the first time, you'll need to get_wheels first
13 | pip install --pre --use-wheel --no-index --find-links=../wheelhouse -r pkg/requirements.pip
14 |
15 | gather_deps:
16 | pipdeptree | pkg/scripts/filter-bitmask-deps
17 |
18 | install_base_deps:
19 | for repo in leap_pycommon keymanager leap_mail soledad/common soledad/client; do cd $(CURDIR)/../$$repo && pkg/pip_install_requirements.sh; done
20 | pkg/pip_install_requirements.sh
21 |
22 | pull_leapdeps:
23 | for repo in $(LEAP_REPOS); do cd $(CURDIR)/../$$repo && git pull; done
24 |
25 | checkout_leapdeps_develop:
26 | for repo in $(LEAP_REPOS); do cd $(CURDIR)/../$$repo && git checkout develop; done
27 | git checkout develop
28 |
29 |
--------------------------------------------------------------------------------
/pkg/linux/polkit/se.leap.bitmask.bundle.policy:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | LEAP Project
8 | http://leap.se/
9 |
10 |
11 | Runs bitmask helper to launch firewall and openvpn (bundle version)
12 | Ejecuta el asistente de bitmask para lanzar el firewall y openvpn (version bundle)
13 | Bitmask needs that you authenticate to start
14 | Bitmask necesita autorizacion para comenzar
15 | package-x-generic
16 |
17 | yes
18 | yes
19 | yes
20 |
21 | /usr/local/sbin/bitmask-root
22 |
23 |
24 |
--------------------------------------------------------------------------------
/pkg/pyinst/bitmask.spec.orig:
--------------------------------------------------------------------------------
1 | # -*- mode: python -*-
2 |
3 | block_cipher = None
4 |
5 |
6 | a = Analysis([os.path.join('bitmask.py')],
7 | hiddenimports=[
8 | 'zope.interface', 'zope.proxy',
9 | 'PySide.QtCore', 'PySide.QtGui'],
10 | hookspath=None,
11 | runtime_hooks=None,
12 | excludes=None,
13 | cipher=block_cipher)
14 | pyz = PYZ(a.pure,
15 | cipher=block_cipher)
16 | exe = EXE(pyz,
17 | a.scripts,
18 | exclude_binaries=True,
19 | name='bitmask',
20 | debug=False,
21 | strip=False,
22 | upx=True,
23 | console=False )
24 | coll = COLLECT(exe,
25 | a.binaries,
26 | a.zipfiles,
27 | a.datas,
28 | strip=False,
29 | upx=True,
30 | name='bitmask')
31 | if sys.platform.startswith("darwin"):
32 | app = BUNDLE(coll,
33 | name=os.path.join(
34 | 'dist', 'Bitmask.app'),
35 | appname='Bitmask',
36 | version='0.9.0rc2',
37 | icon='pkg/osx/bitmask.icns',
38 | bundle_identifier='bitmask-0.9.0rc2')
39 |
--------------------------------------------------------------------------------
/docs/api/leap.util.rst:
--------------------------------------------------------------------------------
1 | util Package
2 | ============
3 |
4 | :mod:`util` Package
5 | -------------------
6 |
7 | .. automodule:: leap.util
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`leap_argparse` Module
13 | ---------------------------
14 |
15 | .. automodule:: leap.util.leap_argparse
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`leap_log_handler` Module
21 | ------------------------------
22 |
23 | .. automodule:: leap.util.leap_log_handler
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 | :mod:`privilege_policies` Module
29 | --------------------------------
30 |
31 | .. automodule:: leap.util.privilege_policies
32 | :members:
33 | :undoc-members:
34 | :show-inheritance:
35 |
36 | :mod:`request_helpers` Module
37 | -----------------------------
38 |
39 | .. automodule:: leap.util.request_helpers
40 | :members:
41 | :undoc-members:
42 | :show-inheritance:
43 |
44 | :mod:`requirement_checker` Module
45 | ---------------------------------
46 |
47 | .. automodule:: leap.util.requirement_checker
48 | :members:
49 | :undoc-members:
50 | :show-inheritance:
51 |
52 |
--------------------------------------------------------------------------------
/src/leap/bitmask/util/compat.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # compat.py
3 | # Copyright (C) 2013 LEAP
4 | #
5 | # This program is free software: you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation, either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 | """
18 | Utilities for dealing with compat versions.
19 | """
20 | from distutils.version import LooseVersion as V
21 |
22 | from requests import __version__ as _requests_version
23 |
24 |
25 | def _requests_has_max_retries():
26 | """
27 | Returns True if we can use the max_retries parameter
28 | """
29 | return V(_requests_version) > V('1.1.0')
30 |
31 | requests_has_max_retries = _requests_has_max_retries()
32 |
--------------------------------------------------------------------------------
/pkg/osx/build_tuntaposx:
--------------------------------------------------------------------------------
1 | #!/bin/zsh
2 | #
3 | # Copyright (C) 2012 ...
4 | #
5 |
6 | REPO="https://github.com/bbits/tuntaposx.git"
7 |
8 | autoload colors; colors
9 | # standard output message routines
10 | # it's always useful to wrap them, in case we change behaviour later
11 | notice() { if [[ $QUIET == 0 ]]; then print "$fg_bold[green][*]$fg_no_bold[default] $1" >&2; fi }
12 | error() { if [[ $QUIET == 0 ]]; then print "$fg[red][!]$fg[default] $1" >&2; fi }
13 | func() { if [[ $DEBUG == 1 ]]; then print "$fg[blue][D]$fg[default] $1" >&2; fi }
14 | act() {
15 | if [[ $QUIET == 0 ]]; then
16 | if [ "$1" = "-n" ]; then
17 | print -n "$fg_bold[white] . $fg_no_bold[default] $2" >&2;
18 | else
19 | print "$fg_bold[white] . $fg_no_bold[default] $1" >&2;
20 | fi
21 | fi
22 | }
23 |
24 | { test "$1" = "clean" } && {
25 | notice "Cleaning up all tuntaposx build"
26 | rm -rf tuntaposx
27 | act "Done."
28 | return 0
29 | }
30 |
31 | build_tuntap() {
32 | test -d tuntaposx || git clone $REPO
33 | notice "Cloning tuntaposx sources"
34 | cd tuntaposx/tuntap
35 | notice "Building tuntaposx"
36 | make
37 | mkdir -p ../../dist/tun.kext
38 | cp -r tun.kext/* ../../dist/tun.kext
39 | mkdir -p ../../dist/tuntaposx/StartupItems
40 | cp -r startup_item/tun ../../dist/tuntaposx/StartupItems
41 | cd ../..
42 | }
43 |
44 | act "Building tuntap"
45 | build_tuntap
46 |
--------------------------------------------------------------------------------
/src/leap/bitmask/gui/wizardpage.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # wizardpage.py
3 | # Copyright (C) 2013 LEAP
4 | #
5 | # This program is free software: you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation, either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 |
18 | from PySide import QtGui
19 |
20 |
21 | class WizardPage(QtGui.QWizardPage):
22 | """
23 | Simple wizard page helper
24 | """
25 |
26 | def __init__(self):
27 | QtGui.QWizardPage.__init__(self)
28 | self._completed = False
29 |
30 | def set_completed(self, val=True):
31 | self._completed = val
32 | if val:
33 | self.completeChanged.emit()
34 |
35 | def isComplete(self):
36 | return self._completed
37 |
38 | def cleanupPage(self):
39 | self._completed = False
40 | QtGui.QWizardPage.cleanupPage(self)
41 |
--------------------------------------------------------------------------------
/data/resources/icons.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ../images/mask-icon.png
6 | ../images/menubar-mask-icon.png
7 |
8 |
9 | ../images/black/off.svg
10 | ../images/black/on.svg
11 | ../images/black/question.svg
12 | ../images/black/wait.svg
13 | ../images/black/22/off.png
14 | ../images/black/22/on.png
15 | ../images/black/22/question.png
16 | ../images/black/22/wait.png
17 |
18 | ../images/white/off.svg
19 | ../images/white/on.svg
20 | ../images/white/question.svg
21 | ../images/white/wait.svg
22 | ../images/white/22/off.png
23 | ../images/white/22/on.png
24 | ../images/white/22/question.png
25 | ../images/white/22/wait.png
26 |
27 |
28 | ../images/black/32/user.png
29 |
30 |
31 | ../images/black/32/earth.png
32 | ../images/black/32/arrow-down.png
33 | ../images/black/32/arrow-up.png
34 |
35 |
36 | ../images/black/32/email.png
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/pkg/linux/README.rst:
--------------------------------------------------------------------------------
1 | Files
2 | =====
3 |
4 | In GNU/Linux, we expect these files to be in place::
5 |
6 | bitmask-root -> /usr/sbin/bitmask-root
7 | polkit/se.leap.bitmask.policy -> /usr/share/polkit-1/actions/se.leap.bitmask.policy
8 |
9 | Bundle
10 | ======
11 |
12 | The bundle will ask for permission to install to a different path. This search
13 | path will be used if the flag ``--standalone`` is set::
14 |
15 | bitmask-root -> /usr/local/sbin/bitmask-root
16 | polkit/se.leap.bitmask.bundle.policy -> /usr/share/polkit-1/actions/se.leap.bitmask.bundle.policy
17 |
18 | When running with ``--standalone`` flag, the openvpn binary is expected in the following path::
19 |
20 | leap-openvpn -> /usr/local/sbin/leap-openvpn
21 |
22 | The bundle will use the script ``leap-install-helper.sh`` to copy the needed
23 | files. If you ever want to use it manually to update the helpers or bins, it
24 | needs a ``--from-path`` parameter to be passed to it. This points to a folder
25 | from where all the needed binaries and scripts can be found.
26 |
27 |
28 | Binary hashing
29 | ==============
30 |
31 | To be able to update the binaries when needed, the bundles distribute with the
32 | sha256 hash of the packaged binaries for each release. This info can be found
33 | in::
34 |
35 | src/leap/bitmask/_binaries.py
36 |
37 | That file is generated during the bundling process, by issuing the following
38 | command from the root folder::
39 |
40 | python setup.py hash_binaries
41 |
--------------------------------------------------------------------------------
/docs/api/leap.services.eip.rst:
--------------------------------------------------------------------------------
1 | eip Package
2 | ===========
3 |
4 | :mod:`eipbootstrapper` Module
5 | -----------------------------
6 |
7 | .. automodule:: leap.services.eip.eipbootstrapper
8 | :members:
9 | :undoc-members:
10 | :show-inheritance:
11 |
12 | :mod:`eipconfig` Module
13 | -----------------------
14 |
15 | .. automodule:: leap.services.eip.eipconfig
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
20 | :mod:`eipspec` Module
21 | ---------------------
22 |
23 | .. automodule:: leap.services.eip.eipspec
24 | :members:
25 | :undoc-members:
26 | :show-inheritance:
27 |
28 | :mod:`providerbootstrapper` Module
29 | ----------------------------------
30 |
31 | .. automodule:: leap.services.eip.providerbootstrapper
32 | :members:
33 | :undoc-members:
34 | :show-inheritance:
35 |
36 | :mod:`udstelnet` Module
37 | -----------------------
38 |
39 | .. automodule:: leap.services.eip.udstelnet
40 | :members:
41 | :undoc-members:
42 | :show-inheritance:
43 |
44 | :mod:`vpnlaunchers` Module
45 | --------------------------
46 |
47 | .. automodule:: leap.services.eip.vpnlaunchers
48 | :members:
49 | :undoc-members:
50 | :show-inheritance:
51 |
52 | :mod:`vpnprocess` Module
53 | ------------------------
54 |
55 | .. automodule:: leap.services.eip.vpnprocess
56 | :members:
57 | :undoc-members:
58 | :show-inheritance:
59 |
60 | Subpackages
61 | -----------
62 |
63 | .. toctree::
64 |
65 | leap.services.eip.tests
66 |
67 |
--------------------------------------------------------------------------------
/docs/user/running.rst:
--------------------------------------------------------------------------------
1 | .. _running:
2 |
3 | Running
4 | ==================
5 |
6 | This document covers how to launch Bitmask. Also know as, where the magic
7 | happens.
8 |
9 | Launching Bitmask
10 | -----------------
11 | After a successful installation, there should be a launcher called `bitmask` somewhere in your path::
12 |
13 | % bitmask
14 |
15 | The first time you launch it, it should launch the first run wizard that will guide you through the mostly automatic configuration of the LEAP Services.
16 |
17 | .. note::
18 |
19 | You will need to enter a valid test provider running the LEAP Platform. You can use the LEAP test service, *https://bitmask.net*
20 |
21 | .. _debugmode:
22 |
23 | Debug mode
24 | ----------
25 | If you are happy having lots of output in your terminal, you will like to know that you can run bitmask in debug mode::
26 |
27 | $ bitmask --debug
28 |
29 | If you ask for it, you can also have all that debug info in a beautiful file ready to be attached to your bug reports::
30 |
31 | $ bitmask --debug --logfile /tmp/leap.log
32 |
33 | .. warning
34 | .. the following is broken since it will clutter your stdout with all the commands sent to the management interface.
35 | See bug #1232
36 |
37 | .. not working...
38 | .. If you want to increment the level of verbosity passed to openvpn, you can do::
39 | .. $ bitmask --openvpn-verbosity 4
40 |
41 | I want all the options!
42 | -----------------------
43 | To see all the available command line options::
44 |
45 | $ bitmask --help
46 |
--------------------------------------------------------------------------------
/docs/core_api_contract:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | # api_contract.py
4 | # Copyright (C) 2016 LEAP Encryption Acess Project
5 | #
6 | # This program is free software: you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation, either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 | """
19 | Display a human-readable representation of the methods that compound the public
20 | api for Bitmask Core.
21 |
22 | The values are meant to be type annotations.
23 | """
24 |
25 | if __name__ == "__main__":
26 | from leap.bitmask.core.service import BitmaskBackend
27 | from leap.bitmask.core import api
28 | backend = BitmaskBackend()
29 |
30 | print '========= Bitmask Core API =================='
31 | print
32 |
33 | for key in api.registry:
34 | human_key = key.replace('do_', '').lower()
35 | value = api.registry[key]
36 |
37 | print("{}:\t\t{}".format(
38 | human_key,
39 | ' '.join([x for x in value])))
40 | print
41 | print '============================================='
42 |
--------------------------------------------------------------------------------
/docs/leap-commit-template.README:
--------------------------------------------------------------------------------
1 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 | HOW TO USE THIS TEMPLATE:
3 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 |
5 | Run `git config commit.template docs/leap-commit-template` or
6 | edit the .git/config for this project and add
7 | `template = docs/leap-commit-template`
8 | under the [commit] block
9 |
10 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11 | COMMIT TEMPLATE FORMAT EXPLAINED
12 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13 |
14 | [type]
15 |
16 |
17 |