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。