-SSL_METHOD *meth=NULL;
-int verify=SSL_VERIFY_NONE;
- SSL_library_init();
- SSL_load_error_strings();
- SSLeay_add_all_algorithms();
- SSLeay_add_ssl_algorithms();
- meth = SSLv23_client_method();
- *ctx = SSL_CTX_new(meth);
- SSL_CTX_set_verify(*ctx,verify,verify_callback);
- if (*ctx==NULL) return SSL_ERR_CTX_CREATION;
-return 0; /* Succeded */
+ SSL_METHOD *meth = NULL;
+ int verify = SSL_VERIFY_NONE;
+ SSL_library_init ();
+ SSL_load_error_strings ();
+ SSLeay_add_all_algorithms ();
+ SSLeay_add_ssl_algorithms ();
+ meth = SSLv23_client_method ();
+ *ctx = SSL_CTX_new (meth);
+ SSL_CTX_set_verify (*ctx, verify, verify_callback);
+ if (*ctx == NULL) return SSLERRCTXCREATE;
+ if (opt.sslcertfile)
+ {
+ if (SSL_CTX_use_certificate_file (*ctx, opt.sslcertfile,
+ SSL_FILETYPE_PEM) <= 0)
+ return SSLERRCERTFILE;
+ if (opt.sslcertkey == NULL)
+ opt.sslcertkey=opt.sslcertfile;
+ if (SSL_CTX_use_PrivateKey_file (*ctx, opt.sslcertkey,
+ SSL_FILETYPE_PEM) <= 0)
+ return SSLERRCERTKEY;
+ }
+ return 0; /* Succeded */