123 lines
3.1 KiB
Markdown
123 lines
3.1 KiB
Markdown
## Introduction
|
|
|
|
ceof is the implementation and documentation
|
|
of ***EOF*** (Eris Onion Forwarding),
|
|
the secure, peer-to-peer (p2p), decentralised anonymous chat network.
|
|
|
|
You can read the
|
|
[bachelor thesis](http://git.schottelius.org/?p=ceof;a=blob;f=doc/thesis.pdf),
|
|
which describes the motivation and goals or you
|
|
can view [the poster that was used on the presentation](http://git.schottelius.org/?p=ceof;a=blob;f=doc/appendix/poster.pdf).
|
|
|
|
## Dependencies
|
|
|
|
* python3
|
|
* python-gnupg (the package python3-gnupg exists for Debian)
|
|
* virtualenv (optional, if isolating the environment for ceof)
|
|
|
|
## Installation
|
|
|
|
* Clone the git repo
|
|
|
|
git clone git://git.schottelius.org/ceof
|
|
|
|
It is mirrored on github: git@github.com:telmich/ceof.git
|
|
|
|
### When the distro does not ship a Package for python3-gnupg
|
|
|
|
* Create an isolated python environment
|
|
|
|
virtualenv -p /usr/bin/python3 python-env
|
|
|
|
* Activate the python environment and install gnupg
|
|
|
|
. ./python-env/bin/activate
|
|
pip install python-gnupg
|
|
|
|
## Usage preparation
|
|
|
|
### Create public/private key pair
|
|
|
|
This may take some time, try to keep your computer busy so you can gather
|
|
more entropy.
|
|
|
|
cd ceof
|
|
./src/bin/ceof crypto -g --name "Nico@Tee" --email-address nico-ceof@tee.schottelius.org
|
|
|
|
Verify that everything worked fine:
|
|
|
|
./src/bin/ceof crypto --show
|
|
|
|
### Prepare a peer to chat with
|
|
|
|
Do the following commands on your host and tell your friend
|
|
to do the same vice versa:
|
|
|
|
Show the fingerprint of your PGP key
|
|
|
|
./src/bin/ceof crypto --fingerprint
|
|
|
|
Show your public key for export
|
|
|
|
./src/bin/ceof crypto --export
|
|
|
|
Once you have retrieved the public key, import it
|
|
|
|
./src/bin/ceof crypto -i < public-key-file
|
|
|
|
Create your friend as a peer using a name and its fingerprint
|
|
|
|
./src/bin/ceof peer --add yourfriend --fingerprint CF7F9EE965AFA1B5A4D1D4D1385D23177A80B7B0
|
|
|
|
Add an address of your peer:
|
|
|
|
./src/bin/ceof peer apic --add-address tcp://192.168.90.251:42342
|
|
|
|
***Warning*** You need at least 6 peers for ceof to work.
|
|
6 peers is the minimum number of peers required by the protocol to function
|
|
safely.
|
|
|
|
### Prepare noise
|
|
|
|
ceof sends regulary noise to prevent people from recognising when you
|
|
send messages. To do so, ceof requires input for noise. You can use any kind
|
|
files, but for debugging purpose text files are recommened.
|
|
|
|
For example, you could use the content of /usr/share/doc as a base:
|
|
|
|
mkdir -p ~/.ceof/noise
|
|
find /usr/share/doc -name \*.gz -exec zcat {} \; > ~/.ceof/noise/usr-share-doc
|
|
|
|
(abort after a minute or so)
|
|
|
|
Test that ceof can use the noise:
|
|
|
|
./src/bin/ceof noise
|
|
|
|
### Prepare addresses to listen on
|
|
|
|
Add one tcp address to listen on
|
|
|
|
./src/bin/ceof listener --add tcp://0.0.0.0:42342
|
|
|
|
Show enabled listeners:
|
|
|
|
./src/bin/ceof listener --list
|
|
|
|
### Start the server
|
|
|
|
./src/bin/ceof server
|
|
|
|
|
|
## Support
|
|
|
|
There are two IRC (!) channels, in which development takes places:
|
|
|
|
* [!eof](irc://IRCNet/!eof) - German
|
|
* [#cstar](irc://irc.freenode.org/#cstar) - Multi language (German/English)
|
|
|
|
You can subscribe to the
|
|
[!eof mailinglist](http://l.schottelius.org/mailman/listinfo/eof).
|
|
You can also [[contact me directly|about]].
|
|
|
|
[[!tag ceof crypot chat net unix]]
|