Skip to content
/ pyaxo Public
forked from rxcomm/pyaxo

A python implementation of the Axolotl ratchet protocol.

License

Notifications You must be signed in to change notification settings

eglanz/pyaxo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python implementation of the Axolotl ratchet protocol.

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

If you use pip, install pyaxo with:

sudo pip install pyaxo

pyaxo will be ready for use!

If you do not use pip, first make sure that you have the following:

sudo apt-get install python-dev

pyaxo also uses python-gnupg, curve25519-donna, and passlib, and if you have setuptools installed, these packages will be downloaded and installed automatically. You may need some additional python modules as well. Check the imports list.

Finally, from pyaxo's source folder, install with:

sudo python setup.py install

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.

About

A python implementation of the Axolotl ratchet protocol.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%