Boost:asio验证证书同步
Boost:asio Verify Certificate synchronous
我想支持到服务器的同步和异步客户端连接(通过TLS)。异步客户端是微不足道的,正如asio的示例所示。但是,如何能够以同步方式使用TLS连接到服务器?我最关心的是如何检查服务器证书。因为异步,它是这样做的:
asio::ssl::context ctx(asio::ssl::context::tlsv11);
ctx.set_default_verify_paths();
mSocket(mIoService, ctx);
mSocket.set_verify_mode(asio::ssl::verify_fail_if_no_peer_cert);
mSocket.set_verify_callback(
std::bind(&Client::verifyCertificate, this,
std::placeholders::_1,
std::placeholders::_2));
但是我如何检查相同的同步?注意:目前我使用的是asio的独立版本。这应该与boost:asio相同。
编辑:验证方法看起来像这个
bool Client::verifyCertificate(bool preverified,
asio::ssl::verify_context& ctx)
{
//just cout the name
char subject_name[256];
X509* cert = X509_STORE_CTX_get_current_cert(ctx.native_handle());
X509_NAME_oneline(X509_get_subject_name(cert), subject_name, 256);
std::cout << "Verifying " << subject_name << "n";
return preverified;
}
我想您想调用handshake()
。它被记录为一个阻塞调用,我认为它将同步调用您的证书验证函数。
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 松弛原子与无同步情况下的记忆连贯性
- 如何在C++中使用X509证书模在令牌中查找私钥
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- OpenSSL TLS服务器-使用客户端证书白名单
- 在C++中同步线程
- 与 stdio 同步是否使程序 I/O 非交互式?
- 如何在qt中同步应用程序和显示器的刷新率?
- Windows 进程间同步类似事件?
- 使用 OpenSSL 从内存中读取原始 SSL/TLS 证书
- CertGetCertificateChain 具有支持的内存存储和证书信任列表
- 当对套接字 send() 的同步调用由于连接另一端丢失而被阻止时,如何恢复?
- 将 10 个线程与原子布尔值同步
- ofstream::close() 是否在 Linux 上调用同步?
- c++ libCurl :如何使用libCurl接受过期的证书
- 与Visual Studios(c ++)同步时如何组织github存储库?
- 原子获取是否与互斥锁释放同步?
- 以 x64 配置访问证书公钥
- Boost (Beast) websocket:同步写入挂起
- Boost:asio验证证书同步