Openssl的RSA实现源码在crypto/rsa目录下。它实现了RSA PKCS1标准。主要源码如下:
1) rsa.h
定义RSA数据结构以及RSA_METHOD,定义了RSA的各种函数。
2) rsa_asn1.c
实现了RSA密钥的DER编码和解码,包括公钥和私钥。
3) rsa_chk.c
RSA密钥检查。
4) rsa_eay.c
Openssl实现的一种RSA_METHOD,作为其默认的一种RSA计算实现方式。此文件未实现rsa_sign、rsa_verify和rsa_keygen回调函数。
5)rsa_err.c
RSA错误处理。
6)rsa_gen.c
RSA密钥生成,如果RSA_METHOD中的rsa_keygen回调函数不为空,则调用它,否则调用其内部实现。
7)rsa_lib.c
主要实现了RSA运算的四个函数(公钥/私钥,加密/解密),它们都调用了RSA_METHOD中相应都回调函数。
8)rsa_none.c
实现了一种填充和去填充。
9)rsa_null.c
实现了一种空的RSA_METHOD。
10) rsa_oaep.c
实现了oaep填充与去填充。
11)rsa_pk1.
实现了pkcs1填充与去填充。
12)rsa_sign.c
实现了RSA的签名和验签。
13)rsa_ssl.c
实现了ssl填充。
14)rsa_x931.c
实现了一种填充和去填充。