LibCurve25519

47 Downloads

What It Is

First, it is extremely Alpha Quality. I have a lot of work to do on it yet before it is ready for use in WoW in the first place, as well as some research/testing to do to make it capable of signing messages. That said, it is a functional implementation entirely in Lua of D.J. Bernstein's Curve 25519 algorithm. It uses 255 bit public and private keys (64 Hex digits), to allow for the calculation of a shared secret. Coming soon after will be an implementation of a block cipher for faster symmetric encryption. As stated earlier, I will also be researching if message signing/authentication is possible. Finally, if there isn't already an implementation of a secure hashing algorithm in Lua, I will be adding that as well.

Why an Encryption Library?

I have a few ideas running around in my head for some more interesting things that could happen in-game if only encryption were available. Roleplaying addons which provide new currency or reputation systems, new RP items, etc. are nice, but far too easy to exploit. Encryption would make that extremely difficult. My personal goal, however, is to get an extremely low overhead P2P overlay functioning in WoW, as I believe a lot of amazing things could be built on top of that, if, of course, it was implemented correctly.

Alpha Quality?

Yes. At current, my source for the library was written entirely in standalone Lua, and I have not taken efforts yet to implement a table cache for the mathematics, and the algorithm uses tables like crazy. At current, it is extremely inefficient in that area. If the efficiency is not good enough after that optimization, I may have to parallelize the algorithm so that it does not interrupt the framerate in game.