Skip to content

FiSH is an encryption add-on module for irssi.

License

Notifications You must be signed in to change notification settings

falsovsky/FiSH-irssi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Introduction

FiSH is an encryption add-on module for irssi. Uses the Blowfish cipher to encrypt private and public messages in ECB or CBC modes, using a specified key. It also includes a secure Diffie-Hellman key exchange for private chat.

Requirements

The requirements for building FiSH-irssi are:

  • cmake
  • pkg-config
  • Glib 2.0
  • OpenSSL
  • irssi (with includes)

Debian - Ubuntu

# apt-get install build-essential irssi-dev libglib2.0-dev libssl-dev cmake git

OpenBSD

# pkg_add glib2 irssi cmake git

FreeBSD

Arch Linux

# pacman -S cmake pkg-config glib2 openssl irssi

CentOS - Fedora

yum install gcc pkgconfig cmake irssi irssi-devel openssl openssl-devel glib2 glib2-devel

Building

Just type in the following commands:

$ git clone https://github.com/falsovsky/FiSH-irssi.git
$ cd FiSH-irssi
$ cmake .
$ make

If you want to install to /usr instead of /usr/local

$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .
$ make

Run make install as a privileged user (if needed) to install it.

Running

If you installed the module in the default directory, you just need to run the following command inside irssi to load it:

/load fish

If not, just include the path while loading:

/load /home/username/libfish.so

Load automatically at start-up

echo "load fish" >> /home/username/.irssi/startup

Configurations

FiSH-irssi has some configurations that can be set via /set on irssi.

process_outgoing

FiSH outgoing messages.

Default value is 1

process_incoming

unFiSH incoming messages.

Default value is 1

auto_keyxchange

Do an automatic key exchange in private messages.

Default value is 1

plain_prefix

Prefix needed to send an unFiSHed message. For example:

+p Hi there in clear text

Default value is +p

mark_encrypted

String used to mark a FiSHed message.

Default value is \002>\002

mark_position

Defines if the mark should be a prefix (1) or a suffix (0).

Default value is 1

nicktracker

Allows seamless conversations when your chat partner changes his nick. This feature will copy the old key to use with his new nick. It affects nick changes for opened queries!

Default value is 1

mark_broken_block

Indicates whether a message is incomplete.

Default value is \002&\002

Commands

/topic+ <message>

Sets a FiSHed topic in the current channel.

/topic+ TAB

Allows to edit a FiSHed topic.

/notice+ [nick / #channel] <message>

Sends a FiSHed notice to the current window or to the specified target.

/me+ <message>

Send a FiSHed action to the current window.

/setkey [servertag] [nick / #channel] <key>

Sets the key used to FiSH the messages for the current window or to the specified target. To use CBC mode, prefix the key with cbc:.

/delkey [servertag] [nick/#channel]

Unsets the key used to FiSH the messages for the current window or to the specified target.

/key|showkey [servertag] [nick / #channel]

Shows the used key to FiSH the messages for the current window or to the specified target. The key will appear in the target window.

/keyx [-ecb|-cbc] [nick]

Forces a DH key exchange in the current window or to the specified target. The default mode is CBC, use the -ecb parameter to force ECB mode.

/setinipw <password>

Sets a custom password used to cipher the contents of blow.ini.

/unsetinipw

Unset the custom password used to cipher blow.ini.

/fishlogin

Used to ask again for the blow.ini password if the user inserts an invalid password at start-up.

/fishhelp|helpfish

Show a little help inside irssi.

Tested

FiSH-irssi has been tested on various OS and arches:

  • Linux/x86
  • Linux/sparc
  • Linux/arm
  • OpenBSD/x86
  • OpenBSD/macppc
  • OpenBSD/sgi
  • FreeBSD/x86
  • NetBSD/x86