* TLS initialization status.
*/
static TLS_APPL_STATE *smtpd_tls_ctx;
-static int wantcert;
+static int require_server_cert;
#endif
ADD_EXCLUDE(cipher_exclusions, var_smtpd_tls_excl_ciph);
if (enforce_tls)
ADD_EXCLUDE(cipher_exclusions, var_smtpd_tls_mand_excl);
- if (wantcert)
+ if (require_server_cert)
ADD_EXCLUDE(cipher_exclusions, "aNULL");
}
#ifdef USE_TLS
TLS_SERVER_INIT_PROPS props;
const char *cert_file;
- int havecert;
- int oknocert;
+ int have_server_cert;
+ int no_server_cert_ok;
+ int ask_client_cert;
/*
* Can't use anonymous ciphers if we want client certificates.
*
* XXX: Ugh! Too many booleans!
*/
- wantcert = (var_smtpd_tls_ask_ccert
- || (enforce_tls && var_smtpd_tls_req_ccert));
+ ask_client_cert = require_server_cert =
+ (var_smtpd_tls_ask_ccert
+ || (enforce_tls && var_smtpd_tls_req_ccert));
if (strcasecmp(var_smtpd_tls_cert_file, "none") == 0) {
- oknocert = 1;
+ no_server_cert_ok = 1;
cert_file = "";
} else {
- oknocert = 0;
+ no_server_cert_ok = 0;
cert_file = var_smtpd_tls_cert_file;
}
- havecert =
+ have_server_cert =
(*cert_file || *var_smtpd_tls_dcert_file || *var_smtpd_tls_eccert_file);
/* Some TLS configuration errors are not show stoppers. */
- if (!havecert && wantcert)
+ if (!have_server_cert && require_server_cert)
msg_warn("Need a server cert to request client certs");
if (!enforce_tls && var_smtpd_tls_req_ccert)
msg_warn("Can't require client certs unless TLS is required");
/* After a show-stopper error, reply with 454 to STARTTLS. */
- if (havecert || (oknocert && !wantcert))
+ if (have_server_cert || (no_server_cert_ok && !require_server_cert))
/*
* Large parameter lists are error-prone, so we emulate a
protocols = enforce_tls ?
var_smtpd_tls_mand_proto :
var_smtpd_tls_proto,
- ask_ccert = wantcert,
+ ask_ccert = ask_client_cert,
fpt_dgst = var_smtpd_tls_fpt_dgst);
else
msg_warn("No server certs available. TLS won't be enabled");
DH *dh_tmp;
if (export && keylength == 512) { /* 40-bit export cipher */
- if (dh_1024 == 0)
- dh_1024 = tls_get_dh(dh512_p, (int) sizeof(dh512_p));
- dh_tmp = dh_1024;
- } else { /* ADH, DHE-RSA or DSA */
if (dh_512 == 0)
- dh_512 = tls_get_dh(dh1024_p, (int) sizeof(dh1024_p));
+ dh_512 = tls_get_dh(dh512_p, (int) sizeof(dh512_p));
dh_tmp = dh_512;
+ } else { /* ADH, DHE-RSA or DSA */
+ if (dh_1024 == 0)
+ dh_1024 = tls_get_dh(dh1024_p, (int) sizeof(dh1024_p));
+ dh_tmp = dh_1024;
}
return (dh_tmp);
}