windows平台下编译openSSL

时间:2022-04-02 04:55:39

由于信息安全大赛要使用加密算法,查找相关文档之后决定使用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来编译