作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我总结了openssl的rsa-加密中的函数调用。我们可以发现
if (p!=NULL && q != NULL && dmp1 !=NULL && dmq1 != NULL && iqmp !=NULL),
RSA_eay_private_decrypt() 和 RSA_eay_private_encrypt() 将调用 rsa_mod_exp(这是中国提醒理论(CRT)版本吗?)。
我的问题是:
最佳答案
分支的状况在引用的来源中很明显。它正在寻找 RSA_FLAG_EXT_PKEY,并寻找所有“组件”都存在。您不一定拥有所有组件 - 您可能只需要使用私钥的模数和指数。
搜索“bn_mod_exp vs rsa_mod_exp”发现了这个:
If RSA_FLAG_EXT_PKEY is set, all private key operations go through the rsa_mod_exp handler. If not, private key operations go through rsa_mod_exp only if all the private key components exist (for CRT) otherwise they fall back to bn_mod_exp.
--cf. here for the entire post
更新:
关于 RSA_FLAG_EXT_PKEY,来自 rsa.h:
/* This flag means the private key operations will be handled by rsa_mod_exp
* and that they do not depend on the private key components being present:
* for example a key stored in external hardware. Without this flag bn_mod_exp
* gets called when private key components are absent.
*/
#define RSA_FLAG_EXT_PKEY 0x20
关于c - RSA_eay_private_decrypt什么时候调用rsa_mod_exp函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31984750/
我是一名优秀的程序员,十分优秀!