123456789101112131415161718192021222324252627282930313233343536373839404142 |
- EAP peer/server library and example program
- Copyright (c) 2007, Jouni Malinen <j@w1.fi>
- This software may be distributed under the terms of the BSD license.
- See the parent directory README for more details.
- 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.
|