ussl – SSL/TLS module¶
This module implements a subset of the corresponding CPython module,
as described below. For more information, refer to the original
CPython documentation: ssl.
此模块提供对传输层安全性的访问(以前被广泛称为“Secure Sockets Layer安全套接字层”)加密和对等身份验证 客户端和服务器端网络套接字的功能。
功能¶
- ussl.wrap_socket(sock, server_side=False, keyfile=None, certfile=None, cert_reqs=CERT_NONE, ca_certs=None, do_handshake=True)¶
- 接收流 *sock*(通常是 - SOCK_STREAM类型的usocket.socket实例), 并返回ssl.SSLSocket的实例,该实例将底层流包装在SSL上下文中。 返回的对象具有通常的流接口方法,如- read(),- write(),等等。 特别地,应该从非SSL侦听服务器套接字上的- accept()返回的普通套接字创建服务器端SSL套接字。- do_handshake 确定握手是作为 - wrap_socket的一部分完成还是延迟作为初始读取或写入的一部分完成
 - (没有 CPython 中的 do_handshake方法)。
- 对于阻塞套接字,立即进行握手是标准的。对于非阻塞套接字(即当 sock 传入 - wrap_socket处于非阻塞模式时) 握手通常应该推迟,否则- wrap_socket阻塞直到它完成。 请注意,在 AXTLS 中,握手可以推迟到第一次读取或写入,但它会阻塞直到完成。
 - 根据特定 MicroPython port 中的底层模块实现,可能不支持上面的某些或所有关键字参数。 
警告
ssl 模块的一些实现不验证服务器证书,这使得建立的ssl连接容易受到中间人攻击。
CPython 的 wrap_socket 返回一个 SSLSocket 对象,该对象具有典型的套接字方法,例如 send、recv 等。
MicroPython 的 wrap_socket 返回一个更类似于 CPython 的对象没有这些套接字方法的 SSLObject。
异常¶
- ssl.SSLError¶
- 此异常不存在。而是使用它的基类OSError。