Hey guys-
This thing stalled out. Life got in the way (moved, quit my job, found a better job, got divorced, excellent!). Anyway, I would like to send the current version of the code to whoever wants to work on it and answer questions when possible.
What we were working on before the shit hit the fan was to have everyone generate their own private/public keys and username. Then (and here's where the filtering happens) they have to register with a community authorization server (one centralized server to start, but the option to expand and have as many different auth servers as you all deem fit), which will simply keep track of their username and a unique hash (relatively small).
When a client logs on, he sends his username and public key to the game server. The game server asks the auth server if the user is registered and takes care of all the signing/verifying conversation with the client. The game server also keeps track of the bans. I believe we were thinking of having the option to add a list of "trusted" game server ip's to retrieve sub-group/community ban lists as well, but I don't remember how much of that was implemented.
What was working last time I checked was (a) the dialog between the server, client, and authorization server across my home network (b) the server's ban list and ban commands. © remote authorization admin console using DSA verification to ensure that no one but the admins can modify the auth server.
What wasn't incorporated was my friend's elliptical DSA signing/verifying routines. I think he has them written, but I haven't had time or energy to put them in the right places. For the auth server stuff, there are "Verify()" functions installed, but they just always return true to test.
I may pick this up again some day, but I was pretty burnt out on it before the shit blew. If you're a developer and interested, please contact me at jack dot sankey at gmail dot com. The quake3 code is ugly in places, but I always comment the crap out of all my work.
Cheers,
-Jack
Advertisement
Advertisement