1*e28a4053SRui Paulo /*
2*e28a4053SRui Paulo  * EAP method registration
3*e28a4053SRui Paulo  * Copyright (c) 2004-2009, Jouni Malinen <j@w1.fi>
4*e28a4053SRui Paulo  *
5*e28a4053SRui Paulo  * This program is free software; you can redistribute it and/or modify
6*e28a4053SRui Paulo  * it under the terms of the GNU General Public License version 2 as
7*e28a4053SRui Paulo  * published by the Free Software Foundation.
8*e28a4053SRui Paulo  *
9*e28a4053SRui Paulo  * Alternatively, this software may be distributed under the terms of BSD
10*e28a4053SRui Paulo  * license.
11*e28a4053SRui Paulo  *
12*e28a4053SRui Paulo  * See README and COPYING for more details.
13*e28a4053SRui Paulo  */
14*e28a4053SRui Paulo 
15*e28a4053SRui Paulo #include "includes.h"
16*e28a4053SRui Paulo 
17*e28a4053SRui Paulo #include "common.h"
18*e28a4053SRui Paulo #include "eap_peer/eap_methods.h"
19*e28a4053SRui Paulo #include "eap_server/eap_methods.h"
20*e28a4053SRui Paulo 
21*e28a4053SRui Paulo 
22*e28a4053SRui Paulo /**
23*e28a4053SRui Paulo  * eap_register_methods - Register statically linked EAP methods
24*e28a4053SRui Paulo  * Returns: 0 on success, -1 or -2 on failure
25*e28a4053SRui Paulo  *
26*e28a4053SRui Paulo  * This function is called at program initialization to register all EAP
27*e28a4053SRui Paulo  * methods that were linked in statically.
28*e28a4053SRui Paulo  */
29*e28a4053SRui Paulo int eap_register_methods(void)
30*e28a4053SRui Paulo {
31*e28a4053SRui Paulo 	int ret = 0;
32*e28a4053SRui Paulo 
33*e28a4053SRui Paulo #ifdef EAP_MD5
34*e28a4053SRui Paulo 	if (ret == 0)
35*e28a4053SRui Paulo 		ret = eap_peer_md5_register();
36*e28a4053SRui Paulo #endif /* EAP_MD5 */
37*e28a4053SRui Paulo 
38*e28a4053SRui Paulo #ifdef EAP_TLS
39*e28a4053SRui Paulo 	if (ret == 0)
40*e28a4053SRui Paulo 		ret = eap_peer_tls_register();
41*e28a4053SRui Paulo #endif /* EAP_TLS */
42*e28a4053SRui Paulo 
43*e28a4053SRui Paulo #ifdef EAP_MSCHAPv2
44*e28a4053SRui Paulo 	if (ret == 0)
45*e28a4053SRui Paulo 		ret = eap_peer_mschapv2_register();
46*e28a4053SRui Paulo #endif /* EAP_MSCHAPv2 */
47*e28a4053SRui Paulo 
48*e28a4053SRui Paulo #ifdef EAP_PEAP
49*e28a4053SRui Paulo 	if (ret == 0)
50*e28a4053SRui Paulo 		ret = eap_peer_peap_register();
51*e28a4053SRui Paulo #endif /* EAP_PEAP */
52*e28a4053SRui Paulo 
53*e28a4053SRui Paulo #ifdef EAP_TTLS
54*e28a4053SRui Paulo 	if (ret == 0)
55*e28a4053SRui Paulo 		ret = eap_peer_ttls_register();
56*e28a4053SRui Paulo #endif /* EAP_TTLS */
57*e28a4053SRui Paulo 
58*e28a4053SRui Paulo #ifdef EAP_GTC
59*e28a4053SRui Paulo 	if (ret == 0)
60*e28a4053SRui Paulo 		ret = eap_peer_gtc_register();
61*e28a4053SRui Paulo #endif /* EAP_GTC */
62*e28a4053SRui Paulo 
63*e28a4053SRui Paulo #ifdef EAP_OTP
64*e28a4053SRui Paulo 	if (ret == 0)
65*e28a4053SRui Paulo 		ret = eap_peer_otp_register();
66*e28a4053SRui Paulo #endif /* EAP_OTP */
67*e28a4053SRui Paulo 
68*e28a4053SRui Paulo #ifdef EAP_SIM
69*e28a4053SRui Paulo 	if (ret == 0)
70*e28a4053SRui Paulo 		ret = eap_peer_sim_register();
71*e28a4053SRui Paulo #endif /* EAP_SIM */
72*e28a4053SRui Paulo 
73*e28a4053SRui Paulo #ifdef EAP_LEAP
74*e28a4053SRui Paulo 	if (ret == 0)
75*e28a4053SRui Paulo 		ret = eap_peer_leap_register();
76*e28a4053SRui Paulo #endif /* EAP_LEAP */
77*e28a4053SRui Paulo 
78*e28a4053SRui Paulo #ifdef EAP_PSK
79*e28a4053SRui Paulo 	if (ret == 0)
80*e28a4053SRui Paulo 		ret = eap_peer_psk_register();
81*e28a4053SRui Paulo #endif /* EAP_PSK */
82*e28a4053SRui Paulo 
83*e28a4053SRui Paulo #ifdef EAP_AKA
84*e28a4053SRui Paulo 	if (ret == 0)
85*e28a4053SRui Paulo 		ret = eap_peer_aka_register();
86*e28a4053SRui Paulo #endif /* EAP_AKA */
87*e28a4053SRui Paulo 
88*e28a4053SRui Paulo #ifdef EAP_AKA_PRIME
89*e28a4053SRui Paulo 	if (ret == 0)
90*e28a4053SRui Paulo 		ret = eap_peer_aka_prime_register();
91*e28a4053SRui Paulo #endif /* EAP_AKA_PRIME */
92*e28a4053SRui Paulo 
93*e28a4053SRui Paulo #ifdef EAP_FAST
94*e28a4053SRui Paulo 	if (ret == 0)
95*e28a4053SRui Paulo 		ret = eap_peer_fast_register();
96*e28a4053SRui Paulo #endif /* EAP_FAST */
97*e28a4053SRui Paulo 
98*e28a4053SRui Paulo #ifdef EAP_PAX
99*e28a4053SRui Paulo 	if (ret == 0)
100*e28a4053SRui Paulo 		ret = eap_peer_pax_register();
101*e28a4053SRui Paulo #endif /* EAP_PAX */
102*e28a4053SRui Paulo 
103*e28a4053SRui Paulo #ifdef EAP_SAKE
104*e28a4053SRui Paulo 	if (ret == 0)
105*e28a4053SRui Paulo 		ret = eap_peer_sake_register();
106*e28a4053SRui Paulo #endif /* EAP_SAKE */
107*e28a4053SRui Paulo 
108*e28a4053SRui Paulo #ifdef EAP_GPSK
109*e28a4053SRui Paulo 	if (ret == 0)
110*e28a4053SRui Paulo 		ret = eap_peer_gpsk_register();
111*e28a4053SRui Paulo #endif /* EAP_GPSK */
112*e28a4053SRui Paulo 
113*e28a4053SRui Paulo #ifdef EAP_WSC
114*e28a4053SRui Paulo 	if (ret == 0)
115*e28a4053SRui Paulo 		ret = eap_peer_wsc_register();
116*e28a4053SRui Paulo #endif /* EAP_WSC */
117*e28a4053SRui Paulo 
118*e28a4053SRui Paulo #ifdef EAP_IKEV2
119*e28a4053SRui Paulo 	if (ret == 0)
120*e28a4053SRui Paulo 		ret = eap_peer_ikev2_register();
121*e28a4053SRui Paulo #endif /* EAP_IKEV2 */
122*e28a4053SRui Paulo 
123*e28a4053SRui Paulo #ifdef EAP_VENDOR_TEST
124*e28a4053SRui Paulo 	if (ret == 0)
125*e28a4053SRui Paulo 		ret = eap_peer_vendor_test_register();
126*e28a4053SRui Paulo #endif /* EAP_VENDOR_TEST */
127*e28a4053SRui Paulo 
128*e28a4053SRui Paulo #ifdef EAP_TNC
129*e28a4053SRui Paulo 	if (ret == 0)
130*e28a4053SRui Paulo 		ret = eap_peer_tnc_register();
131*e28a4053SRui Paulo #endif /* EAP_TNC */
132*e28a4053SRui Paulo 
133*e28a4053SRui Paulo 
134*e28a4053SRui Paulo #ifdef EAP_SERVER_IDENTITY
135*e28a4053SRui Paulo 	if (ret == 0)
136*e28a4053SRui Paulo 		ret = eap_server_identity_register();
137*e28a4053SRui Paulo #endif /* EAP_SERVER_IDENTITY */
138*e28a4053SRui Paulo 
139*e28a4053SRui Paulo #ifdef EAP_SERVER_MD5
140*e28a4053SRui Paulo 	if (ret == 0)
141*e28a4053SRui Paulo 		ret = eap_server_md5_register();
142*e28a4053SRui Paulo #endif /* EAP_SERVER_MD5 */
143*e28a4053SRui Paulo 
144*e28a4053SRui Paulo #ifdef EAP_SERVER_TLS
145*e28a4053SRui Paulo 	if (ret == 0)
146*e28a4053SRui Paulo 		ret = eap_server_tls_register();
147*e28a4053SRui Paulo #endif /* EAP_SERVER_TLS */
148*e28a4053SRui Paulo 
149*e28a4053SRui Paulo #ifdef EAP_SERVER_MSCHAPV2
150*e28a4053SRui Paulo 	if (ret == 0)
151*e28a4053SRui Paulo 		ret = eap_server_mschapv2_register();
152*e28a4053SRui Paulo #endif /* EAP_SERVER_MSCHAPV2 */
153*e28a4053SRui Paulo 
154*e28a4053SRui Paulo #ifdef EAP_SERVER_PEAP
155*e28a4053SRui Paulo 	if (ret == 0)
156*e28a4053SRui Paulo 		ret = eap_server_peap_register();
157*e28a4053SRui Paulo #endif /* EAP_SERVER_PEAP */
158*e28a4053SRui Paulo 
159*e28a4053SRui Paulo #ifdef EAP_SERVER_TLV
160*e28a4053SRui Paulo 	if (ret == 0)
161*e28a4053SRui Paulo 		ret = eap_server_tlv_register();
162*e28a4053SRui Paulo #endif /* EAP_SERVER_TLV */
163*e28a4053SRui Paulo 
164*e28a4053SRui Paulo #ifdef EAP_SERVER_GTC
165*e28a4053SRui Paulo 	if (ret == 0)
166*e28a4053SRui Paulo 		ret = eap_server_gtc_register();
167*e28a4053SRui Paulo #endif /* EAP_SERVER_GTC */
168*e28a4053SRui Paulo 
169*e28a4053SRui Paulo #ifdef EAP_SERVER_TTLS
170*e28a4053SRui Paulo 	if (ret == 0)
171*e28a4053SRui Paulo 		ret = eap_server_ttls_register();
172*e28a4053SRui Paulo #endif /* EAP_SERVER_TTLS */
173*e28a4053SRui Paulo 
174*e28a4053SRui Paulo #ifdef EAP_SERVER_SIM
175*e28a4053SRui Paulo 	if (ret == 0)
176*e28a4053SRui Paulo 		ret = eap_server_sim_register();
177*e28a4053SRui Paulo #endif /* EAP_SERVER_SIM */
178*e28a4053SRui Paulo 
179*e28a4053SRui Paulo #ifdef EAP_SERVER_AKA
180*e28a4053SRui Paulo 	if (ret == 0)
181*e28a4053SRui Paulo 		ret = eap_server_aka_register();
182*e28a4053SRui Paulo #endif /* EAP_SERVER_AKA */
183*e28a4053SRui Paulo 
184*e28a4053SRui Paulo #ifdef EAP_SERVER_AKA_PRIME
185*e28a4053SRui Paulo 	if (ret == 0)
186*e28a4053SRui Paulo 		ret = eap_server_aka_prime_register();
187*e28a4053SRui Paulo #endif /* EAP_SERVER_AKA_PRIME */
188*e28a4053SRui Paulo 
189*e28a4053SRui Paulo #ifdef EAP_SERVER_PAX
190*e28a4053SRui Paulo 	if (ret == 0)
191*e28a4053SRui Paulo 		ret = eap_server_pax_register();
192*e28a4053SRui Paulo #endif /* EAP_SERVER_PAX */
193*e28a4053SRui Paulo 
194*e28a4053SRui Paulo #ifdef EAP_SERVER_PSK
195*e28a4053SRui Paulo 	if (ret == 0)
196*e28a4053SRui Paulo 		ret = eap_server_psk_register();
197*e28a4053SRui Paulo #endif /* EAP_SERVER_PSK */
198*e28a4053SRui Paulo 
199*e28a4053SRui Paulo #ifdef EAP_SERVER_SAKE
200*e28a4053SRui Paulo 	if (ret == 0)
201*e28a4053SRui Paulo 		ret = eap_server_sake_register();
202*e28a4053SRui Paulo #endif /* EAP_SERVER_SAKE */
203*e28a4053SRui Paulo 
204*e28a4053SRui Paulo #ifdef EAP_SERVER_GPSK
205*e28a4053SRui Paulo 	if (ret == 0)
206*e28a4053SRui Paulo 		ret = eap_server_gpsk_register();
207*e28a4053SRui Paulo #endif /* EAP_SERVER_GPSK */
208*e28a4053SRui Paulo 
209*e28a4053SRui Paulo #ifdef EAP_SERVER_VENDOR_TEST
210*e28a4053SRui Paulo 	if (ret == 0)
211*e28a4053SRui Paulo 		ret = eap_server_vendor_test_register();
212*e28a4053SRui Paulo #endif /* EAP_SERVER_VENDOR_TEST */
213*e28a4053SRui Paulo 
214*e28a4053SRui Paulo #ifdef EAP_SERVER_FAST
215*e28a4053SRui Paulo 	if (ret == 0)
216*e28a4053SRui Paulo 		ret = eap_server_fast_register();
217*e28a4053SRui Paulo #endif /* EAP_SERVER_FAST */
218*e28a4053SRui Paulo 
219*e28a4053SRui Paulo #ifdef EAP_SERVER_WSC
220*e28a4053SRui Paulo 	if (ret == 0)
221*e28a4053SRui Paulo 		ret = eap_server_wsc_register();
222*e28a4053SRui Paulo #endif /* EAP_SERVER_WSC */
223*e28a4053SRui Paulo 
224*e28a4053SRui Paulo #ifdef EAP_SERVER_IKEV2
225*e28a4053SRui Paulo 	if (ret == 0)
226*e28a4053SRui Paulo 		ret = eap_server_ikev2_register();
227*e28a4053SRui Paulo #endif /* EAP_SERVER_IKEV2 */
228*e28a4053SRui Paulo 
229*e28a4053SRui Paulo #ifdef EAP_SERVER_TNC
230*e28a4053SRui Paulo 	if (ret == 0)
231*e28a4053SRui Paulo 		ret = eap_server_tnc_register();
232*e28a4053SRui Paulo #endif /* EAP_SERVER_TNC */
233*e28a4053SRui Paulo 
234*e28a4053SRui Paulo 	return ret;
235*e28a4053SRui Paulo }
236