EAP-TEAP server and peer implementation (RFC 7170)
This adds support for a new EAP method: EAP-TEAP (Tunnel Extensible Authentication Protocol). This should be considered experimental since RFC 7170 has number of conflicting statements and missing details to allow unambiguous interpretation. As such, there may be interoperability issues with other implementations and this version should not be deployed for production purposes until those unclear areas are resolved. This does not yet support use of NewSessionTicket message to deliver a new PAC (either in the server or peer implementation). In other words, only the in-tunnel distribution of PAC-Opaque is supported for now. Use of the NewSessionTicket mechanism would require TLS library support to allow arbitrary data to be specified as the contents of the message. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
7c6f1c5e4a
commit
0ed57c5ea8
36 changed files with 6047 additions and 14 deletions
|
@ -159,7 +159,8 @@ static int eap_tls_params_from_conf(struct eap_sm *sm,
|
|||
struct eap_peer_config *config, int phase2)
|
||||
{
|
||||
os_memset(params, 0, sizeof(*params));
|
||||
if (sm->workaround && data->eap_type != EAP_TYPE_FAST) {
|
||||
if (sm->workaround && data->eap_type != EAP_TYPE_FAST &&
|
||||
data->eap_type != EAP_TYPE_TEAP) {
|
||||
/*
|
||||
* Some deployed authentication servers seem to be unable to
|
||||
* handle the TLS Session Ticket extension (they are supposed
|
||||
|
@ -171,7 +172,15 @@ static int eap_tls_params_from_conf(struct eap_sm *sm,
|
|||
*/
|
||||
params->flags |= TLS_CONN_DISABLE_SESSION_TICKET;
|
||||
}
|
||||
if (data->eap_type == EAP_TYPE_TEAP) {
|
||||
/* RFC 7170 requires TLS v1.2 or newer to be used with TEAP */
|
||||
params->flags |= TLS_CONN_DISABLE_TLSv1_0 |
|
||||
TLS_CONN_DISABLE_TLSv1_1;
|
||||
if (config->teap_anon_dh)
|
||||
params->flags |= TLS_CONN_TEAP_ANON_DH;
|
||||
}
|
||||
if (data->eap_type == EAP_TYPE_FAST ||
|
||||
data->eap_type == EAP_TYPE_TEAP ||
|
||||
data->eap_type == EAP_TYPE_TTLS ||
|
||||
data->eap_type == EAP_TYPE_PEAP) {
|
||||
/* The current EAP peer implementation is not yet ready for the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue