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