18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * EAP method registration
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2004-2009, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "includes.h"
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "common.h"
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "eap_server/eap_methods.h"
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "eap_register.h"
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/**
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * eap_server_register_methods - Register statically linked EAP server methods
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Returns: 0 on success, -1 or -2 on failure
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This function is called at program initialization to register all EAP
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * methods that were linked in statically.
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint eap_server_register_methods(void)
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int ret = 0;
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_IDENTITY
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_identity_register();
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_IDENTITY */
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_MD5
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_md5_register();
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_MD5 */
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_TLS
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_tls_register();
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_TLS */
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
4261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#ifdef EAP_SERVER_UNAUTH_TLS
4361d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt	if (ret == 0)
4461d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt		ret = eap_server_unauth_tls_register();
4561d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#endif /* EAP_SERVER_TLS */
4661d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_MSCHAPV2
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_mschapv2_register();
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_MSCHAPV2 */
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_PEAP
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_peap_register();
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_PEAP */
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_TLV
588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_tlv_register();
608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_TLV */
618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_GTC
638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_gtc_register();
658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_GTC */
668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_TTLS
688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_ttls_register();
708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_TTLS */
718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_SIM
738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_sim_register();
758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_SIM */
768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_AKA
788d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
798d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_aka_register();
808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_AKA */
818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_AKA_PRIME
838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_aka_prime_register();
858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_AKA_PRIME */
868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_PAX
888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_pax_register();
908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_PAX */
918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_PSK
938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_psk_register();
958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_PSK */
968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_SAKE
988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_sake_register();
1008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_SAKE */
1018d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1028d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_GPSK
1038d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
1048d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_gpsk_register();
1058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_GPSK */
1068d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1078d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_VENDOR_TEST
1088d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
1098d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_vendor_test_register();
1108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_VENDOR_TEST */
1118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_FAST
1138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
1148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_fast_register();
1158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_FAST */
1168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_WSC
1188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
1198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_wsc_register();
1208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_WSC */
1218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_IKEV2
1238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
1248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_ikev2_register();
1258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_IKEV2 */
1268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_TNC
1288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
1298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_tnc_register();
1308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_TNC */
1318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef EAP_SERVER_PWD
1338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ret == 0)
1348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		ret = eap_server_pwd_register();
1358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_SERVER_PWD */
1368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	return ret;
1388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
139