M2Crypto为ECDSA/ECDH提供EC支持。我安装了OpenSSL 0.9.8i,它包含对EC的支持。但是,当我运行"from M2Crypto import EC,BIO“时,我收到错误消息,说EC_init()失败。所以我添加了debug来打印m2.OPENSSL_VERSION_TEXT的值。它被打印为"OpenSSL 0.9.7 19Feb 2003“。此版本的OpenSSL不支持EC。
我尝试了"Python setup.py build build_ext -- OpenSSL ="new_path where OpenSSL 0.9.8i is install“,虽然M2Crypto是重新构建的"python setup.py install”,但我仍然看到它指向“OpenSSL的旧版本”。
任何关于如何成功地让M2Crypto使用0.9.8i的建议都会很有用。
发布于 2009-07-28 06:33:20
一些Linux发行版,例如Fedora和Redhat,由于专利问题而禁用EC。
如果您自己构建库,除了-- OpenSSL:--openssl-dirs和-- build_ext -dirs之外,可能还需要为包含指定一些选项。例如,请参阅Chandler中的m2crypto Makefile。此外,M2Crypto FAQ对此也有答案。
发布于 2009-05-11 16:03:21
可能是查找共享库libssl.so和libcrypto.so,并在/usr/lib中找到旧的库。如果您将new_path添加到/etc/ld.so.conf的顶部,以便首先搜索它,那么它可以工作。但这可能会破坏其他期待旧OpenSSL的OpenSSL应用程序。
发布于 2016-08-27 03:25:57
请在https://gitlab.com/m2crypto/m2crypto/issues/new和您的操作系统、Python的版本、系统上所有OpenSSL库的位置和版本、编译器的版本上提交问题报告,并附加完整的标准输出/ python setup.py clean build install命令的标准错误。谢谢。
https://stackoverflow.com/questions/848508
复制相似问题