[3.5] bpo-29334: Fix ssl.getpeercert for auto-handshake (GH-1769) by tiran · Pull Request #1779 · python/cpython

@tiran

@tiran

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)

@tiran tiran deleted the backport-66dc33b-3.5 branch

September 5, 2017 17:22