xref: /netbsd-src/external/bsd/wpa/dist/hostapd/eap_register.c (revision 3d6c0713cbbf51a549dcd172f2c1ea93f7781249)
18dbcf02cSchristos /*
28dbcf02cSchristos  * EAP method registration
38dbcf02cSchristos  * Copyright (c) 2004-2009, Jouni Malinen <j@w1.fi>
48dbcf02cSchristos  *
5e604d861Schristos  * This software may be distributed under the terms of the BSD license.
6e604d861Schristos  * See README for more details.
78dbcf02cSchristos  */
88dbcf02cSchristos 
98dbcf02cSchristos #include "includes.h"
108dbcf02cSchristos 
118dbcf02cSchristos #include "common.h"
128dbcf02cSchristos #include "eap_server/eap_methods.h"
138dbcf02cSchristos #include "eap_register.h"
148dbcf02cSchristos 
158dbcf02cSchristos 
168dbcf02cSchristos /**
178dbcf02cSchristos  * eap_server_register_methods - Register statically linked EAP server methods
188dbcf02cSchristos  * Returns: 0 on success, -1 or -2 on failure
198dbcf02cSchristos  *
208dbcf02cSchristos  * This function is called at program initialization to register all EAP
218dbcf02cSchristos  * methods that were linked in statically.
228dbcf02cSchristos  */
eap_server_register_methods(void)238dbcf02cSchristos int eap_server_register_methods(void)
248dbcf02cSchristos {
258dbcf02cSchristos 	int ret = 0;
268dbcf02cSchristos 
278dbcf02cSchristos #ifdef EAP_SERVER_IDENTITY
288dbcf02cSchristos 	if (ret == 0)
298dbcf02cSchristos 		ret = eap_server_identity_register();
308dbcf02cSchristos #endif /* EAP_SERVER_IDENTITY */
318dbcf02cSchristos 
328dbcf02cSchristos #ifdef EAP_SERVER_MD5
338dbcf02cSchristos 	if (ret == 0)
348dbcf02cSchristos 		ret = eap_server_md5_register();
358dbcf02cSchristos #endif /* EAP_SERVER_MD5 */
368dbcf02cSchristos 
378dbcf02cSchristos #ifdef EAP_SERVER_TLS
388dbcf02cSchristos 	if (ret == 0)
398dbcf02cSchristos 		ret = eap_server_tls_register();
408dbcf02cSchristos #endif /* EAP_SERVER_TLS */
418dbcf02cSchristos 
42e604d861Schristos #ifdef EAP_SERVER_UNAUTH_TLS
43e604d861Schristos 	if (ret == 0)
44e604d861Schristos 		ret = eap_server_unauth_tls_register();
45e604d861Schristos #endif /* EAP_SERVER_TLS */
46e604d861Schristos 
473c260e60Schristos #ifdef EAP_SERVER_TLS
483c260e60Schristos #ifdef CONFIG_HS20
493c260e60Schristos 	if (ret == 0)
503c260e60Schristos 		ret = eap_server_wfa_unauth_tls_register();
513c260e60Schristos #endif /* CONFIG_HS20 */
523c260e60Schristos #endif /* EAP_SERVER_TLS */
533c260e60Schristos 
548dbcf02cSchristos #ifdef EAP_SERVER_MSCHAPV2
558dbcf02cSchristos 	if (ret == 0)
568dbcf02cSchristos 		ret = eap_server_mschapv2_register();
578dbcf02cSchristos #endif /* EAP_SERVER_MSCHAPV2 */
588dbcf02cSchristos 
598dbcf02cSchristos #ifdef EAP_SERVER_PEAP
608dbcf02cSchristos 	if (ret == 0)
618dbcf02cSchristos 		ret = eap_server_peap_register();
628dbcf02cSchristos #endif /* EAP_SERVER_PEAP */
638dbcf02cSchristos 
648dbcf02cSchristos #ifdef EAP_SERVER_TLV
658dbcf02cSchristos 	if (ret == 0)
668dbcf02cSchristos 		ret = eap_server_tlv_register();
678dbcf02cSchristos #endif /* EAP_SERVER_TLV */
688dbcf02cSchristos 
698dbcf02cSchristos #ifdef EAP_SERVER_GTC
708dbcf02cSchristos 	if (ret == 0)
718dbcf02cSchristos 		ret = eap_server_gtc_register();
728dbcf02cSchristos #endif /* EAP_SERVER_GTC */
738dbcf02cSchristos 
748dbcf02cSchristos #ifdef EAP_SERVER_TTLS
758dbcf02cSchristos 	if (ret == 0)
768dbcf02cSchristos 		ret = eap_server_ttls_register();
778dbcf02cSchristos #endif /* EAP_SERVER_TTLS */
788dbcf02cSchristos 
798dbcf02cSchristos #ifdef EAP_SERVER_SIM
808dbcf02cSchristos 	if (ret == 0)
818dbcf02cSchristos 		ret = eap_server_sim_register();
828dbcf02cSchristos #endif /* EAP_SERVER_SIM */
838dbcf02cSchristos 
848dbcf02cSchristos #ifdef EAP_SERVER_AKA
858dbcf02cSchristos 	if (ret == 0)
868dbcf02cSchristos 		ret = eap_server_aka_register();
878dbcf02cSchristos #endif /* EAP_SERVER_AKA */
888dbcf02cSchristos 
898dbcf02cSchristos #ifdef EAP_SERVER_AKA_PRIME
908dbcf02cSchristos 	if (ret == 0)
918dbcf02cSchristos 		ret = eap_server_aka_prime_register();
928dbcf02cSchristos #endif /* EAP_SERVER_AKA_PRIME */
938dbcf02cSchristos 
948dbcf02cSchristos #ifdef EAP_SERVER_PAX
958dbcf02cSchristos 	if (ret == 0)
968dbcf02cSchristos 		ret = eap_server_pax_register();
978dbcf02cSchristos #endif /* EAP_SERVER_PAX */
988dbcf02cSchristos 
998dbcf02cSchristos #ifdef EAP_SERVER_PSK
1008dbcf02cSchristos 	if (ret == 0)
1018dbcf02cSchristos 		ret = eap_server_psk_register();
1028dbcf02cSchristos #endif /* EAP_SERVER_PSK */
1038dbcf02cSchristos 
1048dbcf02cSchristos #ifdef EAP_SERVER_SAKE
1058dbcf02cSchristos 	if (ret == 0)
1068dbcf02cSchristos 		ret = eap_server_sake_register();
1078dbcf02cSchristos #endif /* EAP_SERVER_SAKE */
1088dbcf02cSchristos 
1098dbcf02cSchristos #ifdef EAP_SERVER_GPSK
1108dbcf02cSchristos 	if (ret == 0)
1118dbcf02cSchristos 		ret = eap_server_gpsk_register();
1128dbcf02cSchristos #endif /* EAP_SERVER_GPSK */
1138dbcf02cSchristos 
1148dbcf02cSchristos #ifdef EAP_SERVER_VENDOR_TEST
1158dbcf02cSchristos 	if (ret == 0)
1168dbcf02cSchristos 		ret = eap_server_vendor_test_register();
1178dbcf02cSchristos #endif /* EAP_SERVER_VENDOR_TEST */
1188dbcf02cSchristos 
1198dbcf02cSchristos #ifdef EAP_SERVER_FAST
1208dbcf02cSchristos 	if (ret == 0)
1218dbcf02cSchristos 		ret = eap_server_fast_register();
1228dbcf02cSchristos #endif /* EAP_SERVER_FAST */
1238dbcf02cSchristos 
124*3d6c0713Schristos #ifdef EAP_SERVER_TEAP
125*3d6c0713Schristos 	if (ret == 0)
126*3d6c0713Schristos 		ret = eap_server_teap_register();
127*3d6c0713Schristos #endif /* EAP_SERVER_TEAP */
128*3d6c0713Schristos 
1298dbcf02cSchristos #ifdef EAP_SERVER_WSC
1308dbcf02cSchristos 	if (ret == 0)
1318dbcf02cSchristos 		ret = eap_server_wsc_register();
1328dbcf02cSchristos #endif /* EAP_SERVER_WSC */
1338dbcf02cSchristos 
1348dbcf02cSchristos #ifdef EAP_SERVER_IKEV2
1358dbcf02cSchristos 	if (ret == 0)
1368dbcf02cSchristos 		ret = eap_server_ikev2_register();
1378dbcf02cSchristos #endif /* EAP_SERVER_IKEV2 */
1388dbcf02cSchristos 
1398dbcf02cSchristos #ifdef EAP_SERVER_TNC
1408dbcf02cSchristos 	if (ret == 0)
1418dbcf02cSchristos 		ret = eap_server_tnc_register();
1428dbcf02cSchristos #endif /* EAP_SERVER_TNC */
1438dbcf02cSchristos 
144111b9fd8Schristos #ifdef EAP_SERVER_PWD
145111b9fd8Schristos 	if (ret == 0)
146111b9fd8Schristos 		ret = eap_server_pwd_register();
147111b9fd8Schristos #endif /* EAP_SERVER_PWD */
148111b9fd8Schristos 
1493c260e60Schristos #ifdef EAP_SERVER_EKE
1503c260e60Schristos 	if (ret == 0)
1513c260e60Schristos 		ret = eap_server_eke_register();
1523c260e60Schristos #endif /* EAP_SERVER_EKE */
1533c260e60Schristos 
1548dbcf02cSchristos 	return ret;
1558dbcf02cSchristos }
156