forked from asn-d6/flute
-
Notifications
You must be signed in to change notification settings - Fork 0
h1r00/flute
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
DISCLAIMER:
THIS IS THE FIRST DRAFT OF THE FLUTE SPEC. FLUTE IS CURRENTLY IN TESTING AND
DEVELOPMENT PHASE. PLEASE DON'T EVEN THINK OF USING IT FOR SENSITIVE STUFF!
[*] Introduction:
Greetings! This is Flute, a secure multiparty messaging protocol
implemented on Python and Weechat.
If you want to read how the protocol works, please see flute_spec.txt.
[This project used to be called Viola. It has since been renamed to Flute.]
[*] Installation:
- Installing dependencies:
First of all you need to have a weechat installation. It should have Python
and SSL support. In Debian you can do # apt-get install weechat weechat-plugins
You also need to have PyNaCl installed on your system. On Debian testing
you can install by running: # apt-get install python-nacl
Alernatively, you can use the pip package manager or build from source. For
instructions on how to install pynacl without root, see the "Miscellaneous"
section of the HACKING file.
- Installing flute:
To install flute, simply run `make install` from the root flute directory.
Alternatively, if you are planning to do flute development, you can try
`make dev-install` which will symlink the files instead of copying them, so
you don't have to run `make install` everytime you do a change.
[*] Usage:
- Connecting to an IRC server using weechat:
The instructions below require you to have Tor installed. You can also do
it without Tor, but I'll let you figure out how to do it. Tor can be
installed in Debian by doing: # apt-get install tor
Now launch weechat. We need to set it up so that it connects to the flute
server with SSL over Tor. Then we load up flute, and connect to the server.
---------------------------------------------------------------------------------------
/server add bacon irc.baconsvin.org/6697
/set irc.server.bacon.ssl on
/proxy add tor socks5 127.0.0.1 9050
/set irc.server.bacon.proxy "tor"
/set irc.server.bacon.ssl_verify off <-- WTF. Baconsvin SSL cert expired... Please only set this for testing.
/python load weechat_flute.py
/connect bacon
/j #flute_test
---------------------------------------------------------------------------------------
If things went fine, you should connect to the server and flute should
print an initialization message to the central weechat buffer.
- Using Flute:
-- Finding friends
Flute assumes you have passed your Flute public key information to your
friends in some secure out-of-band manner (e.g. using OTR, or in real
life). You can use the "/flute dump-fingerprint" command to learn your
public key, and your friends can use the "/flute trust-key" command to
import your key to their friend list.
Another way to find friends is to connect to a Flute IRC server, and
introduce yourself to them. For example, if you want to introduce yourself
to the user with nickname alice, do:
/flute introduction alice
After alice accepts your introduction, she can also introduce herself to
you. Do this for all your friends so that you have a complete friend list.
Your friend list is saved on disk (see .weechat/flute/flute_account.friends)
-- Starting flute rooms
After you have a good friend list, go to an empty channel and do:
/flute start-room
This should initialize a new flute room and make you the captain. Then ask
your friends to join your channel.
-- Joining flute rooms
When your friends join your channel, they also need to join your flute
room. To do so, they just need to type:
/flute join-room
As long as the joining user's public key is in your friend list, the user
will be added automatically to the room by you. Otherwise, you need to ask
your friend to introduce themselves to you.
-- Sending messages
After users have joined your room, you can just send encrypted messages to
each other as you normally would. Flute adds indicators when a received
message is encrypted or unencrypted.
About
Secure multiparty messaging (kindof)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 99.7%
- Makefile 0.3%