我正在Python(2.7和3.2)中实现XMPP协议,我发现一个重要的事情阻止我使实现完全兼容。
当前规范(RFC 6120)要求实现SCRAM-SHA-1-PLUS SASL机制(RFC 5802),而这又需要'tls-unique'通道绑定({ {3}}),定义为:
描述:发送的第一个TLS完成消息(注意:已完成 结构,而不是包含它的TLS记录层消息) 最近TLS连接的TLS握手被绑定到
Python似乎没有直接提供这条信息,但我知道它可以通过Python内部使用的OpenSSL API获得。
有没有办法获得SSL套接字包装器的'SSL'指针,所以我可以通过ctypes模块或我自己的扩展模块使用它?我用Python安装的头文件找不到类似的内容。
是否有任何用于Python的第三方TLS模块提供此类API,但是保留了一般的Python SSL API?
或者是唯一的方法,从Python中提取SSL代码并使用我自己的包捆绑它的修补副本?
更新:我已为此功能创建了一项Python功能请求:RFC 5929 不过,我仍在寻找“随时可用”的解决方案。
答案 0 :(得分:12)
从Python SSLSocket
获取数据似乎最简单的方法是修复标准Python库。所以我做到了,补丁将包含在Python 3.3中。
答案 1 :(得分:0)
这有望为您节省一些时间。
Python SASL资源: