C++ Boost ASIO p12 Certificate SSL Handshake

Cancelled Posted Jan 16, 2014 Paid on delivery
Cancelled Paid on delivery

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;

C++ Programming

Project ID: #5328725

About the project

1 proposal Remote project Active Jan 16, 2014

1 freelancer is bidding on average $257 for this job

TrackProgramming

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.

$257 USD in 10 days
(1 Review)
1.9