OpenSSL

时间:2017-03-08 17:20:38

标签: openssl

我需要遵循高级逻辑来实现:

  • 客户端设置SNI(https://en.wikipedia.org/wiki/Server_Name_Indication)以显示它想要连接的“服务器”
  • 服务器将请求客户端证书身份验证
  • 客户端将发送客户端证书(它只有一个会发送)
  • 我们当时没有本地CA证书(这是最重要的信息),我们需要去异步获取一个
  • 我们应该在检索CA证书时验证客户端证书。

我知道如何在同步模式下实现所有这些功能(当我在本地拥有CA证书或者只是阻止所有内容时才使用:SSL_CTX_set_tlsext_servername_callbackSSL_CTX_set_verify,{{1} }

但是,我试图找出在异步情况下要做什么。我怎样才能让OpenSSL知道我们还没有准备好验证客户端证书,它需要等到我们获得适当的CA.

1 个答案:

答案 0 :(得分:0)

您可以使用函数SSL_CTX_set_cert_cb设置回调,如果您在回调-1中返回,则握手暂停。

握手没有终止,也没有完成。

当您准备好继续握手时,您可以再次致电SSL_accept