From 3e41ac35281827b59e55d51058cf6bb086c1f2b5 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Mon, 21 Mar 2016 16:54:53 +0000 Subject: Fix no-ocsp Misc fixes for no-ocsp Reviewed-by: Rich Salz --- ssl/ssl_lib.c | 7 +++++++ ssl/t1_lib.c | 16 ++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) (limited to 'ssl') diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index e6511895ce..6875f384b1 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -1057,7 +1057,9 @@ void SSL_free(SSL *s) OPENSSL_free(s->tlsext_ellipticcurvelist); #endif /* OPENSSL_NO_EC */ sk_X509_EXTENSION_pop_free(s->tlsext_ocsp_exts, X509_EXTENSION_free); +#ifndef OPENSSL_NO_OCSP sk_OCSP_RESPID_pop_free(s->tlsext_ocsp_ids, OCSP_RESPID_free); +#endif #ifndef OPENSSL_NO_CT SCT_LIST_free(s->scts); OPENSSL_free(s->tlsext_scts); @@ -3951,6 +3953,7 @@ static int ct_extract_tls_extension_scts(SSL *s) */ static int ct_extract_ocsp_response_scts(SSL *s) { +#ifndef OPENSSL_NO_OCSP int scts_extracted = 0; const unsigned char *p; OCSP_BASICRESP *br = NULL; @@ -3987,6 +3990,10 @@ err: OCSP_BASICRESP_free(br); OCSP_RESPONSE_free(rsp); return scts_extracted; +#else + /* Behave as if no OCSP response exists */ + return 0; +#endif } /* diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c index a20e85fb4b..6e7b5edbc4 100644 --- a/ssl/t1_lib.c +++ b/ssl/t1_lib.c @@ -1347,6 +1347,7 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, ret += salglen; } +#ifndef OPENSSL_NO_OCSP if (s->tlsext_status_type == TLSEXT_STATUSTYPE_ocsp) { int i; long extlen, idlen, itmp; @@ -1390,6 +1391,7 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, if (extlen > 0) i2d_X509_EXTENSIONS(s->tlsext_ocsp_exts, &ret); } +#endif #ifndef OPENSSL_NO_HEARTBEATS if (SSL_IS_DTLS(s)) { /* Add Heartbeat extension */ @@ -2128,14 +2130,14 @@ static int ssl_scan_clienthello_tlsext(SSL *s, PACKET *pkt, int *al) } } } else if (type == TLSEXT_TYPE_status_request) { - const unsigned char *ext_data; - if (!PACKET_get_1(&extension, (unsigned int *)&s->tlsext_status_type)) { return 0; } +#ifndef OPENSSL_NO_OCSP if (s->tlsext_status_type == TLSEXT_STATUSTYPE_ocsp) { + const unsigned char *ext_data; PACKET responder_id_list, exts; if (!PACKET_get_length_prefixed_2(&extension, &responder_id_list)) return 0; @@ -2192,10 +2194,12 @@ static int ssl_scan_clienthello_tlsext(SSL *s, PACKET *pkt, int *al) return 0; } } - /* - * We don't know what to do with any other type * so ignore it. - */ - } else { + } else +#endif + { + /* + * We don't know what to do with any other type so ignore it. + */ s->tlsext_status_type = -1; } } -- cgit v1.2.3