Skip to main content

Python implementation of the Axolotl ratchet protocol

Project description

Overview

The Axolotl ratchet is a protocol (similar to OTR) that provides for perfect forward secrecy in (a)synchronous communications. It uses triple Diffie-Hellman for authentication and ECDHE for perfect forward secrecy. The protocol is lighter and more robust than the OTR protocol - providing better forward and future secrecy, as well as deniability.

The protocol was developed by Trevor Perrin and Moxie Marlinspike. Its chief use currently is in the Whisper Systems TextSecure SMS package.

A nice writeup of the protocol is on the Whisper Systems Blog. You can find the most recent specification of the protocol here.

Installation instructions

Make sure that you have the following:

sudo apt-get install python-dev # If using Debian/Ubuntu
sudo yum install python-devel redhat-rpm-config # If using Fedora

pyaxo also uses pynacl and passlib, but these packages will be downloaded and installed automatically by pip/setuptools.

If you use pip, install pyaxo with:

sudo pip install pyaxo

If you use setuptools, change to pyaxo’s source folder and install with:

sudo python setup.py install

pyaxo will be ready for use!

If you do not use neither of those, you will have to manually install each dependency before running the previous command.

Usage

There are several examples showing usage. There are also encrypt_pipe() and decrypt_pipe() methods for use in certain applications. I haven’t put together an example using them yet, but it should be straightforward.

Protocol Update

pyaxo 0.4 was updated according to the latest (Oct 1, 2014) version of the protocol, which changed the order of the ratcheting. For that reason, old conversations (created with pyaxo < 0.4) might not work properly after the update. We suggest that users update pyaxo and restart their conversations.

Bugs, etc. should be reported to the pyaxo github issues page.

Project details


Download files

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

Source Distribution

pyaxo-0.7.1.tar.gz (2.6 MB view details)

Uploaded Source

File details

Details for the file pyaxo-0.7.1.tar.gz.

File metadata

  • Download URL: pyaxo-0.7.1.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyaxo-0.7.1.tar.gz
Algorithm Hash digest
SHA256 a5c95a76ad8a60133de6fc4b8fb13399a354fe25bcb5b8b5f701451b498631d3
MD5 5e2137982b44f56e84a66834851a04ba
BLAKE2b-256 3f5f86971c66ddfee51825df66b9f0cfc1eaf6c34f6de9c90cf0684c7a67e5fa

See more details on using hashes here.

Supported by

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