MODSSL_TMP_KEYS_FREE(mc, DH);
}
-static void ssl_tmp_key_init_rsa(server_rec *s,
- int bits, int idx)
+static int ssl_tmp_key_init_rsa(server_rec *s,
+ int bits, int idx)
{
SSLModConfigRec *mc = myModConfig(s);
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
"Init: Failed to generate temporary "
"%d bit RSA private key", bits);
- ssl_die();
+ return !OK;
}
+ return OK;
}
-static void ssl_tmp_key_init_dh(server_rec *s,
- int bits, int idx)
+static int ssl_tmp_key_init_dh(server_rec *s,
+ int bits, int idx)
{
SSLModConfigRec *mc = myModConfig(s);
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
"Init: Failed to generate temporary "
"%d bit DH parameters", bits);
- ssl_die();
+ return !OK;
}
+
+ return OK;
}
#define MODSSL_TMP_KEY_INIT_RSA(s, bits) \
#define MODSSL_TMP_KEY_INIT_DH(s, bits) \
ssl_tmp_key_init_dh(s, bits, SSL_TMP_KEY_DH_##bits)
-static void ssl_tmp_keys_init(server_rec *s)
+static int ssl_tmp_keys_init(server_rec *s)
{
ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
"Init: Generating temporary RSA private keys (512/1024 bits)");
- MODSSL_TMP_KEY_INIT_RSA(s, 512);
- MODSSL_TMP_KEY_INIT_RSA(s, 1024);
+ if (MODSSL_TMP_KEY_INIT_RSA(s, 512) ||
+ MODSSL_TMP_KEY_INIT_RSA(s, 1024)) {
+ return !OK;
+ }
ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
"Init: Generating temporary DH parameters (512/1024 bits)");
- MODSSL_TMP_KEY_INIT_DH(s, 512);
- MODSSL_TMP_KEY_INIT_DH(s, 1024);
+ if (MODSSL_TMP_KEY_INIT_DH(s, 512) ||
+ MODSSL_TMP_KEY_INIT_DH(s, 1024)) {
+ return !OK;
+ }
+
+ return OK;
}
/*
*/
ssl_pphrase_Handle(base_server, ptemp);
- ssl_tmp_keys_init(base_server);
+ if (ssl_tmp_keys_init(base_server)) {
+ return !OK;
+ }
/*
* SSL external crypto device ("engine") support