第十七章 RSA / 17.3 RSA签名与验证过程

       RSA签名过程如下:

       1)    对用户数据进行摘要;

       2  构造X509_SIG结构并DER编码,其中包括了摘要算法以及摘要结果。

3  2)的结果进行填充,填满RSA密钥长度字节数。比如1024RSA密钥必须填满128字节。具体的填充方式由用户指定。

4  3)的结果用RSA私钥加密。

RSA_eay_private_encrypt函数实现了3)和4)过程。

       RSA验签过程是上述过程的逆过程,如下:

       1)    对数据用RSA公钥解密,得到签名过程中2)的结果。

2)   去除1)结果的填充。

3)   2)的结果中得到摘要算法,以及摘要结果。

4)   将原数据根据3)中得到摘要算法进行摘要计算。

5比较4)与签名过程中1)的结果。

RSA_eay_public_decrypt实现了1)和2)过程。