zoukankan      html  css  js  c++  java
  • windows平台下编译openSSL

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

  • 相关阅读:
    Privacy Policy
    privacy
    将一个无法一次读入内存的大文件排序
    java实现二叉树的非递归遍历
    java静态方法同步问题
    关于java静态方法继承问题
    Android 代码写布局
    Android自定义ImageView实现手势放大图片的控件,无需依赖任何第三方。
    Gradle版本更换问题
    Android的AlertDialog实现圆角边框
  • 原文地址:https://www.cnblogs.com/fangying7/p/2374083.html
Copyright © 2011-2022 走看看