python - SSL 超越任何东西?

标签 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 进行数据交换。

我想一个选择是编写一个鸭子类型的类来模拟套接字对象,但我相信还有更好的选择。

最佳答案

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

要使用内存缓冲区,请遵循 the documentation或者看看 example code .

关于python - SSL 超越任何东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50676472/

相关文章:

python - Pandas (python) : How to add column to dataframe for index?

.htaccess - Htaccess 将除主页以外的所有页面的 https 重定向到 http,将主页的 https 重定向到另一个 url

apache - 应用 SSL 证书后子域文件夹重定向不起作用

php - 混淆 API 签名公钥和私钥对

python - 从具有级别的列表构建树

python - 创建一个计算单词和字符的函数(包括标点符号,但不包括空格)

python - Plotly 似乎丢失了热图的标签

python - 在 PyQt5 中将数据从子窗口发送到父窗口

java - 使用 Apache HttpClient 仅跳过主机名验证

apache - 不通过 Cloudflare 访问子域