I am currently in the beggining stages of developing secure chat software in Perl, mainly for my own benefit (even though there may be free ones out there). It will be basically peer-to-peer chat although I should be able to design a secure chat server later on. All communications should be handled by IO::Socket.
Here are the modules/components I'll be using. Each client will develop a public/private key pair using this four line Perl RSA code I found at www.cypherspace.org/~adam/rsa. A random session key will be generated and RSA encrypted with the public key of the other client. Once the session key is decrypted, I will use the Blowfish module for encryption of the transmission.
I have a question regarding performance. As this is a chat system and is limited in speed to manual typing, I don't foresee any performance slowdowns. However, should I decide to transmit files across similar to IRC's dcc send command, will performance be sacrificed? Also, if I reimpliment this as a secure chat server, provided I fork of the processes accordingly, will performance also suffer.
I have toyed with the idea of writing this in c but why do so if I can do it in perl and make it more portable in the process.