ngHttp2 and OpenSSL win32/i386/x86 and win64/x64_86 (a.k.a. x86_64) builds for Windows
Posted by jpluimers on 2018/08/08
[WayBack] ngHttp2 DLLs has a simple a version scheme. The build inside the Windows PHP distribution includes these version numbers. The TreadSafe versions work as plug in replacement for github.com/grijjy/DelphiScalableClientSockets/tree/master/Bin which is used by github.com/grijjy/GrijjyFoundation/blob/master/Grijjy.Http.pas#L11. You obtain them via [WayBack] PHP For Windows: Binaries and sources Releases; and at the time of writing these were the most recent versions:
- [WayBack] windows.php.net/downloads/releases/php-7.2.7-Win32-VC15-x86.zip
- [WayBack] windows.php.net/downloads/releases/php-7.2.7-Win32-VC15-x64.zip
[WayBack] OpenSSL DLLs has a much more complex version scheme, as they are numeric but OpenSSL releases are not.
- DLLs have four numbers
a.b.c.d - OpenSSL versions have three numbers and a letter
a.b.c.x - The letter matches the fourth digit, though the ones marked with * have not been used yet:
# letter # letter # letter # letter # letter remark 1 a 6 f 11 k 16 p 21 u 2 b 7 g 12 l 17 q 22 v * 3 c 8 h 13 m 18 r 23 w * 4 d 9 i 14 n 19 s 24 x * 5 e 10 j 15 o 20 t 25 y * 26 z *
[WayBack] Index of /SSL has “Pre-compiled Win32/64 libraries without external dependencies to the Microsoft Visual Studio Runtime DLLs, except for the system provided msvcrt.dll.”
These work no matter what development/deployment stacks you use (including a Visual Studio based stack).
The most recent version as of writing is 1.0.2o, which maps to 1.0.2.20 which contains libeay32.dll and ssleay32.dll for both the i386-win32 and x86_64-win64 build (not sure why they both use 32 in the name):
openssl-1.0.2o-i386-win32.zip
openssl-1.0.2o-x64_86-win64.zipwhich supportsx86_64as this site is about the only one usingx64_86in the name
Background reading:
- [WayBack] Versioning – OpenSSLWiki
- [WayBack] OpenSSL Cryptography and SSL/TLS Toolkit: Release Strategy; First issued 23rd December 2014; Last modified 29th May 2018
- [WayBack] Binaries – OpenSSLWiki
These binaries are for instance used by (most of them are behind or far behind on the OpenSSL version):
- Avira Antivirus
- subversion
- git mingw64
- VMware Tools
- Microsoft OneDrive
- Delphi Indy communications library
Speaking of which: this is a recent Delphi wrapper around libeay32.dll: [WayBack] GitHub – lminuti/Delphi-OpenSSL: Delphi implementation of OpenSSL
–jeroen






Allen Drennan said
I have been testing some OpenSSL 1.1.1 builds lately that are cross platform as well. I might share an article on that when OpenSSL 1.1.1 is finally official. Glad you are able to use some of our nghttp2 code, we just followed the build instructions from their website.
jpluimers said
Sharing that would be much appreciated. A co-worker played around with nghttp2, and got it working for some web socket kind of stuff. He is really happy with it. I just found out that many places in the version control system had hard coded and old openssl libraries, so I have replaced all of them with the most recent one.