• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H29-Jul-2020-32

src/H03-May-2022-2,6221,918

.gitignoreH A D29-Jul-2020574 5444

.travis.ymlH A D29-Jul-2020240 1716

LICENSEH A D29-Jul-20201.1 KiB2317

READMEH A D29-Jul-20204.2 KiB258173

README.mdH A D29-Jul-20204.3 KiB226161

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