Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
.github/ | H | 29-Jul-2020 | - | 3 | 2 | |
src/ | H | 03-May-2022 | - | 2,622 | 1,918 | |
.gitignore | H A D | 29-Jul-2020 | 574 | 54 | 44 | |
.travis.yml | H A D | 29-Jul-2020 | 240 | 17 | 16 | |
LICENSE | H A D | 29-Jul-2020 | 1.1 KiB | 23 | 17 | |
README | H A D | 29-Jul-2020 | 4.2 KiB | 258 | 173 | |
README.md | H A D | 29-Jul-2020 | 4.3 KiB | 226 | 161 |
README
1== Introduction 2 3FiSH is an encryption add-on module for https://irssi.org/[irssi]. Uses 4the https://en.wikipedia.org/wiki/Blowfish_(cipher)[Blowfish cipher] to 5encrypt private and public messages in *ECB* or *CBC* modes, using a 6specified key. It also includes a secure Diffie-Hellman key exchange for 7private chat. 8 9== Requirements 10 11The requirements for building FiSH-irssi are: 12 13* cmake 14* pkg-config 15* Glib 2.0 16* OpenSSL 17* irssi (with includes) 18 19=== Debian - Ubuntu 20 21.... 22# apt-get install build-essential irssi-dev libglib2.0-dev libssl-dev cmake git 23.... 24 25=== OpenBSD 26 27.... 28# pkg_add glib2 irssi cmake git 29.... 30 31=== FreeBSD 32 33* https://www.freshports.org/irc/irssi-fish/[Official package] 34 35=== Arch Linux 36 37.... 38# pacman -S cmake pkg-config glib2 openssl irssi 39.... 40 41* https://aur.archlinux.org/packages/fish-irssi-git/[AUR package] 42 43=== CentOS - Fedora 44 45.... 46yum install gcc pkgconfig cmake irssi irssi-devel openssl openssl-devel glib2 glib2-devel 47.... 48 49* @duritong 50https://copr.fedorainfracloud.org/coprs/duritong/irssi-fish/[copr 51repository] with binary packages 52 53== Building 54 55Just type in the following commands: 56 57.... 58$ git clone https://github.com/falsovsky/FiSH-irssi.git 59$ cd FiSH-irssi 60$ cmake . 61$ make 62.... 63 64If you want to install to */usr* instead of */usr/local* 65 66.... 67$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr . 68$ make 69.... 70 71Run `make install` as a privileged user (if needed) to install it. 72 73== Running 74 75If you installed the module in the default directory, you just need to 76run the following command inside irssi to load it: 77 78.... 79/load fish 80.... 81 82If not, just include the path while loading: 83 84.... 85/load /home/username/libfish.so 86.... 87 88=== Load automatically at start-up 89 90.... 91echo "load fish" >> /home/username/.irssi/startup 92.... 93 94== Configurations 95 96FiSH-irssi has some configurations that can be set via `/set` on irssi. 97 98.... 99process_outgoing 100.... 101 102FiSH outgoing messages. 103 104Default value is 1 105 106.... 107process_incoming 108.... 109 110unFiSH incoming messages. 111 112Default value is 1 113 114.... 115auto_keyxchange 116.... 117 118Do an automatic key exchange in private messages. 119 120Default value is 1 121 122.... 123plain_prefix 124.... 125 126Prefix needed to send an unFiSHed message. For example: 127 128`+p Hi there in clear text` 129 130Default value is `+p ` 131 132.... 133mark_encrypted 134.... 135 136String used to mark a FiSHed message. 137 138Default value is `\002>\002 ` 139 140.... 141mark_position 142.... 143 144Defines if the mark should be a prefix (1) or a suffix (0). 145 146Default value is 1 147 148.... 149nicktracker 150.... 151 152Allows seamless conversations when your chat partner changes his nick. 153This feature will copy the old key to use with his new nick. It affects 154nick changes for opened queries! 155 156Default value is 1 157 158.... 159mark_broken_block 160.... 161 162Indicates whether a message is incomplete. 163 164Default value is `\002&\002` 165 166== Commands 167 168.... 169/topic+ <message> 170.... 171 172Sets a FiSHed topic in the current channel. 173 174.... 175/topic+ TAB 176.... 177 178Allows to edit a FiSHed topic. 179 180.... 181/notice+ [nick / #channel] <message> 182.... 183 184Sends a FiSHed notice to the current window or to the specified target. 185 186.... 187/me+ <message> 188.... 189 190Send a FiSHed action to the current window. 191 192.... 193/setkey [servertag] [nick / #channel] <key> 194.... 195 196Sets the key used to FiSH the messages for the current window or to the 197specified target. To use CBC mode, prefix the key with `cbc:`. 198 199.... 200/delkey [servertag] [nick/#channel] 201.... 202 203Unsets the key used to FiSH the messages for the current window or to 204the specified target. 205 206.... 207/key|showkey [servertag] [nick / #channel] 208.... 209 210Shows the used key to FiSH the messages for the current window or to the 211specified target. The key will appear in the target window. 212 213.... 214/keyx [-ecb|-cbc] [nick] 215.... 216 217Forces a DH key exchange in the current window or to the specified 218target. The default mode is CBC, use the `-ecb` parameter to force ECB 219mode. 220 221.... 222/setinipw <password> 223.... 224 225Sets a custom password used to cipher the contents of blow.ini. 226 227.... 228/unsetinipw 229.... 230 231Unset the custom password used to cipher blow.ini. 232 233.... 234/fishlogin 235.... 236 237Used to ask again for the blow.ini password if the user inserts an 238invalid password at start-up. 239 240.... 241/fishhelp|helpfish 242.... 243 244Show a little help inside irssi. 245 246== Tested 247 248FiSH-irssi has been tested on various OS and arches: 249 250* Linux/x86 251* Linux/sparc 252* Linux/arm 253* OpenBSD/x86 254* OpenBSD/macppc 255* OpenBSD/sgi 256* FreeBSD/x86 257* NetBSD/x86 258
README.md
1[![Build Status](https://travis-ci.org/falsovsky/FiSH-irssi.svg?branch=master)](https://travis-ci.org/falsovsky/FiSH-irssi) 2 3# Introduction 4 5FiSH is an encryption add-on module for [irssi](https://irssi.org/). 6Uses the [Blowfish cipher](https://en.wikipedia.org/wiki/Blowfish_(cipher)) to encrypt private and public messages in **ECB** or **CBC** modes, using a specified key. 7It also includes a secure Diffie-Hellman key exchange for private chat. 8 9# Requirements 10 11The requirements for building FiSH-irssi are: 12 13* cmake 14* pkg-config 15* Glib 2.0 16* OpenSSL 17* irssi (with includes) 18 19## Debian - Ubuntu 20 21``` 22# apt-get install build-essential irssi-dev libglib2.0-dev libssl-dev cmake git 23``` 24 25## OpenBSD 26 27``` 28# pkg_add glib2 irssi cmake git 29``` 30 31## FreeBSD 32 33* [Official package](https://www.freshports.org/irc/irssi-fish/) 34 35## Arch Linux 36 37``` 38# pacman -S cmake pkg-config glib2 openssl irssi 39``` 40 41* [AUR package](https://aur.archlinux.org/packages/fish-irssi-git/) 42 43## CentOS - Fedora 44``` 45yum install gcc pkgconfig cmake irssi irssi-devel openssl openssl-devel glib2 glib2-devel 46``` 47 48* @duritong [copr repository](https://copr.fedorainfracloud.org/coprs/duritong/irssi-fish/) with binary packages 49 50# Building 51 52Just type in the following commands: 53 54``` 55$ git clone https://github.com/falsovsky/FiSH-irssi.git 56$ cd FiSH-irssi 57$ cmake . 58$ make 59``` 60 61If you want to install to **/usr** instead of **/usr/local** 62 63``` 64$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr . 65$ make 66``` 67 68Run ``make install`` as a privileged user (if needed) to install it. 69 70# Running 71 72If you installed the module in the default directory, you just need to run the following command inside irssi to load it: 73 74``` 75/load fish 76``` 77 78If not, just include the path while loading: 79 80``` 81/load /home/username/libfish.so 82``` 83 84## Load automatically at start-up 85 86``` 87echo "load fish" >> /home/username/.irssi/startup 88``` 89 90# Configurations 91 92FiSH-irssi has some configurations that can be set via ``/set`` on irssi. 93 94``` 95process_outgoing 96``` 97FiSH outgoing messages. 98 99Default value is 1 100 101``` 102process_incoming 103``` 104unFiSH incoming messages. 105 106Default value is 1 107 108``` 109auto_keyxchange 110``` 111Do an automatic key exchange in private messages. 112 113Default value is 1 114 115``` 116plain_prefix 117``` 118Prefix needed to send an unFiSHed message. For example: 119 120``+p Hi there in clear text`` 121 122Default value is ``+p `` 123 124``` 125mark_encrypted 126``` 127String used to mark a FiSHed message. 128 129Default value is ``\002>\002 `` 130 131``` 132mark_position 133``` 134Defines if the mark should be a prefix (1) or a suffix (0). 135 136Default value is 1 137 138``` 139nicktracker 140``` 141Allows 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! 142 143Default value is 1 144 145``` 146mark_broken_block 147``` 148Indicates whether a message is incomplete. 149 150Default value is ``\002&\002`` 151 152# Commands 153 154``` 155/topic+ <message> 156``` 157Sets a FiSHed topic in the current channel. 158 159``` 160/topic+ TAB 161``` 162Allows to edit a FiSHed topic. 163 164``` 165/notice+ [nick / #channel] <message> 166``` 167Sends a FiSHed notice to the current window or to the specified target. 168 169``` 170/me+ <message> 171``` 172Send a FiSHed action to the current window. 173 174``` 175/setkey [servertag] [nick / #channel] <key> 176``` 177Sets 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:```. 178 179``` 180/delkey [servertag] [nick/#channel] 181``` 182Unsets the key used to FiSH the messages for the current window or to the specified target. 183 184``` 185/key|showkey [servertag] [nick / #channel] 186``` 187Shows the used key to FiSH the messages for the current window or to the specified target. The key will appear in the target window. 188 189``` 190/keyx [-ecb|-cbc] [nick] 191``` 192Forces 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. 193 194``` 195/setinipw <password> 196``` 197Sets a custom password used to cipher the contents of blow.ini. 198 199``` 200/unsetinipw 201``` 202Unset the custom password used to cipher blow.ini. 203 204``` 205/fishlogin 206``` 207Used to ask again for the blow.ini password if the user inserts an invalid password at start-up. 208 209``` 210/fishhelp|helpfish 211``` 212Show a little help inside irssi. 213 214# Tested 215 216FiSH-irssi has been tested on various OS and arches: 217 218* Linux/x86 219* Linux/sparc 220* Linux/arm 221* OpenBSD/x86 222* OpenBSD/macppc 223* OpenBSD/sgi 224* FreeBSD/x86 225* NetBSD/x86 226