gpt4 book ai didi

c++ - 提升 :asio Verify Certificate synchronous

转载 作者:行者123 更新时间:2023-11-30 05:34:21 26 4
gpt4 key购买 nike

我想支持与服务器的同步和异步客户端连接(通过 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() .它被记录为阻塞调用,我假设它将同步调用您的认证验证功能。

关于c++ - 提升 :asio Verify Certificate synchronous,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34267498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com