]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Do not try to access private OpenSSL structs
authorNikolai Kondrashov <Nikolai.Kondrashov@redhat.com>
Fri, 18 Nov 2016 18:08:49 +0000 (20:08 +0200)
committerNikolai Kondrashov <Nikolai.Kondrashov@redhat.com>
Wed, 7 Dec 2016 12:44:05 +0000 (14:44 +0200)
Some more OpenSSL structures were made private in v1.1 and accessor
functions were added instead. Switch to using accessor functions to fix
the build.

src/main/tls.c
src/modules/rlm_eap/libeap/mppe_keys.c

index 5e3457d6060fcee5d08454380cb26443d2f38435..dfdb259a6e1b02814c4d07226275e18b843939aa 100644 (file)
@@ -1911,7 +1911,6 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
        char            cn_str[1024];
        char            buf[64];
        X509            *client_cert;
-       X509_CINF       *client_inf;
        STACK_OF(X509_EXTENSION) *ext_list;
        SSL             *ssl;
        int             err, depth, lookup, loc;
@@ -2017,7 +2016,7 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
                rdebug_pair(L_DBG_LVL_2, request, vp, NULL);
        }
 
-       X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert), issuer,
+       X509_NAME_oneline(X509_get_issuer_name(client_cert), issuer,
                          sizeof(issuer));
        issuer[sizeof(issuer) - 1] = '\0';
        if (certs && identity && (lookup <= 1) && issuer[0]) {
@@ -2110,8 +2109,13 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
        }
 
        if (lookup == 0) {
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+               ext_list = X509_get0_extensions(client_cert);
+#else
+               X509_CINF       *client_inf;
                client_inf = client_cert->cert_info;
                ext_list = client_inf->extensions;
+#endif
        } else {
                ext_list = NULL;
        }
@@ -2171,7 +2175,7 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
 
        REXDENT();
 
-       switch (ctx->error) {
+       switch (X509_STORE_CTX_get_error(ctx)) {
        case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
                RERROR("issuer=%s", issuer);
                break;
index 63de855246a1f3c0abe5a9989f33b5915e775cb8..549183e4c509dff6a6a406ed5732975119cb5ceb 100644 (file)
@@ -266,9 +266,9 @@ void eap_fast_tls_gen_challenge(SSL *s, uint8_t *buffer, uint8_t *scratch, size_
        p = seed;
        memcpy(p, prf_label, len);
        p += len;
-       memcpy(p, s->s3->server_random, SSL3_RANDOM_SIZE);
+       SSL_get_server_random(s, p, SSL3_RANDOM_SIZE);
        p += SSL3_RANDOM_SIZE;
-       memcpy(p, s->s3->client_random, SSL3_RANDOM_SIZE);
+       SSL_get_client_random(s, p, SSL3_RANDOM_SIZE);
        p += SSL3_RANDOM_SIZE;
 
        master_key_len = SSL_SESSION_get_master_key(SSL_get_session(s), master_key, sizeof(master_key));