internals:windows:libs:openssl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
internals:windows:libs:openssl [2008/06/24 19:54] pajoyeinternals:windows:libs:openssl [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== OpenSSL Windows, How to compile ====== ====== OpenSSL Windows, How to compile ======
  
 +For PHP suitable sources and up-to-date information see [[https://github.com/winlibs/openssl]]
 ===== Building OpenSSL 0.9.8 ===== ===== Building OpenSSL 0.9.8 =====
- 
- 
  
  
Line 17: Line 16:
 Configure for Win32 Configure for Win32
 <code bash> <code bash>
-cd  C:\phpbuild\libs\openssl-0.9.8d+cd  C:\phpbuild\libs\openssl-0.9.8k
 perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN32 perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN32
 </code> </code>
Line 24: Line 23:
 Configure for Win64 Configure for Win64
 <code bash> <code bash>
-cd  C:\phpbuild\libs\openssl-0.9.8d+cd  C:\phpbuild\libs\openssl-0.9.8k
 perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN64A perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN64A
 </code> </code>
Line 30: Line 29:
 The configure will prepare the sources to compile OpenSSL for windows 32bit and install it under c:\phpbuilds\apps.  The configure will prepare the sources to compile OpenSSL for windows 32bit and install it under c:\phpbuilds\apps. 
  
-Modify the path using your configurations. Please not the unix directory separators / instead of the Windows backslash \.+Modify the path using your configurations. Please note the unix directory separators / instead of the Windows backslash \
 + 
 +The following steps are only for 0.9.8k, later versions have been fixed. 
 + 
 +  The headers are not compatible with VC9 which seems to be more picky. The openssl/ossl_typ.h header has a forward typedef that reads: 
 +<code>typedef struct ocsp_response_st OCSP_RESPONSE;</code> 
 +  ocsp_response_st is defined in openssl/ocsp.h, this typedef has to be move there. 
 + 
 +  bufferoverflowu.lib is also not present anymore (not needed) in VC9. Comment out the reference in the util/pl/VC-32.pl script on line 142, 276 and 286.
  
 === Assembly languages options === === Assembly languages options ===
Line 36: Line 43:
 PHP build default in 5.2 don't use ASM. PHP build default in 5.2 don't use ASM.
 PHP build default in 5.3 and later uses ASM. PHP build default in 5.3 and later uses ASM.
 +
 +  For 0.9.8k you have to modify  the file crypto\perlasm\x86ms.pl. On the line 273 remove "$extra".
 +
  
 For Win64 builds, use only: For Win64 builds, use only:
Line 82: Line 92:
 <code bash> <code bash>
 nmake -f ms\nt.mak nmake -f ms\nt.mak
 +</code>
 +
 +If you get the following compilation error (with other letters):
 +<code bash>
 +.\crypto\cversion.c(105) : warning C4129: 'p' : unrecognized character escape sequence
 +.\crypto\cversion.c(105) : warning C4129: 'l' : unrecognized character escape sequence
 +</code>
 +
 +Go back to the configure phase and be sure to use only slashed and no backslashes for --openssldir (or --prefix)
 +
 +===== Testing =====
 +
 +The possible point of failures in the OpenSSL implementations are numerous. Thanks to their tests suite, it is possible to minimize the risk by running it after each update:
 +
 +<code bash>
 +nmake -f ms\ntdll.mak test
 </code> </code>
  
internals/windows/libs/openssl.1214337253.txt.gz · Last modified: 2017/09/22 13:28 (external edit)