我在使用asio库时遇到问题。
这就是我设置服务器部分的方式。
serverServicePtr->network_context->set_options(boost::asio::ssl::context::default_workarounds| boost::asio::ssl::context::no_sslv2 );
serverServicePtr->network_context->set_password_callback(boost::bind(&ServerService::GetPassword));
serverServicePtr->network_context->use_private_key_file("privkey.pem", boost::asio::ssl::context::pem);
...
clientSocket->handshake( boost::asio::ssl::stream_base::server );
客户端部分:
boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
ctx.load_verify_file("pubkey.pem");
ctx.set_verify_mode(boost::asio::ssl::verify_peer);
ctx.set_verify_callback(boost::bind(&verify_certificate, _1, _2));
boost::asio::ssl::stream<boost::asio::ip::tcp::socket> s(io_service, ctx);
boost::asio::connect(s.lowest_layer(), iterator);
s.lowest_layer().set_option(boost::asio::ip::tcp::no_delay(true));
s.handshake(boost::asio::ssl::stream_base::client);
它在握手时失败。服务器说“握手:没有共享密码”,客户端只是说。该服务器拒绝客户端。
我的问题是,问题出在哪里?我错过了什么?也许,我生成的钥匙错了?如何为asio生成它们?