[Fresco-devel] Caprice CXX
Tobias Hunger <[email protected]> Sat, 5 Jun 2004 23:39:06 +0200
| Newsgroups | gmane.comp.video.fresco.devel |
|---|---|
| Message-ID | <[email protected]> |
=2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi! I played with the ideas from Nathaniel (see ReFresco postings to this list a while back) about a capability based message passing system and came up with some C++ code. I further included Nathaniels experimental python code for comparison. Status: =2D -------- BOTH VERSIONS ARE ONLY MEANT TO HASH OUT IDEAS. They are not functional and in no way meant for use. Mine manages to pass messages between two objects in the same address space= =20 now. With that breakthrough I decided to show it to all of you for some comments= :-) =46eatures of the C++ version: =2D ----------------------------- Some tests can be run if you have Fresco-Test. Limitations of the C++ version: =2D -------------------------------- * Some of the tests leak memory. The leak is in the test code, so I didn't =A0 bother to fix this yet. * Only objects in the same address space can communicate. Network code is =A0 to be added next. * Capability creation drains enthropy pool at an astonishing pace. Adding s= ome =A0 pseudo random number generator like the one in the python code is requi= red. =A0 This should significantly speed things up as well. * Authorization, etc. which might be required to get an initial (set of) capabilities is not implemented: This will be implemented in some object on top of the message passing code you can see so far. * Propagation of existing Caps between Routers (in a secure way). This will= be =A0 implemented in another object which will work together with the router. I do not want to "push" caps to other routers: A malicious client would n= ot need to guess the caps then. Differences between Nathaniel's and my code: =2D --------------------------------------------- * I use a more TCP-like packet switching approach while Nathaniel is stream= ing complete messages (only splitting them up into streams of packets if he'd need too much space on the server). Requirements: =2D -------------- You will need Prague (from the Fresco tree) to build caprice-cxx. In additi= on =46resco-Test will be required to run the tests (you will need a comparetiv= ly=20 new CVS version of the latter). ToDo: =2D ------ In addition to fixing the limitations: * Add a test that gives an estimation on the randomness of the generated Ca= ps. =A0 The whole notion of security depends on that, so we should test it thoroughly! Please comment. PS: The code is here: http://www.fresco.org/~tobias/caprice.tar.bz2 =2D --=20 Gruss, Tobias =2D ------------------------------------------------------------ Tobias Hunger The box said: 'Windows 95 or better' [email protected] So I installed Linux. =2D ------------------------------------------------------------ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAwj1/v0FZW3NyoqURAlk4AJ4ngyd4n32iuk6xzTgHN22kzfvYoQCgkvWR uqNeUM+j65KxLvR8ZTLT/ik=3D =3DdkNM =2D----END PGP SIGNATURE-----