ssl – TLS/SSL wrapper for socket objects.
TLS/SSL wrapper for socket objects.
This module implements a subset of the corresponding CPython module,
as described below. For more information, refer to the original
CPython documentation: ssl
.
This module provides access to Transport Layer Security (previously and widely known as “Secure Sockets Layer”) encryption and peer authentication facilities for network sockets, both client-side and server-side.
Attributes
Supported values for cert_reqs parameter, and the |
|
Supported values for cert_reqs parameter, and the |
|
Supported values for cert_reqs parameter, and the |
|
Supported values for the protocol parameter. |
|
Supported values for the protocol parameter. |
|
This exception does NOT exist. Instead its base class, OSError, is used. |
Classes
Create a new SSLContext instance. The protocol argument must be one of the |
Functions
|
Wrap the given sock and return a new wrapped-socket object. The implementation |
Module Contents
- class ssl.SSLContext(protocol)
Create a new SSLContext instance. The protocol argument must be one of the
PROTOCOL_*
constants.- load_cert_chain(certfile, keyfile) None
Load a private key and the corresponding certificate. The certfile is a string with the file path of the certificate. The keyfile is a string with the file path of the private key.
Difference to CPython
MicroPython extension: certfile and keyfile can be bytes objects instead of strings, in which case they are interpreted as the actual certificate/key data.
- load_verify_locations(cafile=None, cadata=None) None
Load the CA certificate chain that will validate the peer’s certificate. cafile is the file path of the CA certificates. cadata is a bytes object containing the CA certificates. Only one of these arguments should be provided.
- set_ciphers(ciphers) None
Set the available ciphers for sockets created with this context. ciphers should be a list of strings in the IANA cipher suite format .
- wrap_socket(sock, *, server_side=False, do_handshake_on_connect=True, server_hostname=None) Incomplete
Takes a
stream
sock (usually socket.socket instance ofSOCK_STREAM
type), and returns an instance of ssl.SSLSocket, wrapping the underlying stream. The returned object has the usualstream
interface methods likeread()
,write()
, etc.server_side selects whether the wrapped socket is on the server or client side. A server-side SSL socket should be created from a normal socket returned from
accept()
on a non-SSL listening server socket.do_handshake_on_connect determines whether the handshake is done as part of the
wrap_socket
or whether it is deferred to be done as part of the initial reads or writes For blocking sockets doing the handshake immediately is standard. For non-blocking sockets (i.e. when the sock passed intowrap_socket
is in non-blocking mode) the handshake should generally be deferred because otherwisewrap_socket
blocks until it completes. Note that in AXTLS the handshake can be deferred until the first read or write but it then blocks until completion.server_hostname is for use as a client, and sets the hostname to check against the received server certificate. It also sets the name for Server Name Indication (SNI), allowing the server to present the proper certificate.
- ssl.wrap_socket(sock, server_side=False, key=None, cert=None, cert_reqs=None, cadata=None, server_hostname=None, do_handshake=True) IO
Wrap the given sock and return a new wrapped-socket object. The implementation of this function is to first create an
SSLContext
and then call theSSLContext.wrap_socket
method on that context object. The arguments sock, server_side and server_hostname are passed through unchanged to the method call. The argument do_handshake is passed through as do_handshake_on_connect. The remaining arguments have the following behaviour:cert_reqs determines whether the peer (server or client) must present a valid certificate. Note that for mbedtls based ports,
ssl.CERT_NONE
andssl.CERT_OPTIONAL
will not validate any certificate, onlyssl.CERT_REQUIRED
will.cadata is a bytes object containing the CA certificate chain (in DER format) that will validate the peer’s certificate. Currently only a single DER-encoded certificate is supported.
Depending on the underlying module implementation in a particular MicroPython port, some or all keyword arguments above may be not supported.
- ssl.CERT_NONE: Incomplete
Supported values for cert_reqs parameter, and the
SSLContext.verify_mode
attribute.
- ssl.CERT_OPTIONAL: Incomplete
Supported values for cert_reqs parameter, and the
SSLContext.verify_mode
attribute.
- ssl.CERT_REQUIRED: Incomplete
Supported values for cert_reqs parameter, and the
SSLContext.verify_mode
attribute.
- ssl.PROTOCOL_TLS_CLIENT: Incomplete
Supported values for the protocol parameter.
- ssl.PROTOCOL_TLS_SERVER: Incomplete
Supported values for the protocol parameter.
- ssl.SSLError: Incomplete
This exception does NOT exist. Instead its base class, OSError, is used.