ETNA gets encryption: ETNA 2.0 released!

Community Forums/Showcase/ETNA gets encryption: ETNA 2.0 released!

RepeatUntil(Posted 2006) [#1]


After a lot of hard work, ETNA 2.0 is out! ETNA stands for Easy daTabase Network Access. This library helps to connect to a web database of type PHP/MySql (using thread for no slow down of your game). This library may be used with all versions of Blitz (BlitzBasic, Blitz3D, BlitzPlus, BlitzMax, ...), PureBasic and DELPHI.
The great news is that now ETNA uses ultra-secure ENCRYPTION to communicate back and forth with the php script. And ETNA is as easy as before to use, even with this powerful new functionality!

The library is perfect for games with online score, online chat, stats of players, persistent players, master server, etc.

List of features:
* Use of threads: no more slow down of the program while you access the database.
* Unlimited number of threads can run, thanks to the queueing system. You don't have to wait for the completion of a request.
* Ultra-secure encryption to protect your data during the communication with the server (using keys to encrypt/decrypt).
* Automatic detection of encryption when receiving a message so that encryption is as easy as no encryption.
* Very easy to use! Less than 10 lines of code to use ETNA, including threads and encryption!
* 100% free!! (see license)

You can download it from here:
http://repeatuntil.online.fr/Etna
This library is FREE, but please pay attention to the special license.
Please try the examples in the "Examples/" directory...

Note that ETNA is now working with BlitzMax 1.18 (and any other version in fact)! (Windows only)

This library was written by Progi1984 and myself. Please give us some feedback!! Also we are looking for people willing to wrap ETNA for other languages (only 40 lines of code).




boomboom(Posted 2006) [#2]
This looks really usefull. I just wish I had a use for it :(


RepeatUntil(Posted 2006) [#3]
I forget to say: previous users of ETNA within Blitz3D, do not forget to replace the old .decls with the new one (otherwise this won't work!).


Boiled Sweets(Posted 2006) [#4]
AWESOME. THIS PRODUCT ROCKS!!!

Will implement the new version. MANY THANKS!


t3K|Mac(Posted 2006) [#5]
nice one. updating right now...


RepeatUntil(Posted 2006) [#6]
Thanks for the feedback of our "old" users. Anyone else tried this library???? This library should be useful for a lot of people out there....

Oops, there was a small mistake in the simplest example in the package: this example was not working. This is now corrected! (download the package here: http://repeatuntil.online.fr/Etna).

For BlitzMax, I have tested if the use of CString rather than $z could produce a memory leak, and the answer is : no memory leak at all! Everything is safe!!


Boiled Sweets(Posted 2006) [#7]
About to use this in a second game. It's such a cool and easy to use lib!


Tibit(Posted 2006) [#8]
This looks great, a really good reason for me to buy a book on php.


Rimmsy(Posted 2006) [#9]
Cool. I just tried it. It actually taught me lots about MySQL and php! Any idea when you might have the master server bits written?


RepeatUntil(Posted 2006) [#10]
Yes, before ETNA, I knew nothing of php and mySql. But these 2 languages are a piece of cake for Blitz programmer! This is fairly easy to start from examples (like the one you found in the ETNA package) and to modify them and customize them.
So I would say ETNA does not require that you have a good knowledge of php/mySql: you can always learn by doing it ;-)

For the master server, actually, it's written now. This is using the gnet part of the blitz web site (see gnet in the navigation bar) -> very easy to put in place. But you could also use your own server, to customize more (for example, in my game, I have also the number of players, the state of the game, ...).
OK, I will release it before or during the week-end!


Rimmsy(Posted 2006) [#11]
Sweet! Thank RepeatUntil. Lovin' your work, guys.


RepeatUntil(Posted 2006) [#12]
Sorry, I can not release ETNA-gnet, since there is a newly introduced bug in the official gnet.php (that ETNA is using). I am waiting for an answer... (http://www.blitzmax.com/Community/posts.php?topic=59462)


Boiled Sweets(Posted 2006) [#13]
Hi RepeatUntil,

I have a small request. I am using the encryption and want to know through the ETNA_GetState function whether the authentication was worked. Could there be a new state that flags the fact that authentication failed?

Does the encryption stop anyone from calling the .php script direct with values? Imagine they want to post to the online scores database, could they do it if the encrpytion is on. What actually gets transmitted?


RepeatUntil(Posted 2006) [#14]

I have a small request. I am using the encryption and want to know through the ETNA_GetState function whether the authentication was worked. Could there be a new state that flags the fact that authentication failed?


I am not sure to understand what you want. First, on the ETNA side, the encryption NEVER failed. ETNA always encrypt successfully any string. On the php side, if the encryption key is the same, there is no reason for the php script to fail. When the authentication does not work, this is because of a mistake from the user (I know, I did some!). Could you explain me why you are thinking about this?


Does the encryption stop anyone from calling the .php script direct with values? Imagine they want to post to the online scores database, could they do it if the encrpytion is on. What actually gets transmitted?


If the php is using encryption, then it can not receive any arguments without encryption. Because the php will think the arguments are encrypted, it will decrypt it, and of course the arguments will be completely messed up. What is sent to the php is a string of type "3F4503A3E4FE" (encrypted), but if you send "&score=12" without encryption, the php script will mess it up. It's possible to have a php script which understand BOTH encrypted or non encrypted arguments, but this means that encryption is completely useless, as anyone could send normal arguments to the php. ETNA does not allow that.

I hope I was clear enough...


t3K|Mac(Posted 2006) [#15]
you can protect your phpscript from abusing with user-given values. think about a secret key code that must be identical to let the data update. i am using both methods (etna-encryption and internal script protection) together for maximum user-fiddling-protection.


Jeremy Alessi(Posted 2006) [#16]
Wow, sweet!


Beaker(Posted 2006) [#17]
Easy to use, well documented, and very useful. Thanks.