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
提供参数和测试数据。

本文详细介绍了OpenSSL库中DH算法的实现,涵盖了从dh.h头文件定义的数据结构和函数,到dh_asn1.c的DER编解码,再到dh_gen.c中的密钥参数生成,以及dh_key.c中DH公私钥的生成和共享密钥的交换。此外,还包括错误处理、密钥检查、公钥数据结构、密钥衍生、不推荐函数和数据输出等多个方面,为深入理解DH密钥交换提供了全面的解析。
1866

被折叠的 条评论
为什么被折叠?



