2008-02-28 02:34:43 +01:00
|
|
|
EAP peer/server library and example program
|
|
|
|
Copyright (c) 2007, Jouni Malinen <j@w1.fi>
|
|
|
|
|
2012-02-11 15:46:35 +01:00
|
|
|
This software may be distributed under the terms of the BSD license.
|
|
|
|
See the parent directory README for more details.
|
2008-02-28 02:34:43 +01:00
|
|
|
|
|
|
|
|
|
|
|
The interfaces of the EAP server/peer implementation are based on RFC
|
|
|
|
4137 (EAP State Machines). This RFC is coordinated with the state
|
|
|
|
machines defined in IEEE 802.1X-2004. hostapd and wpa_supplicant
|
|
|
|
include implementation of the IEEE 802.1X EAPOL state machines and the
|
|
|
|
interface between them and EAP. However, the EAP implementation can be
|
|
|
|
used with other protocols, too, by providing a compatible interface
|
|
|
|
which maps the EAPOL<->EAP variables to another protocol.
|
|
|
|
|
|
|
|
This directory contains an example showing how EAP peer and server
|
|
|
|
code from wpa_supplicant and hostapd can be used as a library. The
|
|
|
|
example program initializes both an EAP server and an EAP peer
|
|
|
|
entities and then runs through an EAP-PEAP/MSCHAPv2 authentication.
|
|
|
|
|
|
|
|
eap_example_peer.c shows the initialization and glue code needed to
|
|
|
|
control the EAP peer implementation. eap_example_server.c does the
|
|
|
|
same for EAP server. eap_example.c is an example that ties in both the
|
|
|
|
EAP server and client parts to allow an EAP authentication to be
|
|
|
|
shown.
|
|
|
|
|
|
|
|
In this example, the EAP messages are passed between the server and
|
|
|
|
the peer are passed by direct function calls within the same process.
|
|
|
|
In practice, server and peer functionalities would likely reside in
|
|
|
|
separate devices and the EAP messages would be transmitted between the
|
|
|
|
devices based on an external protocol. For example, in IEEE 802.11
|
|
|
|
uses IEEE 802.1X EAPOL state machines to control the transmission of
|
|
|
|
EAP messages and WiMax supports optional PMK EAP authentication
|
|
|
|
mechanism that transmits EAP messages as defined in IEEE 802.16e.
|
|
|
|
|
|
|
|
|
|
|
|
The EAP library links in number of helper functions from src/utils and
|
|
|
|
src/crypto directories. Most of these are suitable as-is, but it may
|
|
|
|
be desirable to replace the debug output code in src/utils/wpa_debug.c
|
|
|
|
by dropping this file from the library and re-implementing the
|
|
|
|
functions there in a way that better fits in with the main
|
|
|
|
application.
|