Skip to content

Toy Python implementation of the Signal protocol.

Notifications You must be signed in to change notification settings

MMirelli/signalpy

Repository files navigation

README

The way simple_handshake_chaining.py operates is illustrated in the following image.

image1


Requirements

  • python-3.7 (perhaps with 3.8 would work as well);
  • docker-compose.

Building instructions

pip install -r requirements.txt ./start_up.sh # starts the RabbitMQ broker

Open a new terminal and run:

python ttd.py # runs the Trusted Third Party

Run alice.py and bob.py in two different terminals.

python alice.py python bob.py

You can observe the message exchange executed over RabbitMQ, with the AMQP protocol.

Alice and bob scripts provide with a very basic CLI for sending/receiving messages to each other. ttd.py shows the logs of the Trusted Third Party.


Design

image


On successful build

image


Next steps

  • Sketch documentation of the transport;

  • Transport layer;

  • Basic GUI;

  • X3DH;

  • Double Ratchet:

    • Asymmetric Ratchet;
    • Symmetric Ratchet;
  • Improved documentation and comments.

  • Successful build screens.

About

Toy Python implementation of the Signal protocol.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published