]> granicus.if.org Git - python/commit
bpo-29334: Fix ssl.getpeercert for auto-handshake (#1769)
authorChristian Heimes <christian@python.org>
Tue, 23 May 2017 23:02:02 +0000 (16:02 -0700)
committerGitHub <noreply@github.com>
Tue, 23 May 2017 23:02:02 +0000 (16:02 -0700)
commit66dc33b6822be93f85d84d24d3f9159ff568fbbb
tree90f66c29ee79e83355a5794f5f106ee2aac84fef
parente0918ecf93a458d4e005650f816d64654e73fc2a
bpo-29334: Fix ssl.getpeercert for auto-handshake (#1769)

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>
Modules/_ssl.c