if (!err && (!cc->cert_key || !cc->cert_key->cert || !cc->cert_key->key)) {
err = do_set_ctx_own_cert_file(cc, user_cert_fn, user_key_fn);
if (err)
- goto end;
+ return err;
}
free(user_cert_fn);
unsigned long ssl_err = 0;
int err = 0;
CANL_ERROR_ORIGIN e_orig = unknown_error;
+ char *ca_cert_fn, *user_cert_fn, *user_key_fn, *user_proxy_fn;
+ char *ca_cert_dirn = NULL;
+ ca_cert_fn = user_cert_fn = user_key_fn = user_proxy_fn = NULL;
if (!cc) {
return EINVAL;
e_orig = ssl_error;
goto end;
}
+ err = proxy_get_filenames(0, &ca_cert_fn, &ca_cert_dirn, &user_proxy_fn,
+ &user_cert_fn, &user_key_fn);
+ if (!err && (!cc->cert_key || !cc->cert_key->cert || !cc->cert_key->key)) {
+ if (user_proxy_fn) {
+ err = do_set_ctx_own_cert_file(cc, user_proxy_fn, user_proxy_fn);
+ if (err)
+ return err;
+ }
+ }
- //TODO test hardcoded
- SSL_CTX_load_verify_locations(cc->ssl_ctx, "~/terena_ca_file.pem", NULL);
+ free(user_cert_fn);
+ user_cert_fn = NULL;
+ free(user_key_fn);
+ user_key_fn = NULL;
+ free(user_proxy_fn);
+ user_proxy_fn = NULL;
+ SSL_CTX_load_verify_locations(cc->ssl_ctx, ca_cert_fn, ca_cert_dirn);
+ free(ca_cert_fn);
+ ca_cert_fn = NULL;
+ free(ca_cert_dirn);
+ ca_cert_dirn = NULL;
+
//err = SSL_CTX_set_cipher_list(cc->ssl_ctx, "ALL:!LOW:!EXP:!MD5:!MD2");
err = SSL_CTX_set_cipher_list(cc->ssl_ctx, "ALL");
if (!err) {