@openssl_version_check_config@
#
- # openssl_fips_mode:: Enable OpenSSL FIPS mode.
+ # openssl_fips_mode:: Disable OpenSSL FIPS mode.
#
- # This disables non-FIPS compliant digests and algorithms
+ # Setting this to "yes" means "use whatever FIPS mode is
+ # available on the system".
+ #
+ # Setting this to "no" means "disable FIPS mode just for
+ # FreeRADIUS".
+ #
+ # FreeRADIUS MUST disable FIPS mode in order to use MD4 and
+ # MD5 from the OpenSSL APIs.
+ #
+ # This setting should only be used then the system as a whole
+ # enables FIPS, and you still want to use RADIUS.
#
# openssl_fips_mode = no
}
*/
int fr_openssl_fips_mode(bool enabled)
{
- if (!EVP_set_default_properties(NULL, enabled ? "fips=yes" : "fips=no")) {
- fr_tls_log(NULL, "Failed %s OpenSSL FIPS mode", enabled ? "enabling" : "disabling");
+ if (enabled) return 0; /* don't change the FIPS mode */
+
+ if (!EVP_set_default_properties(NULL, "-fips")) {
+ fr_tls_log(NULL, "Failed disabling OpenSSL FIPS mode");
return -1;
}