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