spiped style tunnel for the MinimaLT protocol implemented in Python 3
Python Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
README.md spam the readme May 27, 2014
mltpipe.py
mltpiped.py
pysodium.py
run_client.sh
run_daemon.sh
simple_server.sh

README.md

mltpipepy

spiped style tunnel for the MinimaLT protocol implemented in Python 3

This project is an unofficial implementation of a tunnel over the most recent definition of MinimaLT at https://www.ethos-os.org/papers.html (the Nov 2013 paper).

Being a paper, I've guessed at some missing details, which means the implementation almost certainly doesn't match the authors' idea of what the protocol should look like! Once a reference impl or specification is released I'll fix this one to match it.

Plans

Once I've ironed out this client/daemon, I'd probably be keen to start work on an Apache mod or a Firefox plugin, since they're likely to give the best bang for buck (though the daemon of this project is quite useful as a terminator).

There could be plans to implement in C, but I won't do that until I've sufficiently ironed out this Python version to the point where the port is quite direct. And I expect/hope people may prefer the Python impl these days :)

pysodium can be found at https://github.com/stef/pysodium and just needs a few syntax changes to work on Python 3. The actual crypto is provided by libsodium.

Things to do

A lot. This project only deals with the connection from IP, PORT, PUB_KEY onwards, other things like creating certificates, fetching them from DNS, verifying them etc. will need to be done in another project.

The current impl has no retransmission, acks, bandwidth moderation, reordering, DOS protection, has very incomplete support of the RPC spec, and so on. My next priority is probably to look at retransmitting lost packets and making sure it's a moderate, civilised internet application so it can be trusted to play nice with others (so only run it locally for the time being).

Patches very welcome!