openssl编译,onvif鉴权

本文介绍在Windows 7系统及Visual Studio 2010环境下,如何通过gSOAP实现ONVIF设备的鉴权,并详细说明安装与配置OpenSSL的过程,确保鉴权成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统:win7

开发环境:visual studio 2010

gsoap版本:2.8.21

onvif:使用当前最新版wsdl,在线生成框架(具体参考上一篇)

1.鉴权

对于设有用户名和密码的设备,在进行一些操作之前需要进行鉴权。gsoap用soap_wsse_add_UsernameTokenDigest函数进行鉴权。这个函数需要包含wsseapi.h头文件。要使用这个头文件还需要添加几个相关的文件(具体需要包含的文件后面详说),并且需要安装openssl。

2.编译生成openssl库文件

下载ActivePerl:http://www.activestate.com/activeperl/downloads

安装ActivePerl。在cmd里输入 perl -v看看是否能出来版本号。若提示找不到,就手动设一下环境变量,把“你的路径\Perl64\bin;你的路径\Perl64\site\bin;”添加到PATH里。

下载openssl:http://www.openssl.org/source/

解压。在根目录下有INSTALL.W32,INSTALL.W64之类的文件,描述了在各个系统下怎么样编译openssl。参考这些文件进行如下的操作。

1)打开vs2010的命令提示符输入:

>cd bin;
>vcvars32.bat
2)cd到openssl目录下

32位输入:

>perl Configure VC-WIN32
>ms\do_nasm
>nmake -f ms\ntdll.mak
64位输入:

>perl Configure VC-WIN64A
>ms\do_win64a
>nmake -f ms\ntdll.mak
*若出错:'nasm.exe' 不是内部或外部命令,也不是可运行的程序 。可以上网下一个nasm.exe,放到vs的vc\bin目录下。

执行成功后会在out32dll(out32dll64)文件夹里生成lib,dll等文件

3.vs使用openssl

在vs工程里

添加包含目录:openssl\inc32

添加静态库文件:libeay32.lib

                                ssleay32.lib

 添加动态库文件: libeay32.dll

                                  ssleay32.dll

添加预处理器定义:WITH_DOM

                                    WITH_OPENSSL

(不添加预处理器定义会出现“ERR_get_error”: 找不到标识符、“RAND_pseudo_bytes”: 找不到标识符)

4.鉴权函数使用

将gsoap\plugin目录下的mecevp,smdevp,threads,wsaapi,wsseapi的.h和.c文件拷贝到工程目录下(要用cpp可以直接更改后缀),在include“wsseapi.h”,就能使用soap_wsse_add_UsernameTokenDigest函数进行鉴权了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值