Tag: pyopenssl

为sslv3问题修补pyopenssl

我使用python 2.7.9-2 amd64在Debian 8系统上遇到问题: marius@pydev:/usr/lib/python2.7/dist-packages/urllib3/contrib$ pip search doo Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> load_entry_point('pip==1.5.6', 'console_scripts', 'pip')() File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 356, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2476, in load_entry_point return ep.load() File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2190, in load ['__name__']) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 74, in <module> from pip.vcs import […]

为什么在使用此代码尝试通过TLS运行TLS时出现握手失败?

我尝试使用twisted.protocols.tls实现一个可以通过TLS运行TLS的协议,这是一个使用内存BIO的OpenSSL接口。 我把它作为一个协议包装器实现,它看起来像一个普通的TCP传输,但是它有startTLS和stopTLS方法来分别添加和删除一层TLS。 这对TLS的第一层工作正常。 如果我通过“原生”扭曲TLS传输运行它也工作正常。 但是,如果尝试使用此包装提供的startTLS方法添加第二个TLS层, startTLS立即发生握手错误,并且连接以某种未知的不可用状态结束。 包装器和让它工作的两个助手看起来像这样: from twisted.python.components import proxyForInterface from twisted.internet.error import ConnectionDone from twisted.internet.interfaces import ITCPTransport, IProtocol from twisted.protocols.tls import TLSMemoryBIOFactory, TLSMemoryBIOProtocol from twisted.protocols.policies import ProtocolWrapper, WrappingFactory class TransportWithoutDisconnection(proxyForInterface(ITCPTransport)): """ A proxy for a normal transport that disables actually closing the connection. This is necessary so that when TLSMemoryBIOProtocol notices the SSL […]