Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5381232
  • 博文数量: 671
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 7310
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-14 09:56
文章分类

全部博文(671)

文章存档

2011年(1)

2010年(2)

2009年(24)

2008年(271)

2007年(319)

2006年(54)

我的朋友

分类: C/C++

2008-10-22 19:22:36

Windows下Openssl安装以及编程
2007-08-12 15:18

必备条件:

1、安装VC++ 6.0。     
2、下载ActivePerl-5.8.0.806-MSWin32-x86并安装:
3、下载 openssl0.98并解压。
     
安装步骤:完全可以参照openssl目录下的install.win32
1、perl Configure VC-WIN32
如不成功会有明显提示
2、ms\do_ms
推荐使用这种方式
    另外两种方式 如果使用也必须保证本机有编译器才能使用。
      :ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)     
      :ms\do_nasm (需要自己下载)
     
     
3、DOS窗口下转到【Microsoft Visual Studio】\VC98\bin目录下执行 vcvars32.bat 以配置环境变量。
4、跳到openssl目录下,执行:

nmake -f ms\ntdll.mak

如果编译成功,最后的输出都在out32dll目录下:包括可执行文件、两个dll和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib

编程初步:

1、 打开VC-Tools-Options-Directores,在Include files中增加【openssl-0.9.8】\inc32目录;在Libray files中增加【openssl-0.9.8】\out32dll
2、 在源程序中包含以下三个头文件并加入LIB:
#include
#include

#include

#pragma comment(lib, "libeay32.lib")

#pragma comment(lib, "ssleay32.lib")

3、 参考源码开始编程:

(Vs2005使用Vc8的cl编译器)
1、安装ActivePerl//初始化的时候,需要用到perl解释器
2、使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)
3、解压缩openssl的包,进入openssl的目录
4、perl configure VC-WIN32
尽量在这个目录下执行该命令,否则找不到Configure文件,或者指定完整的Configure文件路径。
5、ms\do_ms
在解压目录下执行ms\do_ms命令
6、nmake -f ms\ntdll.mak

编译后
在openssl解压目录下执行,完成编译后。输出的文件在out32dll里面,包括应用程序的可执行文件、lib文件和dll文件

注 意:在运行第五步时,cl编译器会抱怨说.\crypto\des\enc_read.c文件的read是The POSIX name for this item is deprecated(不被推荐的),建议使用_read。呵呵,我可不想将OpenSSL中的所有的read函数修改为_read。再看cl的错误代码 error C2220,于是上MSDN上查找:
warning treated as error - no object file generated
/WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated.
是由于设置了/WX选项,将所有的警告都作为错误对待,所以。。。

于是打开OpenSSL目录下的MS目录下的ntdll.mak文件,将CFLAG的/WX选项去掉,存盘。。。
继续执行nmake -f ms\ntdll.mak

于是成功。。。

参考:

使用 OpenSSL API 进行安全编程

OpenSSL官方站点:   
阅读(2783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~