C++ Boost ASIO p12 Certificate SSL Handshake
$30-250 USD
着払い
We are trying to connect to our server using boost asio and getting the error "handshake: sslv3 alert handshake failure". We have tried changing the ssl type, setting verify peer to none and a few other things with no success. We are currently at a standstill with our project as a result and would like to find someone familiar with C++ Boost ASIO. This should be a simple project so if you know how to do this please be prepared to present code within 5-10 minutes of bid acceptance. We may have ongoing work for a quality C++ developer. Please see our current code,
FILE *fp;
EVP_PKEY *pkey;
X509 *cert;
STACK_OF(X509) *ca = NULL;
PKCS12 *p12;
int i;
OpenSSL_add_all_algorithms();
ERR_load_crypto_strings();
fp = fopen("/[url removed, login to view]", "rb");
p12 = d2i_PKCS12_fp(fp, NULL);
fclose (fp);
PKCS12_parse(p12, "mypasswordgoeshere", &pkey, &cert, &ca);
PKCS12_free(p12);
if (pkey) {
fprintf(fp, "***Private Key***\n");
PEM_write_PrivateKey(fp, pkey, NULL, NULL, 0, NULL, NULL);
}
if (cert) {
fprintf(fp, "***User Certificate***\n");
PEM_write_X509_AUX(fp, cert);
}
if (ca && sk_X509_num(ca)) {
fprintf(fp, "***Other Certificates***\n");
for (i = 0; i < sk_X509_num(ca); i++)
PEM_write_X509_AUX(fp, sk_X509_value(ca, i));
}
//sk_X509_pop_free(ca, X509_free);
//X509_free(cert);
//EVP_PKEY_free(pkey);
//fclose(fp);
using boost::asio::ip::tcp;
boost::system::error_code ec;
boost::asio::io_service io_service;
boost::asio::ssl::context ctx(io_service, boost::asio::ssl::context::sslv23);
//HOW TO LOAD cert object into ctx?
namespace ssl = boost::asio::ssl;
typedef ssl::stream<tcp::socket> ssl_socket;
ssl_socket sockconn(io_service, ctx);
tcp::resolver resolver(io_service);
tcp::resolver::query query("[url removed, login to view]", "https");
boost::asio::connect(sockconn.lowest_layer(), [url removed, login to view](query));
sockconn.lowest_layer().set_option(tcp::no_delay(true));
sockconn.set_verify_mode(boost::asio::ssl::verify_none);
[url removed, login to view](ssl_socket::client);
boost::asio::streambuf request;
std::ostream requestStream(&request);
requestStream << "GET /[url removed, login to view] HTTP/1.1\r\n"
<< "Connection: Close\r\n"
<< "Host: [url removed, login to view]\r\n\r\n";
boost::asio::write(sockconn, request);
boost::asio::streambuf respond;
boost::asio::read(sockconn, respond, completion, ec);
std::cout << &respond << std::endl;
プロジェクトID: #5328725
プロジェクトについて
1人のフリーランサーが、このジョブに平均$257で入札しています
Dear Customer, I can start now, kindly be noted that I have a professional team to do your work, so, if you interest, kindly send me a PM, in order I can start. Best regards.