我正在浏览openSSL的源代码,试图找出如何在openSSL中实现RSA。我查看了文档,发现函数RSA_public_encrypt和RSA_private_decrypt执行任务。
然而,这些函数分别指向rsa_pub_enc,rsa_priv_dec,这是我在任何地方都找不到的。关于如何阅读openSSL源代码的任何一开始都会非常有帮助。
P.S。我正在使用openssl-1.0.2d.tar.gz tarball。
答案 0 :(得分:1)
我今天发现你的帖子,同时有严格的相同问题花了一些时间来找到答案(grep on“rsa_pub_enc”序列)。
最后我理解在分析主文件(rsa_test.c)和RSA_new()函数时,当使用openssl默认RSA方法(即RSA_PKCS1_SSLeay方法)时,RSA_METHOD结构指向“RSA_eay_public_encrypt()”函数在rsa_eay.c文件中(替换rsa.h文件中为RSA_METHOD结构定义的通用rsa_pub_enc函数)。
因此,当使用默认方法时,rsa_eay.c文件中提供了用于RSA加密/解密实现的openssl源代码。 当然,这也适用于具有公钥或私钥的其他rsa加密/解密函数。