The code is contained in the src folder.
-
tree_linkable contains:
-
platform.py: Contains the class capturing the platform side of the source-tracking scheme. It also contains a main function that allocates connections to each user and another function for handling their interaction.
-
user.py: Contains the class capturing the user side of the source-tracking scheme.
-
utils.py: Contains the helper functions for source tracking.
-
message_format.md: Contains all the message types that are passed between platform and user sides of the source-tracking scheme.
-
test_protocol.py: Contains tests for platform and user classes.
-
platform_pub_key.pem: Contains the public key of the current instance of platform.
-
-
axochat.py: Contains functions for sending and receiving messages among users utilizing the ratchet encryption. The user part of the source-tracking scheme is used here.
-
<*>.pkl: Auxiliary file for persisting fds across chat sessions.
-
<*>.db: Auxiliary file for persisting chat messages across sessions.
Initially, a platform instance needs to be setup followed the server side of the messaging pair and then the client side of the messaging pair.
-
To start platform instance:
- Start a terminal.
- cd into the tree-linkable folder inside the src folder.
- Run:
python platform.py -p <port-number>- platform listens at the given port number.
-
For setting up messaging pair (a, b):
-
Start 2 terminals.
-
In the first terminal (setting up server side (a) of ratchet scheme):
- cd into src folder.
python axochat.py -s- The following choice must be entered:
- "Enter your nick: " any string as a nickname of a.
- "Enter the nick of the other party: " nickname of b.
- "Enter the platform IP address: " (leave as blank and press enter if platform is on the same system).
- "Enter the platform port: " port number of platform instance.
- "TCP port (1 for random choice, 50000 is default): " The port on which a will listen to for b.
-
In the second terminal (setting up client side of ratchet scheme):
- cd into src folder.
python axochat.py -c- Enter the appropriate choices as given for server side. For other choices:
- "Enter a 's ratchet key: " copy and paste the ratchet key shown in first terminal.
- "Enter the other client's ip address: " ip-address of server a (leave as blank and press enter if server is on the same system).
- "Enter the other client's port number: " Port number on which a is listening.
-
message (press enter)
Fwd: <Username>:<msgid> (press enter)
Report: <Username>:<msgid> (press enter)