CBC encryption
whiym opened this issue · 13 comments
Will CBC encryption be implemented? Would be very helpful for better compatibility with other irc clients.
From what I learned only a perl based fish script for irssi uses this - Blowssi.
Do you know any others ?
That's the only one I'm aware of as well. I believe it uses the Crypt::CBC module, but haven't look at it in depth.
And its only used in private conversations.
I'm trying to "learn" the complete process that FiSH does when encrypting a message. To document the entire process. In time, maybe, I will try to implement this.
I also accept patches :-P
We definitely want to implement something else other than ECB.
Right now there's an effort to rewrite the whole codebase to something that is actually maintainable (check it out on the refactoring branch).
As soon as we're comfortable with it and it is merged to master, I may take a look at implementing CTR and/or CBC, as well as message padding.
Do you mean message authentication using the shared key?
Not sure if that's implementable without taking up too much space.
HMAC-SHA1, for example, would take something like 27 bytes in base64, if I'm not mistaken.
Is there any effort from your side to implement this? Since i always have to deal with people using mIRC and their CBC fish implementation - so that would be really great to be able to keyx using CBC.
I started a branch https://github.com/tittof/FiSH-irssi/commits/fish2 that implements XSalsa20 with Poly1305 MAC (overhead 40 bytes).
You can switch that method off and on using /setmethod or /delmethod.
There is also a first lousy attempt to make blowfish cbc part of this plugin but I could use some help here as I'm not too interested in it.
Anyway let me know what you think.
Hi there!
CBC mode has been implemented in the cbc branch - https://github.com/falsovsky/FiSH-irssi/tree/cbc
I tested it with mirc with fish and they can talk correctly.
Hi @falsovsky, cheers for working on this. Unfortunately, while testing it irssi crashed with what I think looks like heap corruption. I'll raise an separate issue for it.
On the latest cbc branch (7b987ec) cbc keyx appears to be working for me, both when I initiate and receive.
Nice! I'm also testing for a few weeks, after that I will merge it into master! Thanks for testing @somnial
Merged into master.