IMPORTANT: This is a working draft and not intended for usage yet!
IRCrypt is intended to define an encryption layer for the IRC protocol defined in [rfc1459]. The projects primary goals are:
- Not to interfere with regular IRC. IRC is used as transport protocol, thus stays completely intact. IRCrypt should not cause any problems for regular clients.
- To be easily adoptable, so that it can be adapted for and integrated into a wide range of clients quickly.
- To be flexible in such a way that it supports a wide range of strong cryptographic ciphers.
- To enable encryption and key exchange based on a web of trust.
IRCrypt neither defines custom cryptographic ciphers, nor a way how to use or implement those ciphers. Instead it relies on the OpenPGP standard defined in [rfc4880].
OpenPGP is implemented among other projects by the GNU privacy Guard [gnupg] which can be used for message de- and encryption as well as managing the web-of-trust. The first plug-ins to implement IRCrypt are based on GPG and it is our recommendation to do the same if you want to build a plug-in for your client.
To help IRCrypt grow a little bit faster, there exists a basic version of IRCrypt and some optional extensions. So some parts of the protocol are divided into the definition of the basic version and the optional extensions. The structure of the protocol is as following:
- General protocol information
- Symmetric Cipher
- Asymmetric Cipher
- Basic Version
- Optional Extensions
- Key Exchange
- Basic Version
- Optional Extensions
- [rfc1459] http://tools.ietf.org/html/rfc1459
- [rfc4880] http://tools.ietf.org/html/rfc4880
- [gnupg] http://www.gnupg.de