CryptoGnome Project Diary

I'm stealing SourceForge's idea about keeping diaries. Since I haven't figured out how they run their diary system, this page will have to suffice for the moment. The point is to keep interested observers updated on the progress of CryptoGnome development, especially since this is a part-time project for me and subject to periods of inactivity.

And another thing: the 'Forge says that browsing the CVS repository is a good way to get a clue about the status of the project. Not for me. You're way better off looking here. I commit frequently. I commit broken code. I leave useless comments on check-ins. I reorganize the directory structure. Get an accurate picture, read the diary.


Reorganized the Ordo code quite a bit. It also configures and installs itself using make. No, it's not much progress, but I was just getting a bunch of broken stuff in my Emacs environment to work again, and I got this for free.


Work on the dired support has cascaded to features for the server-side, too. I think it's about time to write up the protocol details, before featuritis makes it impossible.

The dired support works pretty good. You can't create arbitrary files yet, but you can create collections anywhere in the managed repository. You can't delete objects from the repsitory with Ordo, yet.

Have also moved a step closer to supporting multiple content-encodings. Starting to think real hard about the reification problem, and will probably do a CVS-store next.


Been hacking the dired stuff. Actually it's more like hacking the file-name-handler-alist (as used by efs), which is very cool and somewhat tricky. Basically, there's 20 or so pseudo-hook functions which need to be written to incorporate a user-level filesystem into emacs. I'm about halfway done the hooks, but I've got 70% functionality.

So practically, this means that the vanilla file-access stuff sorta works. It's very usable, but mostly because Emacs is incredibly robust. Current problems:


I love VHLLs! The emacs client is now useful, and moving into featuritis mode. Still need to hack the dired mode and metadata handling, but it is very cool as it stands. Give cg-find-file a CryptoGnome URL and you're off!

Once I get dired mode done (metadata handling is a necessary precursor) I'll be using this sucker on a daily basis.


Hacking the network infrastructure for the Emacs client. Successfully (and robustly) sent a request to the server and slurped the response into a buffer. Still need to parse the response buffer; which really means just validate the headers and squirrel them away somewhere, as we are leaving the interpretation of the buffer to higher-level functionality (to better support different content-encodings).

I need a cute name for this client, I really do. Maybe I'll call it "Ordo" after the crypto-hardened Emacs in Neal Stephenson's book...


Just had a brilliant idea, which crystallized out of some XEmacs hackery I've been amusing myself with, my unending delight in efs-mode, and a glass of Hoegaarden beer. Don't know if the beer helped, but it sure tasted good.

As does this idea: Use Emacs as the first user-friendly (Hah!) client. No really, dired-mode is perfect for handling collections without having to reify the directory structure on the client system; we can maintain security by never writing plaintext to disk (yeah yeah, still got to deal with packet sniffers); Scheme data is easy to read...Who could ask for more.\?


It was pointed out to me that my email address on these pages is wrong. It should be fixed now. I'm too busy over at S2 and in Real Life to be doing much here at the moment. Be back soon.


Stomped a buglet or two in the arbitrary ring multiple-precision multiplication code (common/crypto/convolve.scm). I think I'm going to have to rewrite the sucker to explicitly use CPS; there's just too many receive's in there. Besides, I can't use S2 to create a version that will run under LispMe, since LispMe doesn't support call-with-values.


Stole a few cycles from working on S2 to tighten up the configure/make cycle. IOW, make install now works and configures a default unix-fs repository. Actually, it probably doesn't do it right because I haven't thoroughly tested it.

Also a few web-twiddles, mostly on the repository page. Boy, these pages look horrible under Lynx. Is it really the case that <dd> tags don't have a %flow content-model before HTML 4.01? I'm probably not going to change this markup if that's the case (unless SourceForge installs an server-side XML/XSL system like mod_xslt. I suppose I could achieve the same effect with a cgi, but I'd rather work on the project than the web pages, you know?


I was astounded today by the number of web hits I seem to be generating. I didn't think all of that traffic is me so I created the cryptognome-list in an attempt to get some feedback. I reckon I'll create a forum, too. Although I really think they're a poor communications medium, they may be better suited to someone with only a casual interest.


Hacking a bit on the crypto code. Mostly trying out some ideas about a novel approach. Mostly it looks like I'm re-inventing either RSA or or Terry Ritter's BBM ciphers.

Anyway, I'm not quitting just yet. I certainly haven't exhausted the possibilities of the convolution algorithm, just eliminated a large class of uses. Watch this space!


Major web-site updates. Started the diary. It looks like there's going to be some publicity for the CryptoGnome via a column titled "Regular Expressions" by Cameron Laird about Scheme in the Real World (TM). I'll post a link to it if I ever learn one.

Of course this really means that I need to provide some kind of release version, if I want to get any benefit out of getting noticed. It's going to be pure Anonymous CVS for the time being.

Use XEmacs! SourceForge
David Rush
Last modified: Mon Apr 2 17:43:31 BST 2001