If that's really your argument, we might as well use GnuTLS, that never had a broken hearbeat. Only issue is that the official windows binaries come in about a billion DLLs instead of two...
Microsoft usually fixes such things very fast too, and users can install it on regular patchdays.
The ones they tell you about on that patchday, yes.
If another bug like Heartbleed is found, all Miranda NG binaries would have to be recompiled and released as an emergency release, all users would have to update Miranda NG.
Erm, no? That's the point of DLLs, just update them and leave the rest alone. Only thing needed would be to push new files to the updater repository and you're done. Users with auto-updates turned off could just update the SSL library themselves.
Yes, but it is just a problem of Windows XP not being supported any longer.
Indeed. The reason I originally posted here in the first place instead of just accepting it: Miranda officially supports XP and I've seen other threads specifically testing on XPSP3, so it would make sense to have the basic net code work there as well.
Alright, I have the current source revision building now, let's see what I can do about this.
EDIT: preliminary report: it works, but lacks all error handling and logging. Certificate verification against Windows' certstore is going to be "interesting", but should, in theory, work.
Post Merge: 01 12 2014, 16:20:53
Well, that was easier than I expected. (
Github, I'll create a pull request once it's done).
Built against OpenSSL 1.0.1j (
Package from Shining Light).
Dynamically loads all required libraries, header is only used for type declarations and constants. Certificate verification is unchanged, the code constructs a CryptAPI-Context from OpenSLL X509 data to do that. Handshake uses TLS1.0...1.2, works with all protocols I currently use in Miranda.
OpenSSL is a bit more highlevel than the SChannel methods used before, so there's no traffic logging - we simply don't see it anymore. I do however log the chosen cipher suite, it's actually quite interesting to see who can provide some security and who just barely has something like SSL (hello, ICQ...).
What's still missing: license note for OpenSSL and installer script changes, I don't know enough about the release procedure to do that.
One question I have right away: why was crypt32.dll
not unloaded originally? I've kept it like that, but I wonder...