[3.6] bpo-29334: Fix ssl.getpeercert for auto-handshake (GH-1769) by tiran · Pull Request #1778 · python/cpython
Drop handshake_done and peer_cert members from PySSLSocket struct. The
peer certificate can be acquired from *SSL directly.
SSL_get_peer_certificate() does not trigger any network activity.
Instead of manually tracking the handshake state, simply use
SSL_is_init_finished().
In combination these changes fix auto-handshake for non-blocking
MemoryBIO connections.
Signed-off-by: Christian Heimes christian@python.org.
(cherry picked from commit 66dc33b)