我需要创建一个执行TLS握手的TLS客户端。我使用context.wrap_socket
,该参数接受一个do_handshake_on_connect
或True
的参数False
。但是,我一直在进行握手,而没有将此变量设置为True(我根本不通过它)。然后我得到了握手结果,例如服务器选择的TLS密码套件和版本。
我想念什么吗?如果do_handshake_on_connect
在我执行时隐式完成,那有什么意义呢?
我不明白这一点,我怕我错过了一些东西。
ssl_sock.connect
答案 0 :(得分:1)
如果do_handshake_on_connect在执行时隐式完成,那有什么意义:
ssl_sock.connect
该点清楚地显示在the official documantion中。引用:
参数do_handshake_on_connect指定在执行socket.connect()之后是自动进行SSL握手,还是通过调用SSLSocket.do_handshake()方法来使应用程序显式调用它。 调用SSLSocket.do_handshake()可以使程序完全控制握手中涉及的套接字I / O的阻塞行为。