[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)

https://bugs.python.org/issue29334