*Update* PDPIRC is on hold for the time being. I have run into the problem that I cannot guarantee that the keys are going to be transmitted in the proper order. This project is on hold until I figure out a way to build in some error-checking/correcting code... perhaps dcc..
PDPIRC was designed after a conversation with Displaced Electron in which he showed me a perl script for caching PGP keys and expressed an interest in somehow or another implementing this into a IRC script. He has since scrapped the idea after being discouraged with the non-portability of the script between pgp2.6.2 and pgp5. I have picked up where he left off (ideawise not codewise) and am kneedeep in learning ircii scripting and implementing a secure transmission of data over irc via "PDPIRC".
After an enthusiastic discussion in #dc-stuff on what the best methods of writing this script would be, the direction for this script changed once again from using the "Blowfish" Algorithm to using the well known PGP program. By using PGP, we do not have to worry about writing the encryption/decryption routines ourselves (and since all I would be able to write it in is perl and well... that is not neccessarily known for its speed). By doing most of the operations required for this project to be all that we hope it will be in perl, we greatly increase the portability of this project.
One of the problems that Displaced Electron ran into was, as we stated before, was the portability of this script (ie the ability to use this script with virtually ANY version of PGP. We believe that we can get around this problem by doing most of the programming in perl. By using perl, we can detect what version of PGP the user has and modify what input we give pgp to successfully get the return that we want, reguardless of platform.
After discussing at length with the people in #dc-stuff but mostly with Displaced Electron the direction that we felt we would like the program to take, he found himself renewed and has notified us that he intends to continue work on his original program where the idea for PDPIRC originally sprang from. As of now we are going to develop our respective programs in parallel with one another while sharing ideas in the hopes that our experiences will mutually benefit one another. Ideally we would like to bring forth one single unified program presented by Resentment.org and Displaced Electron but, I guess we will decide that further along in the development.
Below you will find somewhat of a log/timeline of the development of PGPIRC. This log/timeline is not very neat, but hey, it does the job.
PDPIRC Log/Timeline
- Found ircii resources and coded in checking for and creation of config dirs/files
- Created a .nick2keyid.map file that maps irc NICKs to PGP KeyIDs
- Created routine to check nick -> key mapping and create if one doesn't exist
- Found workaround for ircii not having a chomp function...
- Fixed Problem with USETing vars after one use....
- Successfully coded routine to dump msg to a file ...
- Having problems passing the correct data to pgp through the script
- Solved pgp data problem by creating a unique shell script which runs and then deletes itself OUTSIDE of the ircii script
- First successfull attempt at taking data from /pgp nick message to a pgp encrypted message with users KeyID
- Tried ctcp, msg, & dcc to sucessfully transfer encrypted message but no encounted problem with parts of key being lost or not transmitted in order
- Talked with Displaced Electron & WhiteTrash about problems and have decided to take new approach .. more portable & multiuser capabilities
- Talked with wrlwnd about possible implementation of other algorithms....
- Public discussion in #dc-stuff about best method to keep both portable & multiuser... all agree.. pgp and unique session key for each session (multiuser or not)
*UPDATE* - Outline avaliable here
If you should have any question/comments/ideas, please direct them to J-Dog