Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ctx_client = SSL_CTX_new(SSLv3_client_method());
- SSL_CTX_set_verify(ctx_client, SSL_VERIFY_NONE, my_verify_callback);
- SSL_CTX_set_verify_depth(ctx_client, 0);
- bio_client = BIO_new_connect(SERVER ":" PORT);
- if(!bio_client) {
- printf("Error creating connection BIO");
- return false;
- }
- if (BIO_do_connect(bio_client) <= 0) {
- printf("Error connecting to remote machine");
- return false;
- }
- ssl_client = SSL_new(ctx_client);
- SSL_set_bio(ssl_client, bio_client, bio_client);
- SSL_set_verify(ssl_client, SSL_VERIFY_NONE, my_verify_callback);
- SSL_set_verify_depth(ssl_client, 0);
- if (SSL_connect(ssl_client) <= 0) {
- printf("Error connecting SSL object\n");
- return false;
- }
- printf("SSL Connection opened\n");
- static int my_verify_callback(int ok, X509_STORE_CTX *store)
- {
- char data[256];
- int err = 0;
- if (!ok)
- {
- X509 *cert = X509_STORE_CTX_get_current_cert(store);
- int depth = X509_STORE_CTX_get_error_depth(store);
- err = X509_STORE_CTX_get_error(store);
- fprintf(stderr, "-Error with certificate at depth: %i\n", depth);
- X509_NAME_oneline(X509_get_issuer_name(cert), data, 256);
- fprintf(stderr, " issuer = %s\n", data);
- X509_NAME_oneline(X509_get_subject_name(cert), data, 256);
- fprintf(stderr, " subject = %s\n", data);
- fprintf(stderr, " err %i:%s\n", err, X509_verify_cert_error_string(err));
- }
- //return ok;
- // Always continue:
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement