summaryrefslogtreecommitdiffstats
path: root/tcpd/libcouriertls.c
diff options
context:
space:
mode:
authorSam Varshavchik2017-02-07 21:39:42 -0500
committerSam Varshavchik2017-02-07 21:39:42 -0500
commit412c2afcfd78322eeb17d8083cc3e539f80a59bc (patch)
tree2f06def26ec220830e93deedfae11dd90eaafa48 /tcpd/libcouriertls.c
parentf2cdab243e28d92412e91150e88ce5885362e786 (diff)
downloadcourier-libs-412c2afcfd78322eeb17d8083cc3e539f80a59bc.tar.bz2
OpenSSL API update.
Diffstat (limited to 'tcpd/libcouriertls.c')
-rw-r--r--tcpd/libcouriertls.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/tcpd/libcouriertls.c b/tcpd/libcouriertls.c
index 0c091ba..a83e4ae 100644
--- a/tcpd/libcouriertls.c
+++ b/tcpd/libcouriertls.c
@@ -161,9 +161,9 @@ static int verifypeer(const struct tls_info *info, SSL *ssl)
{
STACK_OF(X509) *peer_cert_chain=SSL_get_peer_cert_chain(ssl);
- if (peer_cert_chain && peer_cert_chain->stack.num > 0)
+ if (peer_cert_chain && sk_X509_num(peer_cert_chain) > 0)
{
- X509 *xx=(X509 *)peer_cert_chain->stack.data[0];
+ X509 *xx=sk_X509_value(peer_cert_chain, 0);
if (xx)
subj=X509_get_subject_name(xx);
@@ -426,16 +426,16 @@ static int client_cert_cb(ssl_handle ssl, X509 **x509, EVP_PKEY **pkey)
continue;
}
- for (i=0; client_cas && i<client_cas->stack.num; i++)
+ for (i=0; client_cas && i<sk_X509_NAME_num(client_cas); i++)
{
- X509_NAME *cert=(X509_NAME *)client_cas->stack.data[i];
+ X509_NAME *cert=sk_X509_NAME_value(client_cas, i);
if (X509_NAME_cmp(cert,
x->cert_info->issuer) == 0)
break;
}
- if (!client_cas || i >= client_cas->stack.num)
+ if (!client_cas || i >= sk_X509_NAME_num(client_cas))
{
BIO_free(certbio);
continue;
@@ -854,10 +854,12 @@ static int cache_add(SSL *ssl, SSL_SESSION *sess)
unsigned char *ucp;
time_t timeout= (time_t)SSL_SESSION_get_time(sess)
+ SSL_SESSION_get_timeout(sess);
- void *session_id=(void *)sess->session_id;
- size_t session_id_len=sess->session_id_length;
+ unsigned int session_id_len;
+ void *session_id;
size_t sess_len=i2d_SSL_SESSION(sess, NULL);
+ session_id=(void *)SSL_SESSION_get_id(sess, &session_id_len);
+
if (sizeof(timeout) + sizeof(session_id_len) + session_id_len +
sess_len > sizeof(buffer))
{
@@ -963,11 +965,14 @@ static void cache_del(SSL_CTX *ctx, SSL_SESSION *sess)
{
const struct tls_info *info=SSL_CTX_get_app_data(ctx);
struct walk_info wi;
+ unsigned int session_id_len;
+ void *session_id;
wi.now=0;
- wi.id=(unsigned char *)sess->session_id;
- wi.id_len=sess->session_id_length;
+ session_id=(void *)SSL_SESSION_get_id(sess, &session_id_len);
+ wi.id=(unsigned char *)session_id;
+ wi.id_len=session_id_len;
if (tls_cache_walk(info->tlscache, del_func, &wi) < 0)
perror("ALERT: tls_cache_walk: ");
}
@@ -1481,8 +1486,9 @@ void tls_dump_connection_info(ssl_handle ssl,
}
}
- for (i=0; peer_cert_chain && i<peer_cert_chain->stack.num; i++)
- dump_x509((X509 *)peer_cert_chain->stack.data[i],
+ for (i=0; peer_cert_chain && i<sk_X509_num(peer_cert_chain);
+ i++)
+ dump_x509((X509 *)sk_X509_value(peer_cert_chain,0),
dump_func, dump_arg);
}