2010-10-04 45 views
0

將OpenSSL與非阻塞套接字一起使用時,可方便地使用透明協商模式,其中通過在尚未安全連接的SSL上下文中調用SSL_write來啓動協商,然後處理結果錯誤(通常爲SSL_WANT_READ)從輸出BIO讀取握手數據包並通過傳輸器發送。使用透明協商時驗證OpenSSL連接

但是,如果沒有對SSL_do_handshake進行顯式(阻塞)調用,我不清楚何時嘗試驗證證書。

只要SSL_write第一次返回成功,我只需要進行證書檢查嗎?還是有更好的信號?

回答

2

在開始協商之前,您應該使用SSL_set_verify()來設置驗證模式和可選的驗證回調。在回調中處理您需要的任何其他特定於應用程序的驗證。

然後,如果SSL_write()和/或SSL_read()成功返回,您知道證書已被驗證。