什么是SSL?

时间:2018-06-04 08:38:36

标签: python ssl

我想在套接字以外的地方使用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对象,但我相信还有更好的选择。

1 个答案:

答案 0 :(得分:2)

对于Python(3.5+)的最新版本,不再仅限于使用SSL作为套接字,但可以使用内存缓冲区作为更抽象的层。如何将这些缓冲区传输到对等端由应用程序决定,即它可以直接使用套接字,还可以实现this proposal等协议,这些协议本质上通过将这些内容编码到JSON中的base64并传输然后传输SSL内存缓冲区来实现在经过弱验证的HTTPS通道中使用JSON。

要使用内存缓冲区,请按the documentation或查看example code