2

M2Crypto 为 ECDSA/ECDH 提供 EC 支持。我已经安装了包含对 EC 的支持的 OpenSSL 0.9.8i。但是,当我运行“从 M2Crypto 导入 EC,BIO”时,我收到错误消息说 EC_init() 失败。所以我添加了调试来打印 m2.OPENSSL_VERSION_TEXT 值。它被打印为“OpenSSL 0.9.7 2003 年 2 月 19 日”。此版本的 OpenSSL 不支持 EC。

我试过 "python setup.py build build_ext --openssl="new_path where OpenSSL 0.9.8i is installed"。虽然 M2Crypto 再次构建 "Python setup.py install" ,但我仍然看到它指向 "Old version of OpenSSL" .

任何关于如何成功让 M2Crypto 使用 0.9.8i 的指针都会很有用。

4

3 回答 3

2

由于专利问题,一些 Linux 发行版(例如 Fedora 和 Redhat)禁用了 EC。

如果您自己构建 OpenSSL,除了 --openssl 之外,您可能还需要为 build_ext 指定一些选项:--library-dirs 和 --include-dirs。例如,参见 Chandler 中的 m2crypto Makefile。M2Crypto FAQ对此也有答案。

于 2009-07-28T06:33:19.573 回答
0

如果您将 new_path 添加到 /etc/ld.so.conf 的顶部,那么它可能会查找共享库 libssl.so 和 libcrypto.so 并在 /usr/lib 中找到旧的库,以便首先对其进行搜索。但这可能会破坏其他期待旧 OpenSSL 的 OpenSSL 应用程序。

于 2009-05-11T16:03:21.120 回答
0

请在https://gitlab.com/m2crypto/m2crypto/issues/new和您的操作系统、Python 版本、系统上所有 OpenSSL 库的位置和版本、编译器版本提交问题报告,并附上完整的标准输出/stderrpython setup.py clean build install命令。谢谢你。

于 2016-08-26T19:25:56.780 回答