![]() |
1
1
OpenSSL文档不完整-
(例如两者
|
![]() |
2
2
evp-pkey-new的文档直接说明它用于存储私钥。因为原来的海报是从x509foo.get_pubkey()返回一个evp.pkey实例,然后将实例存储为pem显示private key,所以我迷路了。我不能假装知道M2Crypto团队的意图,因为许多使用pkey的函数没有文档记录。例如,一个X509请求对象有一个验证(self,pkey),但它没有告诉我pkey是什么类型的对象。同样地,还有任何文件。我和最初的作者一样困惑,因为我认为RSA至少是 (e,n)公钥 (D,N)私钥 充其量我想到的是私人钥匙 (d,n,p,q,dp,dq,qinv,t),其中 p和q是大素数,dp和dq和qinv是额外的系数。 解密速度快,T为totelent函数。 在文档中应该更清楚地区分的原因是有时您希望使用私钥加密(在签名的情况下),以便其他每个人都可以通过使用公钥终止验证。 H=散列(m) sig=h^d(n型) 只有知道d(私钥)的人才能创建签名。 验证由 h=sig^e(n型) 如果这两个哈希匹配,您就知道消息是真实的。 我遇到的问题是evp.pkey要求表示一个公钥 它的assign_rsa()方法声明它接受一个rsa密钥对(“我假设这意味着此时的私钥”)。到目前为止,我发现的任何示例都只是用于创建自关联证书(包括M2Crypto自己的单元测试)。我没有看到任何测试接受第三方X509请求并用自己的CA证书和密钥签名,就像我们在现实中通常看到的那样。由于X509请求不包含私钥,因此单元测试无法帮助我了解如何签署常规CSR。然而,单元测试示例工作良好,因为它的自签名和签名者已经可以访问私钥。事实上,测试mkcert测试的目的正是获取由mkreq方法返回的私钥。 生成X509请求。 M2Crypto文档由于使用术语而混淆了 pk、pkey甚至pubkey可以互换。 |