I'm proud to present version 8.0 of the Hiawatha webserver. In this new major release, Autoconf has been replaced with CMake. The source tarball has been reorganized and the build system with CMake is much easier to maintain for me.
Another big change is that OpenSSL has been replaced with PolarSSL. Unlike OpenSSL, PolarSSL is well documented and easy to learn. Hiawatha's SSL library is much cleaner and simpler due to PolarSSL. No more dirty callback stuff to make it work. It's now more likely that a future release has SNI support.
Don't forget to read the ChangeLog before you upgrade to this release and please let me know what you think of it.
In an earlier post you mentioned a potential problem with PolarSSL, the SSL handshake option doesn't have a timeout value, allowing a potential denial-of-service problem. I looked at this problem back then, and could easily let a connection "hang".
I took a peek at the source, and concluded it would take more than a few minutes to fix it ... I added it to my long "maybe I should look into that someday list", but (as usual) I never did (The code did look pretty clean by the way!)
Has this problem been resolved? I looked at PolarSSL 1.0 (IIRC), I see the latest version is 1.1.1
Also, do you have plans to maintain the 7.x branch for security/serious bugfixes? While I hold no love for OpenSSL, it *does* have widespread usage, which means it has *some* degree of stability. PolarSSL is still fairly new, and I'd prefer to wait a bit before upgrading to the new hiawatha version on my live server...
Thanks!
Martin
PolarSSL based applications can indeed be DoS-ed if no measures are taken. But with PolarSSL it was much easier to create a workaround for this than with OpenSSL. OpenSSL is suffering from the same issue btw. With version 8.0, Hiawatha should no longer be vulnerable for a DoS attack via an incomplete SSL handshake. But you are of course welcome to test it yourself.
If a security issue has been found in 7.x, I will only release a fix for it if someone requests one. Otherwise, it will only be fixed in a 8.x release.
http://files.tuxhelp.org/hiawatha/
Note that starting with version 8, these packages are built against Debian "Squeeze", since Lenny is now EOL. They may or may not work on Ubuntu, but that has not been tested by me, so your mileage may vary.
-Chris
I was wondering if there is a way to have Hiawatha use an existing shared Polarssl library rather than building a new Polarssl library with Hiawatha.
Curiously, how is detecting Polarssl different from detecting openssl? Is it just a cmake issue that is unfamiliar?
I might like to hack a bit if you can give me a clue.