我的任务是在python 2.5中将服务器的网络从普通套接字迁移到SSL,我遇到了麻烦。似乎几乎没有SSL库完全实现套接字接口,因此我们当前拥有的代码无法直接迁移。
具体来说,我似乎无法找到一个支持'setblocking'方法的库(大多数都是包装器,所以直接解决包装的套接字会不会很糟糕?)而且大多数似乎都不对待包装的套接字是一个类似文件的设备,所以关键的'select'方法不起作用(同样,我可以在包装的套接字上运行select吗?)。
(read, write, error) = select([socket], [socket], [], 0.2)
到目前为止,我尝试过tlslite和M2Crypto,但似乎都没有透明地作为套接字工作。
任何想法都会受到赞赏。
答案 0 :(得分:2)
this backport of Python 2.6's ssl
module to Python 2.3+怎么样?它提供了相同的功能described here,这似乎意味着它需要一个正常的socket.socket
并将其包装在SSL上下文中。
答案 1 :(得分:0)
pyOpenSSL似乎支持setblocking()
。