/qpigeon

An end-to-end (E2E) encrypted messaging app using post-quantum cryptography.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

qpigeon

An end-to-end encryption message application. Uses quantum-safe cryptography.

Features

This project is a work-in-progress. Core functionality is still being implemented.

Setup

Install the requirements.

python -m pip install -r requirements_dev.txt

And also create the qpigeon docker network (this allows the client and server to talk to each other).

docker network create qpigeon

Testing

docker build -t qpigeon-tests -f docker/tests/Dockerfile .
docker run -it qpigeon-tests

Debugging

Server

docker compose -f docker/server/docker-compose.yaml up --build

Client

docker compose -f docker/client/docker-compose.yaml build
docker compose -f docker/client/docker-compose.yaml run --rm client

Demo

To demo qpigeon, you will need to setup three terminals:

  1. In the first terminal, start the server.

    docker compose -f docker/server/docker-compose.yaml up --build
  2. In the second terminal, start Bob's client.

    $env:QPIGEON_PROFILE='bob' # export QPIGEON_PROFILE=bob
    docker compose -f docker/client/docker-compose.yaml build
    docker compose -f docker/client/docker-compose.yaml run --rm client
  3. In the third terminal, start Alice's client.

    $env:QPIGEON_PROFILE='alice' # export QPIGEON_PROFILE=alice
    docker compose -f docker/client/docker-compose.yaml build
    docker compose -f docker/client/docker-compose.yaml run --rm client