第十八章 DSA / 18.2 openssl的DSA实现

Openssl的DSA实现源码在crypto/dsa目录下。主要源码如下:

       1)    dsa_asn1.c

DSA密钥参数(p、q和g)、DSA公钥(pub_key、p、q和g)以及DSA私钥(priv_key、pub_key、p、q和g)的DER编解码实现。

       2)dsa_depr.c

              生成DSA密钥参数。

       3)dsa_err.c

              DSA错误处理。

       4)dsa_gen.c

              生成DSA密钥参数。

       5)dsa_key.c

              根据DSA中的密钥参数产生公钥和私钥。

       6)dsa_lib.c

              实现了DSA通用的一些函数。

       7)dsa_ossl.c

实现了一个DSA_METHOD,该DSA_METHOD为openssl默认的DSA方法,主要实现了如下三个回调函数:dsa_do_sign(签名)、dsa_sign_setup(根据密钥参数生成公私钥)和dsa_do_verify(验签)。

       8)dsa_sign.c

              实现了DSA签名和根据密钥参数生成公私钥。

       9)dsa_vrf.c

              实现了DSA验签。