# "DEFAULT" as "DEFAULT" contains "!aNULL" so instead it is
# recommended "ALL:!EXPORT:!eNULL:!SSLv2" is used
#
-# tls = tls-common
+ tls = tls-common
+
+ #
+ # If 'cipher_list' is set here, it will over-ride the
+ # 'cipher_list' configuration from the 'tls-common'
+ # configuration. The EAP-FAST module has it's own
+ # over-ride for 'cipher_list' because the
+ # specifications mandata a different set of ciphers
+ # than are used by the other EAP methods.
+ #
+ cipher_list = "ALL:!EXPORT:!eNULL:!SSLv2"
+
# PAC lifetime in seconds (default: seven days)
#
-# pac_lifetime = 604800
+ pac_lifetime = 604800
# Authority ID of the server
#
int default_provisioning_method;
char const *virtual_server; //!< Virtual server to use for processing
+ char const *cipher_list; //!< cipher list specific to EAP-FAST
//!< inner EAP method.
bool req_client_cert; //!< Whether we require a client cert
//!< in the outer tunnel.
{ FR_CONF_OFFSET("default_provisioning_eap_type", FR_TYPE_STRING, rlm_eap_fast_t, default_provisioning_method_name), .dflt = "mschapv2" },
{ FR_CONF_OFFSET("virtual_server", FR_TYPE_STRING | FR_TYPE_REQUIRED | FR_TYPE_NOT_EMPTY, rlm_eap_fast_t, virtual_server) },
+ { FR_CONF_OFFSET("cipher_list", FR_TYPE_STRING, rlm_eap_fast_t, cipher_list) },
{ FR_CONF_OFFSET("require_client_cert", FR_TYPE_BOOL, rlm_eap_fast_t, req_client_cert), .dflt = "no" },
tls_session = eap_tls_session->tls_session;
+ if (inst->cipher_list) {
+ RDEBUG("Over-riding main cipher list with '%s'", inst->cipher_list);
+
+ if (!SSL_set_cipher_list(tls_session->ssl, inst->cipher_list)) {
+ REDEBUG("Failed over-riding cipher list to '%s'. EAP-FAST will likely not work",
+ inst->cipher_list);
+ }
+ }
+
/*
* Push TLV of authority_identity into tls_record
* call eap_tls_compose() with args