适合Python 2.5的SSL库
我现在的任务是把一个服务器的网络从普通的套接字(socket)迁移到SSL加密,使用的是Python 2.5。不过,我遇到了一些麻烦。看起来市面上几乎没有SSL库能够完全实现套接字接口,所以我们现在的代码不能直接迁移。
具体来说,我找不到一个支持'setblocking'方法的库(大多数库都是封装的,那直接操作被封装的套接字会不会很糟糕呢?),而且大多数库似乎也不把被封装的套接字当作文件一样的设备来处理,所以关键的'select'方法也无法使用(我能在被封装的套接字上运行select吗?)。
(read, write, error) = select([socket], [socket], [], 0.2)
到目前为止,我尝试了tlslite和M2Crypto,但它们似乎都不能像套接字那样透明地工作。
如果有任何建议,我会非常感激。
2 个回答
0
pyOpenSSL 似乎支持 setblocking()
这个功能。
2
你觉得这个把Python 2.6的ssl
模块移植到Python 2.3+的版本怎么样?它提供了和这里描述的功能一样的功能。这意味着它可以把一个普通的socket.socket
对象包裹在一个SSL上下文中。