net-snmp源码VS2013编译添加加密支持(OpenSSL)

snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块。

认证使用的算法是一般的消息摘要算法,例如MD5/SHA等。这一部分在net-snmp的源码中已经有相关的实现,无需再使用外部库来支持它。

加密使用的算法一般可以是DES/AES等。这一部分在net-snmp的源码中没有想关的实现,需要使用外部加密算法库(OpenSSL)来支持。

1、安装或编译OpenSSL

要使得编译出来的net-snmp支持加密,首先我们需要OpenSSL库的相关文件(头文件的库文件)。这可以采用OpenSSL的源码来编译的方式,也可以直接下载已经编译好文件来使用即可。

如果是自己编译,网上有很多相关的文章了,参考着来做就是。这不是本文的重点,这里就不写了。

最快速的方式就是网上下载一个现成的来用就是了。这里我下载的是这个http://ftp.pconline.com.cn/30fde0ee26ae331abcca7f901515b536/pub/download/201010/Win32OpenSSL-1_0_1g.exe

下载之后直接双击安装即可。

下图是我这里安装后的位置,红框中的是将要用到的两个文件夹。

2、在net-snmp工程中设置相关属性

2.1、设置包含目录和库目录

在libsnmp和snmpd项目中添加包含目录和库目录。(你也可以把所有项目的都加上,我这里只用到这两个项目)其中libsnmp这个项目必须加上,否则不支持加密。

2.2、设置预处理器定义

这里要添加一个宏定义NETSNMP_USE_OPENSSL。可以修改<net-snmp/net-snmp-config.h>文件,但是这种做法会导致要所有的项目都必须设置头文件和库文件的目录,所以不是很好。这里我们只需要libsnmp和snmpd这两个项目支持即可,所以只需要设置这两个项目的属性。

3、编译。编写配置文件

编译这里就不说了,以后写一篇文章来专门讲讲使用VS2013编译net-snmp 5.7。

使用的时候必须使用制订了SNMPv3验证方式相关参数的配置文件才可。

具体的可以见这篇文章

http://www.cnblogs.com/oloroso/p/4844907.html

http://www.cnblogs.com/oloroso/p/5001672.html

net-snmp源码VS2013编译添加加密支持(OpenSSL)(在VS里配置编译OpenSSL)的更多相关文章

  1. net-snmp源码VS2013编译添加加密支持(OpenSSL)

    net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...

  2. [C#源码]VS各版本转换器(支持VS2012,VS2013)

    项目名称:[C#源码]VS各版本转换器(支持VS2012,VS2013) 下载内容: (C#源码)VS各版本转换器 实现功能: 支持vs2003-vs2013的各版本转换,由高到低,由低到高都支持. ...

  3. 【Devops】【docker】【CI/CD】jenkins源码管理,添加SSH地址后报错+Jenkins构建报错:Please make sure you have the correct access rights and the repository exists.

    jenkins源码管理,添加SSH地址后报错: Could not read from remote repository. Please make sure you have the correct ...

  4. android源码framework下添加新资源的方法

    编译带有资源的jar包,需要更改frameworks层,方法如下: 一.增加png类型的图片资源 1.将appupdate模块所有用到的png格式图片拷贝到framework/base/core/re ...

  5. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

  6. CEF3编译添加mp4支持(对应CefSharp63.0.3),chromium63(3239),附release下载

    编译环境需求(3239版本) win7或更高,64位 vs2017 15.3.2+ 默认位置安装 不需要安装附带的win10sdk,sdk单独装 Windows 10.0.15063.468 SDK ...

  7. 支持JDK19虚拟线程的web框架之四:看源码,了解quarkus如何支持虚拟线程

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 前文链接 支持JDK19虚拟线程的web框架,之一:体 ...

  8. 如何在IDEA里给大数据项目导入该项目的相关源码(博主推荐)(类似eclipse里同一个workspace下单个子项目存在)(图文详解)

    不多说,直接上干货! 如果在一个界面里,可以是单个项目 注意:本文是以gradle项目的方式来做的! 如何在IDEA里正确导入从Github上下载的Gradle项目(含相关源码)(博主推荐)(图文详解 ...

  9. SpringBoot 源码解析 (五)----- Spring Boot的核心能力 - 自动配置源码解析

    在上一篇博客中分析了springBoot启动流程,大体的轮廓只是冰山一角.今天就来看一下springBoot的亮点功能:自动化装配功能. 先从@SpringBootApplication开始.在启动流 ...

随机推荐

  1. [转]Modernizr的介绍和使用

    转载自:http://blog.chinaunix.net/uid-21633169-id-4286857.html 传统浏览器目前不会被完全取代,令你难以将最新的 CSS3 或 HTML5 功能嵌入 ...

  2. HIT2739 The Chinese Postman Problem(最小费用最大流)

    题目大概说给一张有向图,要从0点出发返回0点且每条边至少都要走过一次,求走的最短路程. 经典的CPP问题,解法就是加边构造出欧拉回路,一个有向图存在欧拉回路的充分必要条件是基图连通且所有点入度等于出度 ...

  3. BZOJ4624 : 农场种植

    设$A[i][j]=[a[i][j]=G],B[i][j]=[b[i][j]=L]$,枚举右下角,则对应$(A-B)^2$的和就是匹配成功的格子数. $(a-b)^2=a^2+b^2-2ab$,将矩阵 ...

  4. HTTPS, SPDY和 HTTP/2性能的简单对比

    中文原文:HTTPS, SPDY和 HTTP/2性能的简单对比 整理自:A Simple Performance Comparison of HTTPS, SPDY and HTTP/2 请尊重版权, ...

  5. Codeforces Round #253 (Div. 2) B - Kolya and Tandem Repeat

    本题要考虑字符串本身就存在tandem, 如测试用例 aaaaaaaaabbb 3 输出结果应该是8而不是6,因为字符串本身的tanderm时最长的 故要考虑字符串本身的最大的tanderm和添加k个 ...

  6. Codeforces Round #251 (Div. 2) B. Devu, the Dumb Guy

    注意数据范围即可 #include <iostream> #include <vector> #include <algorithm> using namespac ...

  7. ACM 16进制的简单运算

    16进制的简单运算 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果.   输入 第一行输入一个正整 ...

  8. git两种合并方法 比较merge和rebase

    18:01 2015/11/18git两种合并方法 比较merge和rebase其实很简单,就是合并后每个commit提交的id记录的顺序而已注意:重要的是如果公司用了grrit,grrit不允许用m ...

  9. 通过/etc/rc.local实现开机自动拉起服务

    添加服务到/etc/rc.local 如自动拉起apache服务: /etc/rc.local: #!/bin/sh # # This script will be executed *after* ...

  10. sql:select赋值和set赋值的区别

    1)Set写法 declare @i integer set @i=(select count(*) from test) select @i Select写法 declare @i integer ...