如何从Python进入SSL/TLS内部?

Jac*_*zny 9 python ssl

我正在Python(2.7和3.2)中实现XMPP协议,我发现一个重要的事情阻止我使实现完全兼容.

当前规范(RFC 6120)要求实现SCRAM-SHA-1-PLUS SASL机制(RFC 5802),后者又需要'tls-unique'通道绑定(RFC 5929),其定义为:

描述:发送的第一个TLS Finished消息(注意:完成的结构,而不是包含它的TLS记录层消息)在最近的TLS连接的TLS握手中被绑定到

Python似乎没有直接提供这条信息,但我知道它可以通过Python内部使用的OpenSSL API获得.

有没有办法获得SSL套接字包装器的'SSL'指针,所以我可以通过ctypes模块或我自己的扩展模块使用它?我用Python安装的头文件找不到类似的东西.

是否有任何第三方TLS模块用于Python提供此类API,但保留一般的Python SSL API?

或者是唯一的方法,从Python中提取SSL代码并使用我自己的包捆绑它的修补副本?

更新:我已经为此功能创建了一个Python功能请求:http://bugs.python.org/issue12551不过, 我仍在寻找"随时可用"的解决方案.

Jac*_*zny 12

从Python获取数据似乎最简单的方法SSLSocket是修复标准的Python库.所以我做到了,补丁将包含在Python 3.3中.

http://bugs.python.org/issue12551#msg140450