]>
Commit | Line | Data |
---|---|---|
6fc6879b JM |
1 | EAP peer/server library and example program |
2 | Copyright (c) 2007, Jouni Malinen <j@w1.fi> | |
3 | ||
4 | This program is free software; you can redistribute it and/or modify | |
5 | it under the terms of the GNU General Public License version 2 as | |
6 | published by the Free Software Foundation. | |
7 | ||
8 | Alternatively, this software may be distributed under the terms of BSD | |
9 | license. | |
10 | ||
11 | ||
12 | The interfaces of the EAP server/peer implementation are based on RFC | |
13 | 4137 (EAP State Machines). This RFC is coordinated with the state | |
14 | machines defined in IEEE 802.1X-2004. hostapd and wpa_supplicant | |
15 | include implementation of the IEEE 802.1X EAPOL state machines and the | |
16 | interface between them and EAP. However, the EAP implementation can be | |
17 | used with other protocols, too, by providing a compatible interface | |
18 | which maps the EAPOL<->EAP variables to another protocol. | |
19 | ||
20 | This directory contains an example showing how EAP peer and server | |
21 | code from wpa_supplicant and hostapd can be used as a library. The | |
22 | example program initializes both an EAP server and an EAP peer | |
23 | entities and then runs through an EAP-PEAP/MSCHAPv2 authentication. | |
24 | ||
25 | eap_example_peer.c shows the initialization and glue code needed to | |
26 | control the EAP peer implementation. eap_example_server.c does the | |
27 | same for EAP server. eap_example.c is an example that ties in both the | |
28 | EAP server and client parts to allow an EAP authentication to be | |
29 | shown. | |
30 | ||
31 | In this example, the EAP messages are passed between the server and | |
32 | the peer are passed by direct function calls within the same process. | |
33 | In practice, server and peer functionalities would likely reside in | |
34 | separate devices and the EAP messages would be transmitted between the | |
35 | devices based on an external protocol. For example, in IEEE 802.11 | |
36 | uses IEEE 802.1X EAPOL state machines to control the transmission of | |
37 | EAP messages and WiMax supports optional PMK EAP authentication | |
38 | mechanism that transmits EAP messages as defined in IEEE 802.16e. | |
39 | ||
40 | ||
41 | The EAP library links in number of helper functions from src/utils and | |
42 | src/crypto directories. Most of these are suitable as-is, but it may | |
43 | be desirable to replace the debug output code in src/utils/wpa_debug.c | |
44 | by dropping this file from the library and re-implementing the | |
45 | functions there in a way that better fits in with the main | |
46 | application. |