Reference client for Bitmessage: a P2P encrypted decentralised communication protocol:

Overview

PyBitmessage

Bitmessage is a P2P communication protocol used to send encrypted messages to another person or to many subscribers. It is decentralized and trustless, meaning that you need-not inherently trust any entities like root certificate authorities. It uses strong authentication, which means that the sender of a message cannot be spoofed. BM aims to hide metadata from passive eavesdroppers like those ongoing warrantless wiretapping programs. Hence the sender and receiver of Bitmessages stay anonymous.

Development

Bitmessage is a collaborative project. You are welcome to submit pull requests although if you plan to put a non-trivial amount of work into coding new features, it is recommended that you first describe your ideas in the separate issue.

Feel welcome to join chan "bitmessage", BM-2cWy7cvHoq3f1rYMerRJp8PT653jjSuEdY

References

Issues
  • Transport Layer Security

    Transport Layer Security

    Currently peer-to-peer communication occurs over insecure sockets. Wrapping these sockets in SSL is done via ssl.wrap_socket, the resulting object has most of the same methods as a standard socket.

    Each peer could generate and self-sign a certificate and be configured to accept any certificate that it is presented. (We don't really care who we're connecting to as long as its over a secure channel, for now)

    enhancement 
    opened by r14c 59
  • python uses 100% CPU

    python uses 100% CPU

    On my Xubuntu 12.10 with xfce-desktop sometimes (not always) pyBitmessage causes a python process that uses 100% of one complete CPU:

    #ps aux|grep bitmes
    

    ruben     2703 88.3  1.7 1870944 70304 ?       Sl   20:44  19:14 python bitmessagemain.py
    

    If I close the GUI, that process stays and continues to waste the CPU

    only

    #kill -kill 2703
    

    stops bitmessage and releases the CPU

    opened by rubo77 40
  • setup.py is package manager incompatible

    setup.py is package manager incompatible

    setup.py is interactive, so it's broken for any distro that your script doesn't automagically detect. Why does it even attempt to do that? Setuptools and distutils are distro-agnostic.

    question 
    opened by hasufell 32
  • Fix broken tests

    Fix broken tests

    • setting BITMESSAGE_HOME doesn't always work, so we wrote a function to do this
    • logger and BMConfigParser now clear old config when loading new
    • add method for flushing log files
    • rework logic in test_logger
    • detect thread names on UNIX-like OSes
    • be more accurate when starting or stopping a process, better waiting mechanisms
    • add extra cleanup during TestProcess start
    bug test build 
    opened by PeterSurda 29
  • flatpak-builder support

    flatpak-builder support

    Recent distributions like Debian bullseye don't support QT4 anymore. This pull request provides a flatpak-builder configuration and instructions how to package PyBitmessage as a flatpak application which bundles QT4.

    This pull request is also a necessary requirement for https://github.com/Bitmessage/PyBitmessage/issues/1607

    duplicate packaging build 
    opened by zciendor 27
  • Follow PEP8 and trust Guido

    Follow PEP8 and trust Guido

    Hello!

    This is an appeal to contributors: write more pythonic code! Please read PEP8 carefully and don't trust linters bugs.

    About 79 characters line length limit, I repeat it here: readability has nothing to do with your screen size.

    Not sure is it correct to add symlink into repository. Some setuptools commands wont work without it.

    opened by g1itch 26
  • bitmessage dont start up any more when database too large or related

    bitmessage dont start up any more when database too large or related

    memory overflow at 1.79gigabytes ram consumption on windows 32bit machine running provided latest win32 binary of bitmessage.exe

    bitmessage.exe recently crashed during runtime with qt4...dll gui or similar, and now never starts up any more in the end, as it crashes with unknown memory error whenever it is started up now and taskmanager and other process related tools show that its memory consumption grows up til exactly right below 1.8gigs of ram then it gives this crash. reproducable.

    some days ago I think there was a post on the general channel public shared address list talking exactly about this phenomenon back then already

    apparently now its happening for me.

    bitmessage must not read the total database and keep too many objects in ram, but should only read the database if needed and not store too many objects in ram.

    bug 
    opened by subscribernamegoeshere 26
  • Sending messages to yourself

    Sending messages to yourself

    It appears that the current implementation of PyBitmessage does not support sending of messages to yourself, or other addresses that you own. (within the same client instance) When I comment this section of the code out, the client hangs on "Sending public key request. Waiting for reply."

    What type of development needs to be done in order to support this? Email and Bitcoin both support sending to your own address(es), thus I think we should enable this for Bitmessage.

    Thoughts?

    opened by acejam 26
  • [Feature Request] Ubuntu integration: Application Indicator, Messaging menu, Launcher shortcuts

    [Feature Request] Ubuntu integration: Application Indicator, Messaging menu, Launcher shortcuts

    • [x] Application Indicator This provides access to key features of Bitmessage.
      • [x] mono icon (compare /usr/share/icons/ubuntu-mono-dark/status/24)
    • [x] Messaging menu The entry could look like this:
      • Pybitmessage
        • New message
        • Contacts
        • 1 new message (from John Doe)
    • [x] Launcher shortcut This is very easy to implement when the application supports command line options.
    • [x] Notify OSD This informs the user about new messages and connection loss.
    • [x] Most importantly, Ubuntu users have no easy way to install Pybitmessage. Even though it may be too early to get Pybitmessage into the Debian repositories, there are several options to make it more convenient to install this application:
      • Provide a single official .deb file
      • Provide a portable statically linked executable
      • Provide a PPA
    opened by omyno 26
  • UPnP doesn't always work

    UPnP doesn't always work

    On my system UPnP doesn't work. UPnP is checked, some port (18XXX) is specified, but UPnP page on the router never shows bitmessage. It does show ZeroNet and Skype, just not bitmessage.

    FreeBSD 10.3

    (Before I was running with manually opened port and it worked fine.)

    bug 
    opened by yurivict 24
  • define and enable netcat operating mode

    define and enable netcat operating mode

    This PR enables a special headless operating mode ("netcat" mode) where all object processing is disabled. Instead, raw objects received from the network are output to STDOUT unprocessed, also, any valid raw objects received on STDIN are broadcast to the network.

    The STDOUT format is one object per line, formatted as:

    • current timestamp as a zero-padded 16-digit hex number
    • a TAB character
    • the object in HEX encoding

    The STDIN format is one object per line, which can be either a single HEX-encoded object or the format described for STDOUT above (in the latter case the timestamp will be ignored).

    Example: 000000005aa29ada 00000000014f5b6a000000005aa7c646000000000401c5a40f3411817a9ba03df27d7839dd98b854d4fea089f6ffa9c251456e1f61e5

    This is part of a larger effort to compartmentalize the PyBitmessage operating layers in order to better contain network-borne attacks, and from this perspective it is an incomplete solution. However, it also provides some immediate benefits such as the ability to generate a timestamped full record of network traffic for later examination/replay, as well as enabling developers to broadcast protocol objects generated externally.

    As usual, all comments and questions will be appreciated.

    enhancement 
    opened by f97ada87 23
  • APPImage doesn't connect anymore

    APPImage doesn't connect anymore

    Hi, Since a 2 weeks or so my APPImage (0.6.3.2) doesn't connect to TOR anymore. I haven't changed anything in the settings. Is there any issue on the side of BitMessage or a new version I should download? Thanks for your support.

    opened by Cottonwoodhill 3
  • Append `*.sql` files into `buildozer.spec`

    Append `*.sql` files into `buildozer.spec`

    This is reminder, the SQL files need to be added to the manifest or the APK won't work. Can't be done in upstream as the buildozer.spec hasn't been merged yet.

    bug 
    opened by PeterSurda 0
Releases(v0.6.3)
  • v0.6.3(Feb 13, 2018)

    Version 0.6.2 has a bug that can be exploited for remote code execution. This is an emergency release, and 0.6.4 will be released in a couple of days with cleanup originally intended for 0.6.3, and full release notes. Everyone who uses 0.6.2 should upgrade (or, if upgrade is not possible, downgrade).

    Apart from the emergency fix, this release contains a new network subsystem which requires less resources (CPU and memory) and the Dandelion++ protocol extension for enhanced privacy.

    Windows and OSX binaries follow soon.

    Source code(tar.gz)
    Source code(zip)
  • 0.6.3.2(Feb 13, 2018)

    This version is an update on 0.6.3 with a more strict exploit mitigation code. Users of 0.6.2 should either upgrade to 0.6.3.2 or downgrade to 0.6.1.

    February 16th: Windows binary available, signed both with a code signing key and a GPG key. Note: there won't be a 64bit Windows binary for 0.6.3.2 due to a lack of time. The new network subsystem has significantly improved CPU and memory requirements so you shouldn't be running low on memory even with the 32bit binary.

    February 17th: OSX binary available, only GPG signed, will be released code signed in the near future.

    February 19th: OSX code signing delayed for a couple of days for technical reasons.

    Source code(tar.gz)
    Source code(zip)
    bitmessage-v0.6.3.2.dmg(35.47 MB)
    bitmessage-v0.6.3.2.dmg.asc(455 bytes)
    Bitmessage_x86_0.6.3.2.exe(33.78 MB)
    Bitmessage_x86_0.6.3.2.exe.asc(455 bytes)
  • v0.6.2(Mar 1, 2017)

    Usability:

    • many minor usability improvements, in particular helpful for beginners
    • get rid of confusing log messages
    • improved feedback when busy during shutdown
    • UI feedback when problems with proxy
    • UI feedback when local time is wrong
    • UI feedback when C PoW module is not available
    • folder loading performance improved
    • translations updated
    • chan join/create interface redesigned
    • can select OpenCL vendor if multiple are available (previously it would have crashed)
    • locale initialisation fixes
    • contact support form and About dialog show the GIT head
    • added setup.py (setuptools) for easier installation
    • gentle warning if sending to a chan with a too low TTL
    • message retransmit timing now works as the description

    Fixes:

    • networking subsystem stability fixes
    • multiprocessing python PoW fixed
    • message parser fixes
    • many smaller fixes
    • OpenBSD listening socket fix (works IPv4-only mode instead of not at all)

    Backend:

    • try to auto-build PoW module
    • networking subsystem performance improvements
    • refactoring of configuration interface, inventory, downloading and uploading tracking, known nodes and other minor parts
    • refactoring to reduce circular imports and global variables
    • support for OpenSSL 1.1.0 and LibreSSL
    • some network parameters configurable, but mostly only through directly editing keys.dat
    • network settings allow an optimised bootstrap provider mode

    Developers:

    • extended encoding available for testing. Use it by holding Shift while clicking on Send
    • extended encoding can be extended by adding new classes to the "messagetypes" directory
    • directory structure reorganisation to get rid of obsolete code

    Linux:

    • setup.py detects Ubuntu, Debian, Fedora, openSUSE, Gentoo and Guix

    FreeBSD/OpenBSD:

    • separate Makefile for BSD make
    • C PoW core count detection fixes for OpenBSD
    • setup.py detects FreeBSD and OpenBSD

    Windows:

    • improved error handling
    • separate Makefile for Microsoft Visual C++
    • pyinstaller spec file updated
    • 64bit binary does not require MSVC Redistributable 2012 anymore and is mostly built with mingw instead of MSVC
    • updated Python to 2.7.13 and OpenSSL to 1.0.2j/1.0.2k

    OSX:

    • binary works with OpenCL
    • updated to Python 2.7.13 and OpenSSL 1.0.2k

    Infrastructure:

    • 3 additional bootstrap nodes
    • new server for building/testing
    • transifex webhooks automate translation workflow
    • integration with landscape.io for code quality checking
    Source code(tar.gz)
    Source code(zip)
    bitmessage-v0.6.2.dmg(36.09 MB)
    bitmessage-v0.6.2.dmg.asc(473 bytes)
    Bitmessage_x64_0.6.2.exe(32.38 MB)
    Bitmessage_x64_0.6.2.exe.asc(473 bytes)
    Bitmessage_x86_0.6.2.exe(29.10 MB)
    Bitmessage_x86_0.6.2.exe.asc(473 bytes)
    PyBitmessage-0.6.2.tar.gz.asc(473 bytes)
    PyBitmessage-0.6.2.zip.asc(473 bytes)
  • v0.6.1(Aug 21, 2016)

    • Translation update and localisation fixes
    • Minor bug fixes
    • Minor UI improvements
    • Namecoin integration fixed and improved
    • SMTP server and client interface
    • Tor hidden service support
    • C PoW builds and runs on *BSD
    • Windows binary:
      • fixed build
      • upgraded to Python 2.7.12 and OpenSSL 1.0.2h
      • 64bit binary available for download
      • self-built PyInstaller bootloader should trigger fewer antivirus false positives
    • Mac OSX binary:
      • upgraded to Python 2.7.12 and OpenSSL 1.0.2h
    Source code(tar.gz)
    Source code(zip)
    Bitmessage-0.6.1.exe(28.03 MB)
    Bitmessage-0.6.1.exe.asc(473 bytes)
    Bitmessage-0.6.1_64.exe(32.08 MB)
    Bitmessage-0.6.1_64.exe.asc(473 bytes)
    bitmessage-v0.6.1.dmg(39.53 MB)
    bitmessage-v0.6.1.dmg.asc(473 bytes)
Synapse: Matrix reference homeserver

Synapse Contents Introduction About Matrix Support Synapse Installation Connecting to Synapse from a client Registering a new user from a client ACME

matrix.org 9.6k Jun 21, 2022
the first third-party instant messaging client for Google Hangouts

hangups hangups is the first third-party instant messaging client for Google Hangouts. It includes both a Python library and a reference client with a

Tom Dryer 1.7k Jun 16, 2022
A free & open modern, fast email client with user-friendly encryption and privacy features

Welcome to Mailpile! Introduction Mailpile (https://www.mailpile.is/) is a modern, fast web-mail client with user-friendly encryption and privacy feat

mailpile 8.6k Jun 24, 2022
Mysterium the first tool which permits you to retrieve the most part of a Python code even the .py or .pyc was extracted from an executable file, even it is encrypted with every existing encryptage. Mysterium don't make any difference between encrypted and non encrypted files, it can retrieve code from Pyarmor or .pyc files.

Mysterium the first tool which permits you to retrieve the most part of a Python code even the .py or .pyc was extracted from an executable file, even it is encrypted with every existing encryptage. Mysterium don't make any difference between encrypted and non encrypted files, it can retrieve code from Pyarmor or .pyc files.

Venax 74 Jun 21, 2022
Privacy enhanced BitTorrent client with P2P content discovery

Tribler Towards making Bittorrent anonymous and impossible to shut down. We use our own dedicated Tor-like network for anonymous torrent downloading.

null 4.1k Jun 29, 2022
twtxt is a decentralised, minimalist microblogging service for hackers.

twtxt twtxt is a decentralised, minimalist microblogging service for hackers. So you want to get some thoughts out on the internet in a convenient and

buckket 1.7k Jun 20, 2022
Decentralised graph database management system

Decentralised graph database management system To get started clone the repo, and run the command below. python3 database.py Now, create a new termina

Omkar Patil 2 Apr 18, 2022
A p2p chat app for zephyr

A p2p chat app for zephyr

L3gacy B3ta 4 Jun 2, 2021
a decompilation of NAP36 the widevine removal software for amz and nf used by p2p groups until it stoped working due to it using expired cdm keys

NAP36 a decompilation of NAP36 the widevine removal software for amz and nf used by p2p groups until it stoped working due to it useing expired cdm ke

null 9 Aug 29, 2021
Simple P2P application for sending files over open and forwarded network ports.

FileShareV2 A major overhaul to the V1 (now deprecated) FileShare application. V2 brings major improvements in both UI and performance. V2 is now base

Michael Wang 1 Nov 23, 2021
PyTorch implementation of CVPR 2020 paper (Reference-Based Sketch Image Colorization using Augmented-Self Reference and Dense Semantic Correspondence) and pre-trained model on ImageNet dataset

Reference-Based-Sketch-Image-Colorization-ImageNet This is a PyTorch implementation of CVPR 2020 paper (Reference-Based Sketch Image Colorization usin

Yuzhi ZHAO 10 Nov 15, 2021
This repository contains numerical implementation for the paper Intertemporal Pricing under Reference Effects: Integrating Reference Effects and Consumer Heterogeneity.

This repository contains numerical implementation for the paper Intertemporal Pricing under Reference Effects: Integrating Reference Effects and Consumer Heterogeneity.

Hansheng Jiang 1 Feb 8, 2022
A simple Encrypted IM chat software Server & client based on Python3.

SecretBox A simple Encrypted IM chat software Server & client based on Python3. Version 1.0 命令行版 安装步骤 Server 运行pip3 install -r requirements 安装依赖。 运行py

h3h3da 4 Dec 31, 2021
This is a zeep based SOAP client wrapper for simple communication with the Bricknode SOAP API.

This is a zeep based SOAP client wrapper for simple communication with the Bricknode SOAP API.

Nord Fondkommission AB 2 Dec 15, 2021
Standalone script written in Python 3 for generating Reverse Shell one liner snippets and handles the communication between target and client using custom Netcat binaries

Standalone script written in Python 3 for generating Reverse Shell one liner snippets and handles the communication between target and client using custom Netcat binaries. It automates the boring stuff like URL encoding the command and setting up a listener.

Yash Bhardwaj 2 Mar 1, 2022
Clubhouse API written in Python. Standalone client included. For reference and education purposes only.

clubhouse-py is originally developed for the sake of interoperability. Standalone client is also created with very basic features, including but not limited to the audio-chat

null 1.7k Jun 29, 2022
PyBeacon is a collection of scripts for dealing with Cobalt Strike's encrypted traffic.

PyBeacon is a collection of scripts for dealing with Cobalt Strike's encrypted traffic. It can encrypt/decrypt beacon metadata, as well as pa

NCC Group Plc 161 Jun 15, 2022
Generate links that users can use to submit messages encrypted with your public key.

Hawkpost Hawkpost lets you create unique links that you can share with the person that desires to send you important information but doesn't know how

Whitesmith 885 Jun 16, 2022
Generate simple encrypted messages!

Premio's Shift is a very simple text encryption, you can use it to send secret messages to your friends. Table of Content Table of Content How it work

Peterson Adami Candido 3 Aug 6, 2021
Alpkunt 8 Mar 17, 2022
PGP encrypted / multipart templated emails for Django

Created by Stephen McDonald Introduction django-email-extras is a Django reusable app providing the ability to send PGP encrypted and multipart emails

stephenmcd 75 May 14, 2022
Hyval will store your information encrypted and decrypt it when needed

Hyval will store your information encrypted and decrypt it when needed

soroush safari 3 Oct 31, 2021
Privfiles - Encrypted file storage using Fernet with zero Javascript

Privfiles - Encrypted file storage using Fernet with zero Javascript Source code for the onion service: l3n6v6dm63frml22tlmzacnasvp7co7wylu4hhcs34ukxe

Ward 4 Dec 30, 2021
Get the length of the Instagram encrypted password

instagram-weak-encryption Get the length of the Instagram encrypted password Introduction Instagram and Facebook encrypt the password submitted at log

Giuseppe Criscione 7 Apr 26, 2022
Privfiles - Encrypted file storage using Fernet with zero Javascript

Privfiles - Encrypted file storage using Fernet with zero Javascript Source code for the onion service: l3n6v6dm63frml22tlmzacnasvp7co7wylu4hhcs34ukxe

null 4 Dec 30, 2021
This is an experimental AES-encrypted RPC API for ESP 8266.

URPC This is an experimental AES-encrypted RPC API for ESP 8266. Usage The server folder contains a sample ESP 8266 project. Simply set the values in

Ian Walton 1 Oct 26, 2021
NFC Implant-base RSA Encrypted Messagging application

Encrypted messaging application with the use of MIFARE DESfire chip to store the private/public keys needed for the application authentication

null 4 Nov 6, 2021
Just to play with my kids: create a secret alphabet and exchange encrypted messages

Secret Alphabet Description This project allows you to randomly generate an alphabet (a set of characters) and its corresponding translation. For the

BS 1 Nov 12, 2021
Encrypted Python Password Manager

PyPassKeep Encrypted Python Password Manager About PyPassKeep (PPK for short) is an encrypted python password manager used to secure your passwords fr

KrisIsHere 1 Nov 17, 2021