[Server-devel] make-server-delegations output and importing to XS

Daniel Drake dsd at laptop.org
Thu Apr 22 16:30:36 EDT 2010


Hi Martin,

We're working on the antitheft stage where the private signing server
generates delegations and sends them to the internet-accessible
antitheft server.

We can work with the scripts that are already in bios-crypto but we're
a bit confused by their design. Perhaps we are missing something, or
maybe we're just encountering a disconnect being the first project to
be doing this.

The make-server-delegations script handles all laptops for all
schools, but is written in a model where all output data goes in 1
directory, separated by school, where the school name is embedded in
the output filename.

But the XS expects something quite different -- if you're putting
these on USB, it expects one-directory-per-school (where directory
name = school name), and within that directory it looks for very
specific names (e.g. d-lease.sig) which do not embed the name of the
school. And if you're going to be setting up an internet-based sync
service instead of using USB, the same structure makes sense, since
each school just rsyncs an entire directory and then passes it to
xs-activation-import.

While it's not hard to write a script to take the
make-server-delegations output and put it in the form expected by the
XS, we're wondering why this is necessary. Surely every deployment is
going to need to do this.

We're also a little unsure of the design -- it maintains 1 open file
handle per school. Thats 400 here, or presumably thousands if we're
talking a bigger deployment.


I propose a different design:

make-server-delegations works for 1 school, with 1 key, to produce a
single file full of delegations. The input file is:
	SN1,UUID1
	SN2,UUID2
and the output goes to stdout. (designed to be redirected to a file)

That way, the user gets much more control over the output structure.
Here, we'd run it one time for every school we want to process.

Thinking on an ongoing basis, it also means that it's much easier to
only generate delegations for the schools where the lists of laptops
have changed. You can store md5sums of the one-file-per-school laptop
lists and only re-run that school through the delegation generator if
it has changed since yesterday.

Thoughts?
Daniel


More information about the Server-devel mailing list