]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Move func substitutes from rlm_eap to missing.c
authorNikolai Kondrashov <Nikolai.Kondrashov@redhat.com>
Wed, 7 Dec 2016 12:23:54 +0000 (14:23 +0200)
committerNikolai Kondrashov <Nikolai.Kondrashov@redhat.com>
Wed, 7 Dec 2016 12:44:05 +0000 (14:44 +0200)
configure
configure.ac
src/include/autoconf.h.in
src/include/missing-h
src/lib/missing.c
src/modules/rlm_eap/libeap/eap_tls.h
src/modules/rlm_eap/libeap/mppe_keys.c

index bbefb8b427ca1f5b2d722f9b91f54df9ac993015..7ccfc171931521f61356b76b4542fc210aa2c536 100755 (executable)
--- a/configure
+++ b/configure
@@ -8785,6 +8785,7 @@ fi
                 for ac_func in \
       SSL_get_client_random \
       SSL_get_server_random \
+      SSL_SESSION_get_master_key \
       HMAC_CTX_new \
       HMAC_CTX_free \
       ASN1_STRING_get0_data \
index 485f66c69f3e56f64b962d5542bbe3c794a7ec5d..53a27a1015faba0e39a4ad2e85672b89f95dcabe 100644 (file)
@@ -1183,6 +1183,7 @@ if test "x$WITH_OPENSSL" = xyes; then
     AC_CHECK_FUNCS( \
       SSL_get_client_random \
       SSL_get_server_random \
+      SSL_SESSION_get_master_key \
       HMAC_CTX_new \
       HMAC_CTX_free \
       ASN1_STRING_get0_data \
index aa91effc75e0925b4071366f2316ea25ad12f571..d38228199c42f25f69691d26b0acd124ecde8bae 100644 (file)
 /* Define to 1 if you have the `SSL_get_server_random' function. */
 #undef HAVE_SSL_GET_SERVER_RANDOM
 
+/* Define to 1 if you have the `SSL_SESSION_get_master_key' function. */
+#undef HAVE_SSL_SESSION_GET_MASTER_KEY
+
 /* Define to 1 if you have the <stdbool.h> header file. */
 #undef HAVE_STDBOOL_H
 
index 3cc205b09690a209c541d6685b32ffa6b79adc5d..ab01978cf914db7e0ef6f5c0d6b1a522cea0b712 100644 (file)
@@ -83,6 +83,10 @@ RCSIDH(missing_h, "$Id$")
 #  endif
 #endif
 
+#ifdef HAVE_OPENSSL_SSL_H
+#  include <openssl/ssl.h>
+#endif
+
 #ifdef HAVE_OPENSSL_HMAC_H
 #  include <openssl/hmac.h>
 #endif
@@ -492,6 +496,19 @@ static inline int CONF_modules_load_file(const char *filename,
 }
 #endif
 
+#ifdef HAVE_OPENSSL_SSL_H
+#  ifndef HAVE_SSL_GET_CLIENT_RANDOM
+size_t SSL_get_client_random(const SSL *s, unsigned char *out, size_t outlen);
+#  endif
+#  ifndef HAVE_SSL_GET_SERVER_RANDOM
+size_t SSL_get_server_random(const SSL *s, unsigned char *out, size_t outlen);
+#  endif
+#  ifndef HAVE_SSL_SESSION_GET_MASTER_KEY
+size_t SSL_SESSION_get_master_key(const SSL_SESSION *s,
+                                 unsigned char *out, size_t outlen);
+#  endif
+#endif
+
 /*
  *     Not really missing, but may be submitted as patches
  *     to the talloc project at some point in the future.
index 00c21361843ec14849629ee1957dfeb1cc1ba5b8..22fea07f4b27ddaea1dc4caeaa1dcac5780c87db 100644 (file)
@@ -341,6 +341,43 @@ void HMAC_CTX_free(HMAC_CTX *ctx)
 #  endif
 #endif
 
+#ifdef HAVE_OPENSSL_SSL_H
+#  ifndef HAVE_SSL_GET_CLIENT_RANDOM
+size_t SSL_get_client_random(const SSL *s, unsigned char *out, size_t outlen)
+{
+       if (!outlen) return sizeof(s->s3->client_random);
+
+       if (outlen > sizeof(s->s3->client_random)) outlen = sizeof(s->s3->client_random);
+
+       memcpy(out, s->s3->client_random, outlen);
+       return outlen;
+}
+#  endif
+#  ifndef HAVE_SSL_GET_SERVER_RANDOM
+size_t SSL_get_server_random(const SSL *s, unsigned char *out, size_t outlen)
+{
+       if (!outlen) return sizeof(s->s3->server_random);
+
+       if (outlen > sizeof(s->s3->server_random)) outlen = sizeof(s->s3->server_random);
+
+       memcpy(out, s->s3->server_random, outlen);
+       return outlen;
+}
+#  endif
+#  ifndef HAVE_SSL_SESSION_GET_MASTER_KEY
+size_t SSL_SESSION_get_master_key(const SSL_SESSION *s,
+                                 unsigned char *out, size_t outlen)
+{
+       if (!outlen) return s->master_key_length;
+
+       if (outlen > (size_t)s->master_key_length) outlen = (size_t)s->master_key_length;
+
+       memcpy(out, s->master_key, outlen);
+       return outlen;
+}
+#  endif
+#endif
+
 /** Call talloc strdup, setting the type on the new chunk correctly
  *
  * For some bizarre reason the talloc string functions don't set the
index 6b345d93ad72b0419d1aa20fbf69b1e80655a02b..73c7fdd53b5a80ea928ea9f007437bee56b8fa51 100644 (file)
@@ -62,12 +62,6 @@ int  eaptls_fail(eap_handler_t *handler, int peap_flag) CC_HINT(nonnull);
 int    eaptls_request(EAP_DS *eap_ds, tls_session_t *ssn) CC_HINT(nonnull);
 
 
-/* MPPE key generation */
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
-size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, size_t outlen);
-size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, size_t outlen);
-#endif
-
 void                   T_PRF(unsigned char const *secret, unsigned int secret_len, char const *prf_label, unsigned char const *seed,  unsigned int seed_len, unsigned char *out, unsigned int out_len) CC_HINT(nonnull(1,3,6));
 void   eaptls_gen_mppe_keys(REQUEST *request, SSL *s, char const *prf_label);
 void   eapttls_gen_challenge(SSL *s, uint8_t *buffer, size_t size);
index 4fcb797b70a3c5efdd97699aac64ef3c9b8d502e..63de855246a1f3c0abe5a9989f33b5915e775cb8 100644 (file)
@@ -29,41 +29,6 @@ USES_APPLE_DEPRECATED_API    /* OpenSSL API has been deprecated by Apple */
 #include <openssl/hmac.h>
 
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
-/*
- *     OpenSSL compatibility, to avoid ifdef's through the rest of the code.
- */
-size_t SSL_get_client_random(const SSL *s, unsigned char *out, size_t outlen)
-{
-       if (!outlen) return sizeof(s->s3->client_random);
-
-       if (outlen > sizeof(s->s3->client_random)) outlen = sizeof(s->s3->client_random);
-
-       memcpy(out, s->s3->client_random, outlen);
-       return outlen;
-}
-
-size_t SSL_get_server_random(const SSL *s, unsigned char *out, size_t outlen)
-{
-       if (!outlen) return sizeof(s->s3->server_random);
-
-       if (outlen > sizeof(s->s3->server_random)) outlen = sizeof(s->s3->server_random);
-
-       memcpy(out, s->s3->server_random, outlen);
-       return outlen;
-}
-
-static size_t SSL_SESSION_get_master_key(const SSL_SESSION *s, unsigned char *out, size_t outlen)
-{
-       if (!outlen) return s->master_key_length;
-
-       if (outlen > (size_t)s->master_key_length) outlen = (size_t)s->master_key_length;
-
-       memcpy(out, s->master_key, outlen);
-       return outlen;
-}
-#endif
-
 /*
  * TLS PRF from RFC 2246
  */