由於信息安全大賽要使用加密算法,查找相關文檔之后決定使用openSSL。OpenSSL整個軟件包大概可以分成三個主要的功能部分:密碼算法庫、SSL協議庫以及應用程序。OpenSSL的目錄結構自然也是圍繞這三個功能部分進行規划的。
編譯openSSL的源碼有三種方式,具體的情況源碼根目錄的Makefile中有說明;
(1)windows平台下使用Microsoft Visual C++編譯器編譯:
(2)windows平台下使用GNU MinGW和Cygwin編譯:
(3)在Linux平台下使用gcc編譯:
首先我們看一看openssl-1.0.1的源碼,源碼根目錄的README文件(看軟件包的README文件是個好習慣!)中有:
To install this package under a Unix derivative, read the INSTALL file. For
a Win32 platform, read the INSTALL.W32 file. For OpenVMS systems, read
INSTALL.VMS.
所以在windows平台下編譯應該按照INSTALL.W32文件來做,在Linux平台下面按照INSTALL文件來做。
(1)windows平台下面使用cl編譯器來編譯:
如果你想使用Visual C++的匯編器來編譯,那么是首先要有nasmw.exe或者nasm.exe。並且把他們放到PATH環境變量中。
首先生成配置文件,把平台配置為VC-WIN32:
> perl Configure VC-WIN32 --prefix=c:\some\openssl\dir
--prefix指定openssl被安裝的目錄。
然后,用匯編器執行Makefile文件。
- If you are using NASM then run:
> ms\do_nasm
- If you don't want to use the assembly language files at all then run:
> perl Configure VC-WIN32 no-asm --prefix=c:/some/openssl/dir
> ms\do_ms
然后在VC的控制台中運行:
> nmake -f ms\ntdll.mak
如果一切正常,你會獲得一些dll文件和exe文件,他們存放在out32dll文件夾中。
如果你想要測試文件,那么:
> nmake -f ms\ntdll.mak test
要安裝openssl的話,使用:
> nmake -f ms\ntdll.mak install
在使用VC編譯之后生成的是在out32dll里面的libeay32.lib以及ssleay32.lib這兩個靜態庫,以及libeay23.dll和ssleay23.dll兩個動態庫。
在使用Cygwin給MinGW編譯生成的是根目錄下面的libcrypto.a和libssl.a這兩個靜態庫。
(2)Windows 平台下使用GNU MinGW和Cygwin來編譯
