Handle des_modes.pod properly.
[openssl.git] / ssl / ssltest.c
index 978516f1b7b9bbdf7d04d31f52c29fac46d02e9a..a304398b9f6930ccecec294df00731d5b0cc7fe1 100644 (file)
  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
  */
 
-#define _XOPEN_SOURCE 600      /* Or gethostname won't be declared properly
+#define _BSD_SOURCE 1          /* Or gethostname won't be declared properly
                                   on Linux and GNU platforms. */
-#define _XOPEN_SOURCE_EXTENDED 1 /* Or gethostname won't be declared properly
-                                  on Compaq platforms (at least with DEC C).
-                               */
 
 #include <assert.h>
 #include <errno.h>
 #include <openssl/evp.h>
 #include <openssl/x509.h>
 #include <openssl/ssl.h>
+#ifndef OPENSSL_NO_ENGINE
 #include <openssl/engine.h>
+#endif
 #include <openssl/err.h>
 #include <openssl/rand.h>
+
+#define _XOPEN_SOURCE_EXTENDED 1 /* Or gethostname won't be declared properly
+                                    on Compaq platforms (at least with DEC C).
+                                    Do not try to put it earlier, or IPv6 includes
+                                    get screwed...
+                                 */
+
 #ifdef OPENSSL_SYS_WINDOWS
 #include <winsock.h>
-#include "../crypto/bio/bss_file.c"
 #else
 #include OPENSSL_UNISTD
 #endif
@@ -824,7 +829,9 @@ end:
 #ifndef OPENSSL_NO_RSA
        free_tmp_rsa();
 #endif
+#ifndef OPENSSL_NO_ENGINE
        ENGINE_cleanup();
+#endif
        CRYPTO_cleanup_all_ex_data();
        ERR_free_strings();
        ERR_remove_state(0);
@@ -1580,9 +1587,21 @@ static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export, int keylength)
        {
        if (rsa_tmp == NULL)
                {
+               rsa_tmp = RSA_new();
+               if(!rsa_tmp)
+                       {
+                       BIO_printf(bio_err, "Memory error...");
+                       goto end;
+                       }
                BIO_printf(bio_err,"Generating temp (%d bit) RSA key...",keylength);
                (void)BIO_flush(bio_err);
-               rsa_tmp=RSA_generate_key(keylength,RSA_F4,NULL,NULL);
+               if(!RSA_generate_key_ex(rsa_tmp,keylength,RSA_F4,NULL))
+                       {
+                       BIO_printf(bio_err, "Error generating key.");
+                       RSA_free(rsa_tmp);
+                       rsa_tmp = NULL;
+                       }
+end:
                BIO_printf(bio_err,"\n");
                (void)BIO_flush(bio_err);
                }