1214503Srpaulo/*
2214503Srpaulo * EAP method registration
3214503Srpaulo * Copyright (c) 2004-2009, Jouni Malinen <j@w1.fi>
4214503Srpaulo *
5252726Srpaulo * This software may be distributed under the terms of the BSD license.
6252726Srpaulo * See README for more details.
7214503Srpaulo */
8214503Srpaulo
9214503Srpaulo#include "includes.h"
10214503Srpaulo
11214503Srpaulo#include "common.h"
12214503Srpaulo#include "eap_server/eap_methods.h"
13214503Srpaulo#include "eap_register.h"
14214503Srpaulo
15214503Srpaulo
16214503Srpaulo/**
17214503Srpaulo * eap_server_register_methods - Register statically linked EAP server methods
18214503Srpaulo * Returns: 0 on success, -1 or -2 on failure
19214503Srpaulo *
20214503Srpaulo * This function is called at program initialization to register all EAP
21214503Srpaulo * methods that were linked in statically.
22214503Srpaulo */
23214503Srpauloint eap_server_register_methods(void)
24214503Srpaulo{
25214503Srpaulo	int ret = 0;
26214503Srpaulo
27214503Srpaulo#ifdef EAP_SERVER_IDENTITY
28214503Srpaulo	if (ret == 0)
29214503Srpaulo		ret = eap_server_identity_register();
30214503Srpaulo#endif /* EAP_SERVER_IDENTITY */
31214503Srpaulo
32214503Srpaulo#ifdef EAP_SERVER_MD5
33214503Srpaulo	if (ret == 0)
34214503Srpaulo		ret = eap_server_md5_register();
35214503Srpaulo#endif /* EAP_SERVER_MD5 */
36214503Srpaulo
37214503Srpaulo#ifdef EAP_SERVER_TLS
38214503Srpaulo	if (ret == 0)
39214503Srpaulo		ret = eap_server_tls_register();
40214503Srpaulo#endif /* EAP_SERVER_TLS */
41214503Srpaulo
42252726Srpaulo#ifdef EAP_SERVER_UNAUTH_TLS
43252726Srpaulo	if (ret == 0)
44252726Srpaulo		ret = eap_server_unauth_tls_register();
45252726Srpaulo#endif /* EAP_SERVER_TLS */
46252726Srpaulo
47281806Srpaulo#ifdef EAP_SERVER_TLS
48281806Srpaulo#ifdef CONFIG_HS20
49281806Srpaulo	if (ret == 0)
50281806Srpaulo		ret = eap_server_wfa_unauth_tls_register();
51281806Srpaulo#endif /* CONFIG_HS20 */
52281806Srpaulo#endif /* EAP_SERVER_TLS */
53281806Srpaulo
54214503Srpaulo#ifdef EAP_SERVER_MSCHAPV2
55214503Srpaulo	if (ret == 0)
56214503Srpaulo		ret = eap_server_mschapv2_register();
57214503Srpaulo#endif /* EAP_SERVER_MSCHAPV2 */
58214503Srpaulo
59214503Srpaulo#ifdef EAP_SERVER_PEAP
60214503Srpaulo	if (ret == 0)
61214503Srpaulo		ret = eap_server_peap_register();
62214503Srpaulo#endif /* EAP_SERVER_PEAP */
63214503Srpaulo
64214503Srpaulo#ifdef EAP_SERVER_TLV
65214503Srpaulo	if (ret == 0)
66214503Srpaulo		ret = eap_server_tlv_register();
67214503Srpaulo#endif /* EAP_SERVER_TLV */
68214503Srpaulo
69214503Srpaulo#ifdef EAP_SERVER_GTC
70214503Srpaulo	if (ret == 0)
71214503Srpaulo		ret = eap_server_gtc_register();
72214503Srpaulo#endif /* EAP_SERVER_GTC */
73214503Srpaulo
74214503Srpaulo#ifdef EAP_SERVER_TTLS
75214503Srpaulo	if (ret == 0)
76214503Srpaulo		ret = eap_server_ttls_register();
77214503Srpaulo#endif /* EAP_SERVER_TTLS */
78214503Srpaulo
79214503Srpaulo#ifdef EAP_SERVER_SIM
80214503Srpaulo	if (ret == 0)
81214503Srpaulo		ret = eap_server_sim_register();
82214503Srpaulo#endif /* EAP_SERVER_SIM */
83214503Srpaulo
84214503Srpaulo#ifdef EAP_SERVER_AKA
85214503Srpaulo	if (ret == 0)
86214503Srpaulo		ret = eap_server_aka_register();
87214503Srpaulo#endif /* EAP_SERVER_AKA */
88214503Srpaulo
89214503Srpaulo#ifdef EAP_SERVER_AKA_PRIME
90214503Srpaulo	if (ret == 0)
91214503Srpaulo		ret = eap_server_aka_prime_register();
92214503Srpaulo#endif /* EAP_SERVER_AKA_PRIME */
93214503Srpaulo
94214503Srpaulo#ifdef EAP_SERVER_PAX
95214503Srpaulo	if (ret == 0)
96214503Srpaulo		ret = eap_server_pax_register();
97214503Srpaulo#endif /* EAP_SERVER_PAX */
98214503Srpaulo
99214503Srpaulo#ifdef EAP_SERVER_PSK
100214503Srpaulo	if (ret == 0)
101214503Srpaulo		ret = eap_server_psk_register();
102214503Srpaulo#endif /* EAP_SERVER_PSK */
103214503Srpaulo
104214503Srpaulo#ifdef EAP_SERVER_SAKE
105214503Srpaulo	if (ret == 0)
106214503Srpaulo		ret = eap_server_sake_register();
107214503Srpaulo#endif /* EAP_SERVER_SAKE */
108214503Srpaulo
109214503Srpaulo#ifdef EAP_SERVER_GPSK
110214503Srpaulo	if (ret == 0)
111214503Srpaulo		ret = eap_server_gpsk_register();
112214503Srpaulo#endif /* EAP_SERVER_GPSK */
113214503Srpaulo
114214503Srpaulo#ifdef EAP_SERVER_VENDOR_TEST
115214503Srpaulo	if (ret == 0)
116214503Srpaulo		ret = eap_server_vendor_test_register();
117214503Srpaulo#endif /* EAP_SERVER_VENDOR_TEST */
118214503Srpaulo
119214503Srpaulo#ifdef EAP_SERVER_FAST
120214503Srpaulo	if (ret == 0)
121214503Srpaulo		ret = eap_server_fast_register();
122214503Srpaulo#endif /* EAP_SERVER_FAST */
123214503Srpaulo
124351611Scy#ifdef EAP_SERVER_TEAP
125351611Scy	if (ret == 0)
126351611Scy		ret = eap_server_teap_register();
127351611Scy#endif /* EAP_SERVER_TEAP */
128351611Scy
129214503Srpaulo#ifdef EAP_SERVER_WSC
130214503Srpaulo	if (ret == 0)
131214503Srpaulo		ret = eap_server_wsc_register();
132214503Srpaulo#endif /* EAP_SERVER_WSC */
133214503Srpaulo
134214503Srpaulo#ifdef EAP_SERVER_IKEV2
135214503Srpaulo	if (ret == 0)
136214503Srpaulo		ret = eap_server_ikev2_register();
137214503Srpaulo#endif /* EAP_SERVER_IKEV2 */
138214503Srpaulo
139214503Srpaulo#ifdef EAP_SERVER_TNC
140214503Srpaulo	if (ret == 0)
141214503Srpaulo		ret = eap_server_tnc_register();
142214503Srpaulo#endif /* EAP_SERVER_TNC */
143214503Srpaulo
144252726Srpaulo#ifdef EAP_SERVER_PWD
145252726Srpaulo	if (ret == 0)
146252726Srpaulo		ret = eap_server_pwd_register();
147252726Srpaulo#endif /* EAP_SERVER_PWD */
148252726Srpaulo
149281806Srpaulo#ifdef EAP_SERVER_EKE
150281806Srpaulo	if (ret == 0)
151281806Srpaulo		ret = eap_server_eke_register();
152281806Srpaulo#endif /* EAP_SERVER_EKE */
153281806Srpaulo
154214503Srpaulo	return ret;
155214503Srpaulo}
156