static canl_error map_verify_result(unsigned long ssl_err, const SSL *ssl);
static canl_error map_proxy_error(int reason);
-static void setup_SSL_proxy_handler(SSL *ssl, char *cadir);
+static void setup_SSL_proxy_handler(SSL_CTX *ssl, char *cadir);
extern proxy_verify_desc *pvd_setup_initializers(char *cadir);
extern void pvd_destroy_initializers(char *cadir);
return err;
}
-void setup_SSL_proxy_handler(SSL *ssl, char *cadir)
+void setup_SSL_proxy_handler(SSL_CTX *ssl, char *cadir)
{
- SSL_set_ex_data(ssl, PVD_SSL_EX_DATA_IDX,
+ SSL_CTX_set_ex_data(ssl, PVD_SSL_EX_DATA_IDX,
pvd_setup_initializers(cadir));
}
struct timeval *timeout, const char * host)
{
SSL *ssl = (SSL *) auth_ctx;
+ SSL_CTX *ssl_ctx = NULL;
int err = 0, flags;
mech_glb_ctx *m_ctx = (mech_glb_ctx *)cc->mech_ctx;
flags = fcntl(io->sock, F_GETFL, 0);
(void)fcntl(io->sock, F_SETFL, flags | O_NONBLOCK);
- setup_SSL_proxy_handler(ssl, m_ctx->ca_dir);
+ ssl_ctx = SSL_get_SSL_CTX(ssl);
+ setup_SSL_proxy_handler(ssl_ctx, m_ctx->ca_dir);
SSL_set_fd(ssl, io->sock);
err = do_ssl_connect(cc, io, ssl, timeout);
ssl_accept(glb_ctx *cc, io_handler *io, void *auth_ctx, struct timeval *timeout)
{
SSL *ssl = (SSL *) auth_ctx;
+ SSL_CTX *ssl_ctx = NULL;
int err = 0, flags;
mech_glb_ctx *m_ctx = (mech_glb_ctx *)cc->mech_ctx;
flags = fcntl(io->sock, F_GETFL, 0);
(void)fcntl(io->sock, F_SETFL, flags | O_NONBLOCK);
- setup_SSL_proxy_handler(ssl, m_ctx->ca_dir);
+ ssl_ctx = SSL_get_SSL_CTX(ssl);
+ setup_SSL_proxy_handler(ssl_ctx, m_ctx->ca_dir);
SSL_set_fd(ssl, io->sock);
err = do_ssl_accept(cc, io, ssl, timeout);
if (!ssl_ctx)
return set_error(glb_cc, EINVAL, POSIX_ERROR, "SSL context not"
" initialized");
- //mech_glb_ctx *m_ctx = (mech_glb_ctx *)cc->mech_ctx;
+ mech_glb_ctx *m_ctx = (mech_glb_ctx *)glb_cc->mech_ctx;
- /*SSL should be passed to this funcion
setup_SSL_proxy_handler(ssl_ctx, m_ctx->ca_dir);
- */
SSL_CTX_set_cert_verify_callback(ssl_ctx, proxy_app_verify_callback, NULL);
SSL_CTX_set_verify(ssl_ctx, ver_mode, proxy_verify_callback);
X509_REVOKED * revoked;
#endif
SSL * ssl = NULL;
+ SSL_CTX * ssl_ctx = NULL;
proxy_verify_desc * pvd;
int itsaproxy = 0;
int i;
* in the SSL, and its magic number should be PVD_MAGIC_NUMBER
*/
if (!(pvd = (proxy_verify_desc *)
- X509_STORE_CTX_get_ex_data(ctx,
- PVD_STORE_EX_DATA_IDX)))
+ X509_STORE_CTX_get_ex_data(ctx,
+ PVD_STORE_EX_DATA_IDX)))
{
ssl = (SSL *)X509_STORE_CTX_get_app_data(ctx);
- if (ssl)
- pvd = (proxy_verify_desc *)SSL_get_ex_data(ssl,
- PVD_SSL_EX_DATA_IDX);
+ if (ssl) {
+ ssl_ctx = SSL_get_SSL_CTX(ssl);
+ pvd = (proxy_verify_desc *)SSL_get_ex_data(ssl,
+ PVD_SSL_EX_DATA_IDX);
+ }
}
/*