make no-dh work
authorDr. Stephen Henson <steve@openssl.org>
Sat, 19 Sep 2015 21:03:15 +0000 (22:03 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Sun, 20 Sep 2015 11:50:55 +0000 (12:50 +0100)
Reviewed-by: Richard Levitte <levitte@openssl.org>
apps/s_cb.c
apps/s_server.c
crypto/bn/bn_dh.c
crypto/evp/pmeth_lib.c
test/recipes/80-test_cms.t

index 0c1dfc57d77b0749af8d416d93d8dfb8a11cef73..f4559fa70f0d766fe9cc47203d3fb0a3a7647e8e 100644 (file)
@@ -1381,13 +1381,14 @@ static int security_callback_debug(SSL *s, SSL_CTX *ctx,
         }
         break;
 #endif
-
+#ifndef OPENSSL_NO_DH
     case SSL_SECOP_OTHER_DH:
         {
             DH *dh = other;
             BIO_printf(sdb->out, "%d", BN_num_bits(dh->p));
             break;
         }
+#endif
     case SSL_SECOP_OTHER_CERT:
         {
             if (cert_md) {
index 9e4a18636d1a582d9895240e27d912debd167cb1..8e15f5b63dd09fc5f5dd7d162b0303e6d5131095 100644 (file)
@@ -973,7 +973,10 @@ int s_server_main(int argc, char *argv[])
     X509 *s_cert = NULL, *s_dcert = NULL;
     X509_VERIFY_PARAM *vpm = NULL;
     char *CApath = NULL, *CAfile = NULL, *chCApath = NULL, *chCAfile = NULL;
-    char *dhfile = NULL, *dpassarg = NULL, *dpass = NULL, *inrand = NULL;
+#ifndef OPENSSL_NO_DH
+    char *dhfile = NULL;
+#endif
+    char *dpassarg = NULL, *dpass = NULL, *inrand = NULL;
     char *passarg = NULL, *pass = NULL, *vfyCApath = NULL, *vfyCAfile = NULL;
     char *crl_file = NULL, *prog;
 #ifndef OPENSSL_NO_PSK
@@ -986,7 +989,10 @@ int s_server_main(int argc, char *argv[])
     int (*server_cb) (char *hostname, int s, int stype,
                       unsigned char *context);
     int vpmtouched = 0, build_chain = 0, no_cache = 0, ext_cache = 0;
-    int no_tmp_rsa = 0, no_dhe = 0, no_ecdhe = 0, nocert = 0, ret = 1;
+#ifndef OPENSSL_NO_DH
+    int no_dhe = 0;
+#endif
+    int no_tmp_rsa = 0, no_ecdhe = 0, nocert = 0, ret = 1;
     int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM;
     int s_dcert_format = FORMAT_PEM, s_dkey_format = FORMAT_PEM;
     int rev = 0, naccept = -1, sdebug = 0, socket_type = SOCK_STREAM;
@@ -1119,7 +1125,9 @@ int s_server_main(int argc, char *argv[])
             s_chain_file = opt_arg();
             break;
         case OPT_DHPARAM:
+#ifndef OPENSSL_NO_DH
             dhfile = opt_arg();
+#endif
             break;
         case OPT_DCERTFORM:
             if (!opt_format(opt_arg(), OPT_FMT_PEMDER, &s_dcert_format))
@@ -1272,7 +1280,9 @@ int s_server_main(int argc, char *argv[])
             no_tmp_rsa = 1;
             break;
         case OPT_NO_DHE:
+#ifndef OPENSSL_NO_DH
             no_dhe = 1;
+#endif
             break;
         case OPT_NO_ECDHE:
             no_ecdhe = 1;
index 3a7282f740a06f88ff57a51ec0d7f38b2adc978a..34f9fb0af8209a9a704bff8a28a4c507a6a89a3f 100644 (file)
  *
  */
 
-#include <openssl/dh.h>
 #include "bn_lcl.h"
 #include "e_os.h"
 
 #ifndef OPENSSL_NO_DH
+#include <openssl/dh.h>
 /* DH parameters from RFC5114 */
 
 # if BN_BITS2 == 64
index 72a8c1a453c1bd72e9f56abdd8495c73d6d0e447..ae730e5354cd5739a082dffc539bc834ab37373c 100644 (file)
@@ -61,7 +61,6 @@
 #include <stdlib.h>
 #include "internal/cryptlib.h"
 #include <openssl/cmac.h>
-#include <openssl/dh.h>
 #include <openssl/dsa.h>
 #include <openssl/evp.h>
 #include <openssl/hmac.h>
index 079a4b2e55a2be03f23c88e0a482af012d9b92b5..5445311e6690f9f2cbcfeffce27c7d6137121a36 100644 (file)
@@ -13,7 +13,7 @@ setup("test_cms");
 
 my $smdir    = top_dir("test", "smime-certs");
 my $smcont   = top_file("test", "smcont.txt");
-my ($no_ec, $no_ec2m, $no_zlib) = disabled qw/ec ec2m zlib/;
+my ($no_dh, $no_ec, $no_ec2m, $no_zlib) = disabled qw/dh ec ec2m zlib/;
 
 plan tests => 4;
 
@@ -470,5 +470,7 @@ sub check_availability {
        if ($no_ec && $tnam =~ /ECDH/);
     return "$tnam: skipped, EC2M disabled\n"
        if ($no_ec2m && $tnam =~ /K-283/);
+    return "$tnam: skipped, DH disabled\n"
+       if ($no_dh && $tnam =~ /X9\.42/);
     return "";
 }