Commit 41f92c28 authored by Victor Stinner's avatar Victor Stinner

Issue #22564: ssl doc: document read(), write(), pending, server_side and

server_hostname methods and attributes of SSLSocket.
parent 851a6cc0
...@@ -782,6 +782,41 @@ the specification of normal, OS-level sockets. See especially the ...@@ -782,6 +782,41 @@ the specification of normal, OS-level sockets. See especially the
SSL sockets also have the following additional methods and attributes: SSL sockets also have the following additional methods and attributes:
.. method:: SSLSocket.read(len=0, buffer=None)
Read up to *len* bytes of data from the SSL socket and return the result as
a ``bytes`` instance. If *buffer* is specified, then read into the buffer
instead, and return the number of bytes read.
Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is
non-blocking and the read would block.
As at any time a re-negotiation is possible, a call to :meth:`read` can also
cause write operations.
.. method:: SSLSocket.write(buf)
Write *buf* to the SSL socket and return the number of bytes written. The
*buf* argument must be an object supporting the buffer interface.
Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is
non-blocking and the write would block.
As at any time a re-negotiation is possible, a call to :meth:`write` can
also cause read operations.
.. note::
The :meth:`~SSLSocket.read` and :meth:`~SSLSocket.write` methods are the
low-level methods that read and write unencrypted, application-level data
and and decrypt/encrypt it to encrypted, wire-level data. These methods
require an active SSL connection, i.e. the handshake was completed and
:meth:`SSLSocket.unwrap` was not called.
Normally you should use the socket API methods like
:meth:`~socket.socket.recv` and :meth:`~socket.socket.send` instead of these
methods.
.. method:: SSLSocket.do_handshake() .. method:: SSLSocket.do_handshake()
Perform the SSL setup handshake. Perform the SSL setup handshake.
...@@ -904,6 +939,11 @@ SSL sockets also have the following additional methods and attributes: ...@@ -904,6 +939,11 @@ SSL sockets also have the following additional methods and attributes:
returned socket should always be used for further communication with the returned socket should always be used for further communication with the
other side of the connection, rather than the original socket. other side of the connection, rather than the original socket.
.. method:: SSLSocket.pending()
Returns the number of already decrypted bytes available for read, pending on
the connection.
.. attribute:: SSLSocket.context .. attribute:: SSLSocket.context
The :class:`SSLContext` object this SSL socket is tied to. If the SSL The :class:`SSLContext` object this SSL socket is tied to. If the SSL
...@@ -913,6 +953,20 @@ SSL sockets also have the following additional methods and attributes: ...@@ -913,6 +953,20 @@ SSL sockets also have the following additional methods and attributes:
.. versionadded:: 3.2 .. versionadded:: 3.2
.. attribute:: SSLSocket.server_side
A boolean which is ``True`` for server-side sockets and ``False`` for
client-side sockets.
.. versionadded:: 3.2
.. attribute:: SSLSocket.server_hostname
Hostname of the server: :class:`str` type, or ``None`` for server-side
socket or if the hostname was not specified in the constructor.
.. versionadded:: 3.2
SSL Contexts SSL Contexts
------------ ------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment