问题标签 [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.
python - Python中数据流的AES方法
我想在数据流上应用 AES 128b 加密(可能是 CBC + 填充)。如果这很重要,我将发送大约 1500 位的块。我在 Python 中工作,我用 M2Crypto 做了一个小测试,一边用 AES 加密,另一边解密,它工作得很好——但可能并不能真正保护任何东西,因为我使用相同的密钥、相同的 ivs 和所有这一切。所以问题是 - 对大数据流进行 AES 加密的最佳方法是什么?我考虑不时加载新的“密钥”文件,应用程序将使用这个文件来扩展和提取 AES 密钥或类似的东西,但是为每个块构建一个新的 AES 对象仍然听起来很糟糕,所以必须有更好的方法。我相信我也可以在这里使用 ivs,但不太确定在哪里以及如何使用。谢谢。
java - 帮助使用 Python 验证 RSA 签名文本
我使用 Java 创建了 RSA 密钥对。使用 Java,我可以使用这些密钥对一些文本进行签名和验证。我还可以以 PEM 格式“导出”这些密钥并将它们加载到 Python 测试脚本中。进入 Python 脚本后,我可以使用这些密钥使用 M2Crypto 对某些文本进行签名和验证。
我还不能在 Python 中验证我在 Java 中创建的签名。
现在我只是想让跨平台签名和验证工作。
这是Java片段:
生成:
这是公钥:
然后在 Python 中加载密钥并尝试验证签名:
这并没有验证。我怀疑这是我不理解的一些前导或尾随字符或编码怪异。
我对 M2Crypto 没有特别的附件,并且也使用了 gdata.tlslite 模块。
请注意,密钥是有效的,上面的文本和签名在 Java 中验证,密钥(公共和私有)可以在 Python 中用于签署和验证文本。问题在于 Java 生成的签名和/或消息文本如何进入 Python 代码。
我究竟做错了什么?
windows - easy_install M2Crypto 在 Windows 平台上失败
我正在尝试在 Windows XP 平台上安装 M2Crypto。我安装了 Python、easy_install 和 SWIG,但是当我尝试easy_install M2Crypto
得到以下信息时:
我在其他地方读过人们建议easy_install openssl-devel
的内容,但这只是告诉我没有找到具有该名称的包。该名称是否可能区分大小写(我尝试了各种排列但没有成功),还是该建议不适用于 Windows?
我不是在寻找 M2Crypto 的替代品。我正在挑选一些使用它的现有代码,所以我需要让我的开发环境能够运行已经编写的内容。
asp.net - 在托管网站上使用 openssl 和 IronPython
我有一个 python 脚本,它调用以下内容:
我需要在托管网站上通过 IronPython 运行此脚本。是否可以使用 openssl 并以某种方式引用它?
我研究了使用 M2Crypto 的替代方案,但不幸的是它使用了 IronPython 不支持的 pyo 文件。
任何帮助表示赞赏。拔掉我的头发……!
digital-signature - 未能针对 python/m2crypto 中的 DSA 公钥验证 dsawithSha1 签名消息
- 我正在尝试使用持有 dsa 公钥的 x509 证书验证签名消息。x509 证书由 SAP 系统以 PKCS7 编码提供,在使用 openssl 在 PEM 中转换后,我能够读取内容(openssl x509 -in sapcert.pem -inform pem -text)它在 dsaEncryption 中保存一个公钥,显示我是 DSA 参数 y(pub)、p、q 和 g。
因为我没有在 M2Crypto x509 类中找到 DSA 实现,所以我尝试自己构建 DSA 公钥。为此我修补了 MyCrypto,(请参阅:如何在给定参数和密钥值的情况下创建 M2Crypto DSA 对象?),编译它并获得一个新函数 DSA.pub_key_from_params(p,q,g,y) 来构建我的 DSA 公钥使用证书中的参数。到此为止,一切正常。(单元测试虽然运行没有错误)。
在第二步中,我收到signedMessage(名为seckey)作为URL参数,在解码它(base64)后,我得到了一个正确的DER字符串,我可以用openssl(openssl ans1parse -in seckey -inform der)读取。在 openssl 的输出中,我可以看到已签名的 messageDigest,这正是我尝试验证的 SHA1 编码的 messagedigest(因此我可以确定已正确提供了 signedMessage)。虽然我可以看到一个 dsaWithSHA1 签名字符串,它似乎包含验证 dsa 签名消息所需的 r 和 s 值(请参阅:M2Crypto:验证 DSA 签名)
在这一点上,我坚持尝试验证signedMessage 几天了,我希望那里有一位密码专家可以帮助我。我尝试并搜索了很多,尝试了 pyCrypto lib,但都没有成功。
我试图将 SHA1 MessageDigest 以及 r 和 s 值传递给 M2Crypto.DSA.verify 函数,但由于它失败了,我想我要么必须传递 signedMessage 要么传递其中的一部分。(在一个 Java 论坛中,我发现了一些关于验证 SAP 提供的签名消息的帖子,还有一些关于通过“签名属性的 DER 编码”计算签名的文章。?)
这是我的示例代码:
有没有人知道如何进行正确的 dsawithsha1 签名验证?请帮忙!最好的问候,法尔科
python - 使用 m2crypto 从 PKCS7 SignedData 结构中提取签名证书
我正在尝试使用 M2Crypto 从 Windows PE 文件中提取签名证书。根据 MS 规范,数据存储在 PKCS#7 SignedData 结构中(以 ASN.1 格式存储,而不是 base64 格式)。我似乎无法加载二进制格式,因为它不在 PEM 中。
请原谅我对这里涉及的加密套件的无知,但如果有人可以向我展示如何从 SignedData 块中获取签名证书的基础知识,我将不胜感激!
如果有帮助,我为我的问题找到了另一个解决方案,但它在 C 中......如何从 PKCS7.p7b 证书文件中读取证书文件 usind openssl? 如果我可以将其转换为 m2crpyto 我会被设置。
python - 如何使用 M2Crypto 创建 .pem 文件?
我想用 python 重现这个命令。$ openssl req -newkey rsa:1024 -nodes -x509 -days 365 -out key2.pem
注意:直接调用 openssl 二进制文件不是一个好的解决方案。
python - _shutdown AttributeError(忽略)当 linting 代码使用 M2Crypto
我正在运行 lint,如下所示:
使用此代码:
lint 输出以:
这段代码在运行时工作正常(上面实际上是一个最小的测试用例;但完整版确实有效)。异常被忽略,但Bitten认为这是一个失败,所以在这一步停止。
我尝试在函数定义周围添加 'M2Crypto.threading.init()'/'M2Crypto.threading.cleanup()' ,但这并没有解决问题。
我怎样才能防止这个问题发生?
我在 Debian Lenny x86_64 上使用 M2Crypto 0.21.1、pylint 0.24 和 Python 2.7(也尝试过 2.7.2)。
m2crypto - SMIME.smime_load_pkcs7 (_bio): M2Crypto.SMIME.SMIME_Error: 没有内容类型
我在加载 pkcs#7 文件时遇到问题,请您帮忙找出我做错了什么。
我使用 OpenSSL 0.9.8g(如 Ubuntu 9.4 中存在的)运行 M2Crypto-0.21.1,并使用 SWIG 1.3.36 和 python 2.6.2 构建。
“python setup.py test --test-suite=tests.test_smime”运行 15 个测试,退出状态为“OK”;所以安装似乎没问题。
我使用数字签名程序创建了一个 PEM 格式的 pkcs#7 文件,并从命令行使用 OpenSSL 对其进行了测试:
openssl smime -verify -inform PEM -in mandato-PEM.p7m -noverify
打印信封中包含的内容(我签名的文本文件)和“验证成功”。所以 OpenSSL(与 M2Crypto 使用的版本相同)似乎喜欢我的文件。
但是,当我在 M2Crypto 中尝试相同的操作时,它会在一开始就阻塞:
p7, 数据 = SMIME.smime_load_pkcs7('mandato-PEM.p7m')
我得到以下异常:
虽然我在 Ubuntu(https://lists.ubuntu.com/archives/ubuntu-server-bugs/2010-July/038683.html)中找到了有关问题的信息,但在我看来,这不适用于我构建手动安装最新的 M2Crypto,测试套件运行良好。
对解决我的问题的任何帮助将不胜感激!
非常感谢
-芽
python - 在 Python 中创建自签名 SSL 证书
我正在尝试使用 Python生成自签名 SSL 证书,以便它独立于平台。我的目标是 *.pem 格式。
我发现了这个生成证书的脚本,但没有关于如何自签名它们的信息。