Encryption support by Jeff Costlow . Blowfish encryption algorithm by Bruce Schneier (http://www.counterpane.com/blowfish.html), implementation by Jim Conger. MD5 implementation by L. Peter Deutsch. Instructions: While typing a note, pull down the menu, and toggle Encryption on. When you save (i.e. when you press the Done button), it will ask you for a password. The file will saved as 1.enc, 2.enc, 3.enc, etc. These files can be loaded again, although you will have to supply the correct password. They will show up in the directory as . (This is to foil any plaintext attacks.) Similarly, you may toggle the Encryption setting off while editing a note, and the file will be saved in plaintext with an appropriate title. To install this binary, place it where you like, and then make a symlink for the launchpad. This binary is not compiled as an aps module, it is compiled as a binary with a main(), so you can run it like normal. I have not tried compiling this as an aps module, but I don't think there is any reason why it wouldn't work. Files: README.encryption - this file notes.mips.gz - the binary gzipped. Just gunzip and rsync it. ENCRYPTION: I have registered this program with the U.S. Bureau of Export Administration (http://www.bxa.doc.gov/Encryption/Default.htm), so it is totally legal to export from the U.S. as the encryption that it uses is publicly and freely available. The encryption currently md5 hashes the user password, and uses that as the blowfish key. This means that you are effectively using 128 bit encryption, even though your password certainly has less than 128 bits of entropy in it. WARNING: If you forget your password, I can't help you get it back. There's absolutely nothing I can do. NOTES: The currently shipping "notes" program will try to read the first line of the encrypted file, and will get garbage characters. This would, of course, be fixed if the notes application were to be upgraded to use my code. The regular notes application has a bug in that if you repeatedly open and save notes, extra linefeed(I think) characters are added to the end. This means the file grows by 1 byte everytime you save it. The encrypted version doesn't do this. The JFFS filesystem probably leaves your old files laying in flash RAM somewhere. This means if you have a non-encrypted note, and you encrypt and save it, the old note will probably still be stored in flash RAM. I don't currently know of any undelete utilities for JFFS, but the point is that someone who is very determined probably wouldn't crack your encryption, they'd find other ways to find the info. The md5 and blowfish code is compiled directly into the binary, rather than being in a shared lib or elsewhere. As far as I know, neither is already installed on the Agenda anywhere. I wanted to keep this binary as simple as possible, so I compiled them in directly. The other applications might also want to use encryption, in which case, the encryption might want to be moved out to shared libs. TODO: The program does not compress files before encrypting them. Usually encryption programs compress their input before encrypting it, this not only saves space, but it foils some cryptographic attacks. I am NOT currently compressing. It probably should be, but I am a bit worried about speed and binary size. (I didn't feel like porting zlib) Final: I would like Agenda to integrate this into their CVS source tree, so I don't have to maintain patches.