如何在给定参数和键值的情况下创建 M2Crypto DSA 对象?
我想使用 M2Crypto 创建一个 DSA_pub 对象来验证 DSA 签名。我知道 q、p、g 和公钥,但我知道实例化 DSA 对象的唯一方法是使用:
dsa = DSA.set_params(q,p,g)
dsa.gen_key()
如何分配已知的公钥?
Using M2Crypto I'd like to create a DSA_pub object for verifying a DSA signature. I know q, p, g, and the public key, but the only way I know to instantiate a DSA object is using:
dsa = DSA.set_params(q,p,g)
dsa.gen_key()
How do I assign the known public key?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我刚刚遇到了这个挑战,我有 P、Q、G 和 Y 参数(在我的例子中来自 XML 文档),但 M2Crypto 没有办法让我从它们创建有效的公钥。
我求助于使用 pyasn1 生成 PEM 公钥字符串,然后使用 M2Crypto.DSA.load_pub_key_bio 工厂函数加载该 PEM 公钥。
我的粗略代码如下,以防将来对某人有用。
I just ran across exactly this challenge, where I have the P, Q, G and Y parameters (in my case from an XML document), but M2Crypto does not have a way for me to create a valid public key from them.
I resorted to using pyasn1 to produce a PEM public key string, then loading that PEM public key using the M2Crypto.DSA.load_pub_key_bio factory function.
My rough code follows, in case it's useful to somebody in the future.
我最终创建了一个补丁,为 M2Crypto 添加了 pub_key_from_params 工厂方法,并且除了功能之外还包括回归测试。在本文发表时,功能请求的状态仍然是“新”:https:// /bugzilla.osafoundation.org/show_bug.cgi?id=12981 。过去几个月它对我很有用。如果开发人员发现它有用,也许它会被包含在内。
I ended up creating a patch that adds a pub_key_from_params factory method for M2Crypto and includes regression tests in addition to the functionality. The state of the feature request is still "NEW" at the time of this post: https://bugzilla.osafoundation.org/show_bug.cgi?id=12981 . It's worked for me for the past few months. If the developers find it useful, perhaps it will be included.
除了
get_params
之外,模块DSA
中还有许多工厂函数,我认为您需要 load_pub_key(如果您在 PEM 文件中有公钥和参数)或load_pub
(如果您在 BIO 对象中有它们)。另请参阅 BIO 模块了解各种 BIO 对象。There are many factory functions in module
DSA
beyondget_params
, and I think you want load_pub_key (if you have public key and params in a PEM file) orload_pub
(if you have them in a BIO object). See also the BIO module for various kinds of BIO objects.