Skip to content
Secure multiparty messaging (kindof)
Python Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
flute
.gitignore
HACKING
Makefile
README
TODO.txt
flute_spec.txt
weechat_flute.py

README

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.
You can’t perform that action at this time.