问题标签 [m2crypto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1078 浏览

python - 与 openssl 相比,m2crypto 的错误行为

我必须合并并可能重写一堆 bash 脚本,以验证传入的 smime 消息是否有效(即用公司的私钥加密并签署一组特定的公钥)

这一堆 bash 将被一个小型应用程序取代,可能在 M2Crypto 的帮助下用 Python 编写。

到目前为止,解密部分真的很顺利,但是我在签名验证方面遇到了问题。

我需要编写 python 代码来替换这个单一的 bash 行

to_verify.txt 的内容是“通常的”multipart/signed p7,可以附加或不附加签名。

验证成功时,前面的命令以 0 退出,并从 smime 信封中提取内容。

现在,回到 python,取自 m2crypto 示例:

嗯....惊喜,我明白了

Openssl 正在正确读取、提取和验证这些文件,但 m2crypto 如何报告没有内容?

BUMP:没有人对此感兴趣?

0 投票
1 回答
1077 浏览

python - 将服务器证书验证添加到 httplib.HTTPSConnection

我发现它httplib.HTTPSConnection不执行自动服务器证书检查。据我了解这个问题,我需要手动添加该功能,例如通过将此类子类化,如此所述。

由于我使用的是 Python2.4.5 并且在给定的情况下无法升级,因此我无法使用此博客文章中给出的解决方法,因为该ssl模块直到 Py2.6 才引入。

我一直在尝试ssl通过使用来避免使用该模块M2Crypto这篇博文(在“客户”部分)中包含了一种有前途的方法。但是我还没有设法httplib.HTTPSConnection.connect通过使用这种方法来适当地覆盖。

有什么想法或提示吗?

0 投票
1 回答
1650 浏览

python - M2Crypto:验证 DSA 签名

我在使用 Python/M2Crypto 验证 DSA 签名时遇到问题。签名使用标准 java.security.Signature 类在 Java 中生成,并带有 Sun 的加密提供程序和 SHA1withDSA 算法名称。

这是一些shell输出:

签名值对我来说似乎没问题,它看起来像是两个整数的正确 ASN.1 编码序列(0x302c 表示 44 字节序列,0x0214 表示 20 字节整数),这是 DSA 签名的标准编码。

由于 DSA_pub.verify_asn1 方法甚至没有记录,我也尝试使用记录的 DSA_pub.verify 方法,但仍然没有雪茄:

文档声明所有参数都应该是“字节字符串”,但是验证方法以某种方式设法引发编码错误。我还尝试反转 r 和 s,以检查潜在的字节顺序问题,但这并没有帮助。

我究竟做错了什么?

0 投票
2 回答
4867 浏览

python - 如何使用 M2Crypto 包装器在 Python 中进行 3DES 加密?

我在 Python 中使用 M2Crypto 对使用 RSA 加密的硬件设备进行了工作测试。现在我需要测试一个使用 3DES 加密的类似设备。但我不知道如何使用 M2Crypto 进行三重 DES 加密。

我知道这张图表应该是可能的。但不幸的是,我发现的 M2Crypto 文档很粗略。(http://chandlerproject.org/ 上的主页似乎Chandler 一起消失了。)

我搜索了 3DES 和“OpenSSL API”,发现一些难以理解的 C 代码用于解密,这使得我看起来需要使用 M2Crypto.EVP.Cipher。但我还没有找到任何将其用于 DES 的示例。我发现的最接近的是这篇关于使用它进行 AES 加密的博客文章。看起来我只需要找出正确的论点M2Crypto.EVP.Cipher.__init__()。我会继续挖掘,但我认为值得发布这个问题。

0 投票
0 回答
922 浏览

m2crypto - 如何在 m2crypto 中使用 CA 证书正确签署 x.509 证书?

我正在为运行在Twisted WebM2Crypto. CA 有它的密钥。其他机器可以发送以 CSR 为主体的 GET 请求。假设事情验证,Helios服务器应该在正文中响应相应的证书。

该应用程序的完整源文件和测试文件在这里:

目前一切正常(通过证书回复的 CSR 请求),除了验证证书:

如果我使用 OpenSSL 从 shell 签署测试证书,事情就会正确验证。Helios 中的签名代码一定有问题。

这是一个相关的问题:

不幸的是,从上一个问题链接的资源都对 CA 和最终证书使用相同的密钥对。由于显而易见的原因,这很愚蠢,并且它使这些示例对现实世界的 PKI 毫无帮助。

0 投票
1 回答
1298 浏览

python - 使用 M2Crypto 在 Python 2.4 中生成 SHA-256 哈希

是否可以使用 M2Crypto 生成 SHA-256 哈希?Python 2.4 的 SHA 模块不支持 256,所以我开始使用 PyCrypto,结果发现 PyCrypto 不支持 PKCS#5(在我的项目的其他地方需要。)结果我切换到 M2Crypto,现在我会喜欢用等效的 M2Crypto 替换我的 PyCrypto SHA-256 调用...我尝试查看单元测试,但什么也没看到。

0 投票
1 回答
642 浏览

python - 加载证书时,Pythons M2Crypto 在 ssl_ctx_load_verify_locations 中引发异常

M2Crypto 在加载 SSL CA 证书时引发 TypeError。我从 Django 模型的实例中获取 SSL 证书的路径。我的代码运行良好,因为我从 Django 模型中提取证书的路径

我的代码:

提高:

但是这段代码工作正常

0 投票
1 回答
1901 浏览

python - m2crypto:python 2.7 兼容性以及使用哪个版本的 OpenSSL?

一段时间以来,我们一直在使用 M2crypto 和 Python 2.6 for Windows(32 位)并取得了巨大成功。我们使用用户贡献的设置之一在我们的开发环境中安装 M2crypto。我们想迁移到 Python 2.7,但注意到没有用于 m2crypto 的预构建 Python 2.7 设置。

问题:

  1. M2crypto 0.20.2 是否与 Python 2.7 兼容,或者如果我们想继续使用这个库,我们是否应该继续使用 Python 2.6?

  2. 有没有人在 Python 2.7 环境中安装 M2Crypto 0.20.2 的用户构建设置?(M2crypto 网站上没有 2.7 贡献,谷歌也出现空缺)

  3. 我们能否将 Python 2.6 M2Crypto 文件(在 lib\site-packages\M2Crypto 下)复制到 Python 2.7 设置中的同一位置并避免正式的安装过程?

  4. 我们应该在 M2crypto 0.20.2 中使用什么版本的 OpenSLL?我查看了 OpenSSL 网站,出现了 2 个版本的 OpenSSL 可供选择:0.9.8 和 1.0.0a。

谢谢你,马尔科姆

0 投票
2 回答
1346 浏览

python - AES 加密库与适用于 Windows 的 Python 2.7 兼容

关于与适用于 Windows 的 Python 2.7 兼容的 AES 加密库有什么建议吗?

过去我们在 Python 2.6 中使用过 m2crypto,但没有适用于 Python 2.7 的 m2crypto 版本,我们从源代码构建版本的尝试失败了。

谢谢你,马尔科姆

0 投票
1 回答
2503 浏览

python - 如何使用 m2crypto 在 FTPS 服务器上上传文件

我正在尝试使用 ftps 将文件上传到我们的 FTP 服务器。登录很简单并且有效:

以及下降到目录

但是,当尝试检索目录内容时:

我收到 522 错误:

似乎 TLS 仅用于握手,而不用于传输。

storbinary()有没有一种方法可以使用 M2Crypto来保护传输(我想使用 上传文件)?如果不是,还有什么其他选择?