openssl中dh算法实现

Openssl的DH实现在crypt/dh目录中,各个源码如下:

(1) dh.h

定义了 DH 密钥方法数据结构以及各种函数。

(2) dh_asn1.c

DH密钥参数的DER 编解码实现。

(3) dh_lib.c

实现了通用的 DH 函数,设计层面的。

(4) dh_gen.c

实现了生成 DH 密钥参数。

(5) dh_key.c

实现openssl 提供的默认的DH_METHOD,实现了根据密钥参数生成DH 公私钥,以及根据DH 公钥(一方)以及DH 私钥(另一方)来生成一个共享密钥,用于密钥交换。

(6) dh_err.c

实现了 DH 错误处理。

(7) dh_check.c

实现了 DH 密钥检查。

(8) dh_pmeth.c

实现了 DH 公钥数据结构。

(9) dh_kdf.c

衍生密钥和ASN1相关。

(10) dh_depr.c

不推荐使用的函数。

(11) dh_prn.c

解决没有FP接口的情况下,实现数据输出到文件。

(12) dh_rfc5114.c p192.c p512.c p1024.c

提供参数和测试数据。

时间: 2024-08-09 23:49:33

openssl中dh算法实现的相关文章

openssl中dh算法Demo

/*下面程序利用openssl库,实现了dh算法,产生密钥以及计算sessionkey*/ #include <openssl/dh.h> #include <memory.h> int main() { DH *d1,*d2; BIO *b; int ret,size,i,len1,len2; char sharekey1[128],sharekey2[128]; /* 构造DH 数据结构 */ d1=DH_new(); d2=DH_new(); /* 生成d1 的密钥参数*/

源码方式向openssl中添加新算法完整详细步骤(示例:摘要算法SM3)【非engine方式】

openssl简介 openssl是一个功能丰富且自包含的开源安全工具箱.它提供的主要功能有:SSL协议实现(包括SSLv2.SSLv3和TLSv1).大量软算法(对称/非对称/摘要).大数运算.非对称算法密钥生成.ASN.1编解码库.证书请求(PKCS10)编解码.数字证书编解码.CRL编解码.OCSP协议.数字证书验证.PKCS7标准实现和PKCS12个人数字证书格式实现等功能. openssl采用C语言作为开发语言,这使得它具有优秀的跨平台性能.openssl支持Linux.UNIX.wi

在OpenSSL中添加自定义加密算法

一.简介 本文以添加自定义算法EVP_ssf33为例,介绍在OpenSSL中添加自定义加密算法的方法 二.步骤 1.修改crypto/object/objects.txt,注册算法OID,如下: rsadsi 3 255 : SSF33 : ssf33 2.进入目录:crypto/object/,执行如下命令,生成算法的声明 perl objects.pl objects.txt obj_mac.num obj_mac.h 3.在crypto/evp/下添加e_ssf33.c,内容如下 #inc

加密、认证、DH算法

首先理解加密算法 其次理解DH算法 最后解析ipsecVPN 理解加密算法 一个完整的加密方法由很多因素组成,但是最关键的两个因素是加密算法和密钥.加密算法通常是非常复杂的数学公式,这些公式确定如何将明文转化为密文的运作过程与规则.密钥是一串被加入到算法中的随机比特,若要使两个加密点之间进行加密的通信,必须使用相同的加密算法.而且在某些时候他们需要使用相同的密钥(对称式加密),当然在很多时候两者使用不同的密钥来进行加密或者解密(非对称加密). 下面描述对称式加密算法和非对称式加密算法: 对称式加

OPENSSL中RSA私钥文件(PEM格式)解析【一】

http://blog.sina.com.cn/s/blog_4fcd1ea30100yh4s.html 在PKCS#1 RSA算法标准中定义RSA私钥语法为: RSAPrivateKey ::= SEQUENCE { version Version, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q

DH算法

1.通信方A和通信方B约定一个初始数g,如g=5,一个质数p,如p=23,g和p是公开的,且1< g < p 2.A生成一个随机数a,a是保密的,如a=6 3.A计算g^a%p发送给B,g^a%p=5^6%23=8 4.B生成一个随机数b,b是保密的,如b=15 5.B计算g^b%p发送给A,g^b%p=5^15%23=19 6.A接收到g^b%p后,再使用保密的a,计算(g^b%p)^a%p=19^6%23=2 7.B接收到g^a%p后,再使用保密的b,计算(g^a%p)^b%p=8^15%

推荐系统中常用算法 以及优点缺点对比

推荐系统中常用算法 以及优点缺点对比 在 推荐系统简介中,我们给出了推荐系统的一般框架.很明显,推荐方法是整个推荐系统中最核心.最关键的部分,很大程度上决定了推荐系统性能的优劣.目前,主要的推荐方法包括:基于内容推荐.协同过滤推荐.基于关联规则推荐.基于效用推荐.基于知识推荐和组合推荐. 一.基于内容推荐 基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器

数据挖掘中分类算法小结

数据挖掘中分类算法小结 数据仓库,数据库或者其它信息库中隐藏着许多可以为商业.科研等活动的决策提供所需要的知识.分类与预测是两种数据分析形式,它们可以用来抽取能够描述重要数据集合或预测未来数据趋势的模型.分类方法(Classification)用于预测数据对象的离散类别(Categorical Label);预测方法(Prediction )用于预测数据对象的连续取值. 分类技术在很多领域都有应用,例如可以通过客户分类构造一个分类模型来对银行贷款进行风险评估;当前的市场营销中很重要的一个特点是强

复杂网络中聚类算法总结

网络,数学上称为图,最早研究始于1736年欧拉的哥尼斯堡七桥问题,但是之后关于图的研究发展缓慢,直到1936年,才有了第一本关于图论研究的著作.20世纪60年代,两位匈牙利数学家Erdos和Renyi建立了随机图理论,被公认为是在数学上开创了复杂网络理论的系统性研究.之后的40年里,人们一直讲随机图理论作为复杂网络研究的基本理论.然而,绝大多数的实际网络并不是完全随机的.1998年,Watts及其导师Strogatz在Nature上的文章<Collective Dynamics of Small