Home | History | Annotate | Line # | Download | only in wpa_supplicant
eap_register.c revision 1.1.1.1.8.1
      1          1.1  christos /*
      2          1.1  christos  * EAP method registration
      3          1.1  christos  * Copyright (c) 2004-2009, Jouni Malinen <j (at) w1.fi>
      4          1.1  christos  *
      5  1.1.1.1.8.1       snj  * This software may be distributed under the terms of the BSD license.
      6  1.1.1.1.8.1       snj  * See README for more details.
      7          1.1  christos  */
      8          1.1  christos 
      9          1.1  christos #include "includes.h"
     10          1.1  christos 
     11          1.1  christos #include "common.h"
     12          1.1  christos #include "eap_peer/eap_methods.h"
     13          1.1  christos #include "eap_server/eap_methods.h"
     14  1.1.1.1.8.1       snj #include "wpa_supplicant_i.h"
     15          1.1  christos 
     16          1.1  christos 
     17          1.1  christos /**
     18          1.1  christos  * eap_register_methods - Register statically linked EAP methods
     19          1.1  christos  * Returns: 0 on success, -1 or -2 on failure
     20          1.1  christos  *
     21          1.1  christos  * This function is called at program initialization to register all EAP
     22          1.1  christos  * methods that were linked in statically.
     23          1.1  christos  */
     24          1.1  christos int eap_register_methods(void)
     25          1.1  christos {
     26          1.1  christos 	int ret = 0;
     27          1.1  christos 
     28          1.1  christos #ifdef EAP_MD5
     29          1.1  christos 	if (ret == 0)
     30          1.1  christos 		ret = eap_peer_md5_register();
     31          1.1  christos #endif /* EAP_MD5 */
     32          1.1  christos 
     33          1.1  christos #ifdef EAP_TLS
     34          1.1  christos 	if (ret == 0)
     35          1.1  christos 		ret = eap_peer_tls_register();
     36          1.1  christos #endif /* EAP_TLS */
     37          1.1  christos 
     38  1.1.1.1.8.1       snj #ifdef EAP_UNAUTH_TLS
     39  1.1.1.1.8.1       snj 	if (ret == 0)
     40  1.1.1.1.8.1       snj 		ret = eap_peer_unauth_tls_register();
     41  1.1.1.1.8.1       snj #endif /* EAP_UNAUTH_TLS */
     42  1.1.1.1.8.1       snj 
     43  1.1.1.1.8.1       snj #ifdef EAP_TLS
     44  1.1.1.1.8.1       snj #ifdef CONFIG_HS20
     45  1.1.1.1.8.1       snj 	if (ret == 0)
     46  1.1.1.1.8.1       snj 		ret = eap_peer_wfa_unauth_tls_register();
     47  1.1.1.1.8.1       snj #endif /* CONFIG_HS20 */
     48  1.1.1.1.8.1       snj #endif /* EAP_TLS */
     49  1.1.1.1.8.1       snj 
     50          1.1  christos #ifdef EAP_MSCHAPv2
     51          1.1  christos 	if (ret == 0)
     52          1.1  christos 		ret = eap_peer_mschapv2_register();
     53          1.1  christos #endif /* EAP_MSCHAPv2 */
     54          1.1  christos 
     55          1.1  christos #ifdef EAP_PEAP
     56          1.1  christos 	if (ret == 0)
     57          1.1  christos 		ret = eap_peer_peap_register();
     58          1.1  christos #endif /* EAP_PEAP */
     59          1.1  christos 
     60          1.1  christos #ifdef EAP_TTLS
     61          1.1  christos 	if (ret == 0)
     62          1.1  christos 		ret = eap_peer_ttls_register();
     63          1.1  christos #endif /* EAP_TTLS */
     64          1.1  christos 
     65          1.1  christos #ifdef EAP_GTC
     66          1.1  christos 	if (ret == 0)
     67          1.1  christos 		ret = eap_peer_gtc_register();
     68          1.1  christos #endif /* EAP_GTC */
     69          1.1  christos 
     70          1.1  christos #ifdef EAP_OTP
     71          1.1  christos 	if (ret == 0)
     72          1.1  christos 		ret = eap_peer_otp_register();
     73          1.1  christos #endif /* EAP_OTP */
     74          1.1  christos 
     75          1.1  christos #ifdef EAP_SIM
     76          1.1  christos 	if (ret == 0)
     77          1.1  christos 		ret = eap_peer_sim_register();
     78          1.1  christos #endif /* EAP_SIM */
     79          1.1  christos 
     80          1.1  christos #ifdef EAP_LEAP
     81          1.1  christos 	if (ret == 0)
     82          1.1  christos 		ret = eap_peer_leap_register();
     83          1.1  christos #endif /* EAP_LEAP */
     84          1.1  christos 
     85          1.1  christos #ifdef EAP_PSK
     86          1.1  christos 	if (ret == 0)
     87          1.1  christos 		ret = eap_peer_psk_register();
     88          1.1  christos #endif /* EAP_PSK */
     89          1.1  christos 
     90          1.1  christos #ifdef EAP_AKA
     91          1.1  christos 	if (ret == 0)
     92          1.1  christos 		ret = eap_peer_aka_register();
     93          1.1  christos #endif /* EAP_AKA */
     94          1.1  christos 
     95          1.1  christos #ifdef EAP_AKA_PRIME
     96          1.1  christos 	if (ret == 0)
     97          1.1  christos 		ret = eap_peer_aka_prime_register();
     98          1.1  christos #endif /* EAP_AKA_PRIME */
     99          1.1  christos 
    100          1.1  christos #ifdef EAP_FAST
    101          1.1  christos 	if (ret == 0)
    102          1.1  christos 		ret = eap_peer_fast_register();
    103          1.1  christos #endif /* EAP_FAST */
    104          1.1  christos 
    105          1.1  christos #ifdef EAP_PAX
    106          1.1  christos 	if (ret == 0)
    107          1.1  christos 		ret = eap_peer_pax_register();
    108          1.1  christos #endif /* EAP_PAX */
    109          1.1  christos 
    110          1.1  christos #ifdef EAP_SAKE
    111          1.1  christos 	if (ret == 0)
    112          1.1  christos 		ret = eap_peer_sake_register();
    113          1.1  christos #endif /* EAP_SAKE */
    114          1.1  christos 
    115          1.1  christos #ifdef EAP_GPSK
    116          1.1  christos 	if (ret == 0)
    117          1.1  christos 		ret = eap_peer_gpsk_register();
    118          1.1  christos #endif /* EAP_GPSK */
    119          1.1  christos 
    120          1.1  christos #ifdef EAP_WSC
    121          1.1  christos 	if (ret == 0)
    122          1.1  christos 		ret = eap_peer_wsc_register();
    123          1.1  christos #endif /* EAP_WSC */
    124          1.1  christos 
    125          1.1  christos #ifdef EAP_IKEV2
    126          1.1  christos 	if (ret == 0)
    127          1.1  christos 		ret = eap_peer_ikev2_register();
    128          1.1  christos #endif /* EAP_IKEV2 */
    129          1.1  christos 
    130          1.1  christos #ifdef EAP_VENDOR_TEST
    131          1.1  christos 	if (ret == 0)
    132          1.1  christos 		ret = eap_peer_vendor_test_register();
    133          1.1  christos #endif /* EAP_VENDOR_TEST */
    134          1.1  christos 
    135          1.1  christos #ifdef EAP_TNC
    136          1.1  christos 	if (ret == 0)
    137          1.1  christos 		ret = eap_peer_tnc_register();
    138          1.1  christos #endif /* EAP_TNC */
    139          1.1  christos 
    140  1.1.1.1.8.1       snj #ifdef EAP_PWD
    141  1.1.1.1.8.1       snj 	if (ret == 0)
    142  1.1.1.1.8.1       snj 		ret = eap_peer_pwd_register();
    143  1.1.1.1.8.1       snj #endif /* EAP_PWD */
    144  1.1.1.1.8.1       snj 
    145  1.1.1.1.8.1       snj #ifdef EAP_EKE
    146  1.1.1.1.8.1       snj 	if (ret == 0)
    147  1.1.1.1.8.1       snj 		ret = eap_peer_eke_register();
    148  1.1.1.1.8.1       snj #endif /* EAP_EKE */
    149          1.1  christos 
    150          1.1  christos #ifdef EAP_SERVER_IDENTITY
    151          1.1  christos 	if (ret == 0)
    152          1.1  christos 		ret = eap_server_identity_register();
    153          1.1  christos #endif /* EAP_SERVER_IDENTITY */
    154          1.1  christos 
    155          1.1  christos #ifdef EAP_SERVER_MD5
    156          1.1  christos 	if (ret == 0)
    157          1.1  christos 		ret = eap_server_md5_register();
    158          1.1  christos #endif /* EAP_SERVER_MD5 */
    159          1.1  christos 
    160          1.1  christos #ifdef EAP_SERVER_TLS
    161          1.1  christos 	if (ret == 0)
    162          1.1  christos 		ret = eap_server_tls_register();
    163          1.1  christos #endif /* EAP_SERVER_TLS */
    164          1.1  christos 
    165  1.1.1.1.8.1       snj #ifdef EAP_SERVER_UNAUTH_TLS
    166  1.1.1.1.8.1       snj 	if (ret == 0)
    167  1.1.1.1.8.1       snj 		ret = eap_server_unauth_tls_register();
    168  1.1.1.1.8.1       snj #endif /* EAP_SERVER_UNAUTH_TLS */
    169  1.1.1.1.8.1       snj 
    170          1.1  christos #ifdef EAP_SERVER_MSCHAPV2
    171          1.1  christos 	if (ret == 0)
    172          1.1  christos 		ret = eap_server_mschapv2_register();
    173          1.1  christos #endif /* EAP_SERVER_MSCHAPV2 */
    174          1.1  christos 
    175          1.1  christos #ifdef EAP_SERVER_PEAP
    176          1.1  christos 	if (ret == 0)
    177          1.1  christos 		ret = eap_server_peap_register();
    178          1.1  christos #endif /* EAP_SERVER_PEAP */
    179          1.1  christos 
    180          1.1  christos #ifdef EAP_SERVER_TLV
    181          1.1  christos 	if (ret == 0)
    182          1.1  christos 		ret = eap_server_tlv_register();
    183          1.1  christos #endif /* EAP_SERVER_TLV */
    184          1.1  christos 
    185          1.1  christos #ifdef EAP_SERVER_GTC
    186          1.1  christos 	if (ret == 0)
    187          1.1  christos 		ret = eap_server_gtc_register();
    188          1.1  christos #endif /* EAP_SERVER_GTC */
    189          1.1  christos 
    190          1.1  christos #ifdef EAP_SERVER_TTLS
    191          1.1  christos 	if (ret == 0)
    192          1.1  christos 		ret = eap_server_ttls_register();
    193          1.1  christos #endif /* EAP_SERVER_TTLS */
    194          1.1  christos 
    195          1.1  christos #ifdef EAP_SERVER_SIM
    196          1.1  christos 	if (ret == 0)
    197          1.1  christos 		ret = eap_server_sim_register();
    198          1.1  christos #endif /* EAP_SERVER_SIM */
    199          1.1  christos 
    200          1.1  christos #ifdef EAP_SERVER_AKA
    201          1.1  christos 	if (ret == 0)
    202          1.1  christos 		ret = eap_server_aka_register();
    203          1.1  christos #endif /* EAP_SERVER_AKA */
    204          1.1  christos 
    205          1.1  christos #ifdef EAP_SERVER_AKA_PRIME
    206          1.1  christos 	if (ret == 0)
    207          1.1  christos 		ret = eap_server_aka_prime_register();
    208          1.1  christos #endif /* EAP_SERVER_AKA_PRIME */
    209          1.1  christos 
    210          1.1  christos #ifdef EAP_SERVER_PAX
    211          1.1  christos 	if (ret == 0)
    212          1.1  christos 		ret = eap_server_pax_register();
    213          1.1  christos #endif /* EAP_SERVER_PAX */
    214          1.1  christos 
    215          1.1  christos #ifdef EAP_SERVER_PSK
    216          1.1  christos 	if (ret == 0)
    217          1.1  christos 		ret = eap_server_psk_register();
    218          1.1  christos #endif /* EAP_SERVER_PSK */
    219          1.1  christos 
    220          1.1  christos #ifdef EAP_SERVER_SAKE
    221          1.1  christos 	if (ret == 0)
    222          1.1  christos 		ret = eap_server_sake_register();
    223          1.1  christos #endif /* EAP_SERVER_SAKE */
    224          1.1  christos 
    225          1.1  christos #ifdef EAP_SERVER_GPSK
    226          1.1  christos 	if (ret == 0)
    227          1.1  christos 		ret = eap_server_gpsk_register();
    228          1.1  christos #endif /* EAP_SERVER_GPSK */
    229          1.1  christos 
    230          1.1  christos #ifdef EAP_SERVER_VENDOR_TEST
    231          1.1  christos 	if (ret == 0)
    232          1.1  christos 		ret = eap_server_vendor_test_register();
    233          1.1  christos #endif /* EAP_SERVER_VENDOR_TEST */
    234          1.1  christos 
    235          1.1  christos #ifdef EAP_SERVER_FAST
    236          1.1  christos 	if (ret == 0)
    237          1.1  christos 		ret = eap_server_fast_register();
    238          1.1  christos #endif /* EAP_SERVER_FAST */
    239          1.1  christos 
    240          1.1  christos #ifdef EAP_SERVER_WSC
    241          1.1  christos 	if (ret == 0)
    242          1.1  christos 		ret = eap_server_wsc_register();
    243          1.1  christos #endif /* EAP_SERVER_WSC */
    244          1.1  christos 
    245          1.1  christos #ifdef EAP_SERVER_IKEV2
    246          1.1  christos 	if (ret == 0)
    247          1.1  christos 		ret = eap_server_ikev2_register();
    248          1.1  christos #endif /* EAP_SERVER_IKEV2 */
    249          1.1  christos 
    250          1.1  christos #ifdef EAP_SERVER_TNC
    251          1.1  christos 	if (ret == 0)
    252          1.1  christos 		ret = eap_server_tnc_register();
    253          1.1  christos #endif /* EAP_SERVER_TNC */
    254          1.1  christos 
    255  1.1.1.1.8.1       snj #ifdef EAP_SERVER_PWD
    256  1.1.1.1.8.1       snj 	if (ret == 0)
    257  1.1.1.1.8.1       snj 		ret = eap_server_pwd_register();
    258  1.1.1.1.8.1       snj #endif /* EAP_SERVER_PWD */
    259  1.1.1.1.8.1       snj 
    260          1.1  christos 	return ret;
    261          1.1  christos }
    262