我想在套接字以外的地方使用SSL。 ssl
TLS / SSL包装器仅适用于套接字对象。
例如,我有自己的IPC类,如:
class MyIPC:
def recv(self):
return self.received_data if self.data else None
def send(self, message):
self._send(message)
在这些方案中,我想将上面的类包装到ssl
Python模块中。这是可能的吗?
请注意,此MyIPC
类是p2p通信。在现实世界。我想使用MQTT进行数据交换。
我想一个选项是编写一个鸭型类来模仿一个Socket对象,但我相信还有更好的选择。
答案 0 :(得分:2)
对于Python(3.5+)的最新版本,不再仅限于使用SSL作为套接字,但可以使用内存缓冲区作为更抽象的层。如何将这些缓冲区传输到对等端由应用程序决定,即它可以直接使用套接字,还可以实现this proposal等协议,这些协议本质上通过将这些内容编码到JSON中的base64并传输然后传输SSL内存缓冲区来实现在经过弱验证的HTTPS通道中使用JSON。
要使用内存缓冲区,请按the documentation或查看example code。