ssl_ctx = SSL_CTX_new(SSLv23_method());
if (!ssl_ctx)
return set_error(cc, ERR_get_error(), SSL_ERROR,
- "Cannot initialize SSL context");
+ "Cannot initialize SSL context");
+
+ /* TODO what is this? */
SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2);
err = proxy_get_filenames(0, &ca_cert_fn, &ca_cert_dirn, NULL, NULL, NULL);
{
SSL_CTX *ssl_ctx = (SSL_CTX *) mech_ctx;
SSL *ssl = NULL;
-
+ char *user_cert_fn, *user_key_fn, *user_proxy_fn;
+ int err = 0;
+ user_cert_fn = user_key_fn = user_proxy_fn = NULL;
+
if (cc == NULL)
return EINVAL;
if (ssl_ctx == NULL)
return set_error(cc, EINVAL, POSIX_ERROR, "SSL not initialized");
-#if 0
- err = proxy_get_filenames(0, &ca_cert_fn, &ca_cert_dirn, &user_proxy_fn,
+ err = proxy_get_filenames(0, NULL, NULL, &user_proxy_fn,
&user_cert_fn, &user_key_fn);
if (!err && (!cc->cert_key || !cc->cert_key->cert || !cc->cert_key->key)) {
if (user_cert_fn && user_key_fn && !access(user_cert_fn, R_OK) &&
//TODO where to use proxy on server side
free(user_proxy_fn);
user_proxy_fn = NULL;
-#endif
ssl = SSL_new(ssl_ctx);
if (ssl == NULL)
SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, proxy_verify_callback);
SSL_CTX_set_cert_verify_callback(ssl_ctx, proxy_app_verify_callback, 0);
- SSL_use_certificate_file(ssl, "/etc/grid-security/hostcert.pem", SSL_FILETYPE_PEM);
- SSL_use_PrivateKey_file(ssl, "/etc/grid-security/hostkey.pem", SSL_FILETYPE_PEM);
+// SSL_use_certificate_file(ssl, "/etc/grid-security/hostcert.pem", SSL_FILETYPE_PEM);
+// SSL_use_PrivateKey_file(ssl, "/etc/grid-security/hostkey.pem", SSL_FILETYPE_PEM);
SSL_set_accept_state(ssl);
-#if 0
if (cc->cert_key) {
if (cc->cert_key->cert) {
- err = SSL_CTX_use_certificate(ssl_ctx, cc->cert_key->cert);
+ err = SSL_use_certificate(ssl, cc->cert_key->cert);
if (err != 1) {
- ssl_err = ERR_get_error();
- e_orig = SSL_ERROR;
- goto end;
+ return set_error(cc, ERR_get_error(), SSL_ERROR, "Cannot"
+ "use certificate");
}
else
err = 0;
}
if (cc->cert_key->key) {
- err = SSL_CTX_use_PrivateKey(ssl_ctx, cc->cert_key->key);
+ err = SSL_use_PrivateKey(ssl, cc->cert_key->key);
if (err != 1) {
- ssl_err = ERR_get_error();
- e_orig = SSL_ERROR;
- goto end;
+ return set_error(cc, ERR_get_error(), SSL_ERROR, "Cannot"
+ "use private key");
}
else
err = 0;
return 1;
}
/*Make sure the key and certificate file match*/
- if ( (err = SSL_CTX_check_private_key(ssl_ctx)) != 1) {
- ssl_err = ERR_get_error();
- e_orig = SSL_ERROR;
- set_error(cc, ssl_err, e_orig, "Private key does not match"
+ if ( (err = SSL_check_private_key(ssl)) != 1) {
+ set_error(cc, ERR_get_error(), SSL_ERROR, "Private key does not match"
" the certificate public key");
return 1;
}
-#endif
*ctx = ssl;
{
SSL_CTX *ssl_ctx = (SSL_CTX *) mech_ctx;
SSL *ssl = NULL;
+ int err = 0;
+ char *user_cert_fn, *user_key_fn, *user_proxy_fn;
+ user_cert_fn = user_key_fn = user_proxy_fn = NULL;
if (cc == NULL)
return EINVAL;
SSL_set_connect_state(ssl);
-#if 0
- err = proxy_get_filenames(0, &ca_cert_fn, &ca_cert_dirn, &user_proxy_fn,
+ err = proxy_get_filenames(0, NULL, NULL, &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 && !access(user_proxy_fn, R_OK)) {
if (cc->cert_key) {
if (cc->cert_key->key) {
- err = SSL_CTX_use_PrivateKey(ssl_ctx, cc->cert_key->key);
+ err = SSL_use_PrivateKey(ssl, cc->cert_key->key);
if (err != 1) {
- ssl_err = ERR_get_error();
- e_orig = SSL_ERROR;
- goto end;
+ return set_error(cc, ERR_get_error(), SSL_ERROR, "Cannot"
+ "use private key");
}
}
else if (cc->cert_key->cert) {
- err = SSL_CTX_use_certificate(ssl_ctx, cc->cert_key->cert);
+ err = SSL_use_certificate(ssl, cc->cert_key->cert);
if (err != 1) {
- ssl_err = ERR_get_error();
- e_orig = SSL_ERROR;
- goto end;
+ return set_error(cc, ERR_get_error(), SSL_ERROR, "Cannot"
+ "use certificate");
}
}
}
-#endif
*ctx = ssl;
return 0;