Deprecate quite a few recursive includes from the ssl.h API header and
remove some unnecessary includes from the internal header ssl_locl.h. This
then requires adding includes for bn.h in four C files.
diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c
index 8feb24a..56dbf75 100644
--- a/ssl/s3_clnt.c
+++ b/ssl/s3_clnt.c
@@ -131,6 +131,7 @@
 #include <openssl/evp.h>
 #include <openssl/md5.h>
 #include <openssl/dh.h>
+#include <openssl/bn.h>
 
 static SSL_METHOD *ssl3_get_client_method(int ver);
 static int ssl3_client_hello(SSL *s);
diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
index cd96d67..898f498 100644
--- a/ssl/s3_srvr.c
+++ b/ssl/s3_srvr.c
@@ -134,6 +134,7 @@
 #include <openssl/evp.h>
 #include <openssl/x509.h>
 #include <openssl/dh.h>
+#include <openssl/bn.h>
 #ifndef OPENSSL_NO_KRB5
 #include <openssl/krb5_asn.h>
 #endif
diff --git a/ssl/ssl.h b/ssl/ssl.h
index 8a16d77..04909c8 100644
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -178,9 +178,16 @@
 #ifndef OPENSSL_NO_BIO
 #include <openssl/bio.h>
 #endif
+#ifndef OPENSSL_NO_DEPRECATED
 #ifndef OPENSSL_NO_X509
 #include <openssl/x509.h>
 #endif
+#include <openssl/crypto.h>
+#include <openssl/lhash.h>
+#include <openssl/buffer.h>
+#endif
+#include <openssl/pem.h>
+
 #include <openssl/kssl.h>
 #include <openssl/safestack.h>
 #include <openssl/symhacks.h>
@@ -318,11 +325,6 @@
 }
 #endif
 
-#include <openssl/crypto.h>
-#include <openssl/lhash.h>
-#include <openssl/buffer.h>
-#include <openssl/pem.h>
-
 #ifdef  __cplusplus
 extern "C" {
 #endif
diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c
index aa074e4..258da8b 100644
--- a/ssl/ssl_cert.c
+++ b/ssl/ssl_cert.c
@@ -134,6 +134,7 @@
 #include <openssl/pem.h>
 #include <openssl/x509v3.h>
 #include <openssl/dh.h>
+#include <openssl/bn.h>
 #include "ssl_locl.h"
 
 int SSL_get_ex_data_X509_STORE_CTX_idx(void)
diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h
index 9b03123..9c1fddd 100644
--- a/ssl/ssl_locl.h
+++ b/ssl/ssl_locl.h
@@ -126,10 +126,7 @@
 #include <openssl/buffer.h>
 #include <openssl/comp.h>
 #include <openssl/bio.h>
-#include <openssl/crypto.h>
-#include <openssl/evp.h>
 #include <openssl/stack.h>
-#include <openssl/x509.h>
 #include <openssl/rsa.h>
 #include <openssl/dsa.h>
 #include <openssl/err.h>
diff --git a/ssl/ssltest.c b/ssl/ssltest.c
index aadfd89..f0b3c93 100644
--- a/ssl/ssltest.c
+++ b/ssl/ssltest.c
@@ -141,6 +141,7 @@
 #include <openssl/rsa.h>
 #include <openssl/dsa.h>
 #include <openssl/dh.h>
+#include <openssl/bn.h>
 
 #define _XOPEN_SOURCE_EXTENDED	1 /* Or gethostname won't be declared properly
 				     on Compaq platforms (at least with DEC C).