SSL_CTX_set_verify()
和SSL_set_verify()
调用可用于分别为基础上下文和ssl设置verify_callback()
函数。这是verify_callback()
文档的摘录:
现在我的问题。如果我设置了verify_callback()
(以及其他必要的OpenSSL设置调用,证书等),则调用SSL_connect()
,是否可以安全地假设对verify_callback()
的任何用于连接建立目的的调用将在SSL_connect()
调用返回之前返回?
在我看来,这是一个安全的假设,因为文档指出此回调决定了是否建立连接。因此,回调将直接影响SSL_connect()
调用的返回值。谁能确认/否认这个假设?
最佳答案
假设您只对TCP连接感兴趣:简短答案:是,很长答案:这取决于:
SSL_connect
可能返回-1。在这种情况下,您应该调用SSL_get_error
并检查问题出在哪里(如果返回SSL_ERROR_WANT_READ
或SSL_ERROR_WANT_WRITE
,则需要重复SSL_connect
调用)。如果您需要重复通话-答案是而不是(verify_callback
将在第一个和最后一个SSL_connect
调用之间被调用)。 关于c++ - OpenSSL verify_callback和SSL_connect,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33437321/