1/*
2 * EAP method registration
3 * Copyright (c) 2004-2009, Jouni Malinen <j@w1.fi>
4 *
5 * This software may be distributed under the terms of the BSD license.
6 * See README for more details.
7 */
8
9#include "includes.h"
10
11#include "common.h"
12#include "eap_server/eap_methods.h"
13#include "eap_register.h"
14
15
16/**
17 * eap_server_register_methods - Register statically linked EAP server methods
18 * Returns: 0 on success, -1 or -2 on failure
19 *
20 * This function is called at program initialization to register all EAP
21 * methods that were linked in statically.
22 */
23int eap_server_register_methods(void)
24{
25	int ret = 0;
26
27#ifdef EAP_SERVER_IDENTITY
28	if (ret == 0)
29		ret = eap_server_identity_register();
30#endif /* EAP_SERVER_IDENTITY */
31
32#ifdef EAP_SERVER_MD5
33	if (ret == 0)
34		ret = eap_server_md5_register();
35#endif /* EAP_SERVER_MD5 */
36
37#ifdef EAP_SERVER_TLS
38	if (ret == 0)
39		ret = eap_server_tls_register();
40#endif /* EAP_SERVER_TLS */
41
42#ifdef EAP_SERVER_UNAUTH_TLS
43	if (ret == 0)
44		ret = eap_server_unauth_tls_register();
45#endif /* EAP_SERVER_TLS */
46
47#ifdef EAP_SERVER_TLS
48#ifdef CONFIG_HS20
49	if (ret == 0)
50		ret = eap_server_wfa_unauth_tls_register();
51#endif /* CONFIG_HS20 */
52#endif /* EAP_SERVER_TLS */
53
54#ifdef EAP_SERVER_MSCHAPV2
55	if (ret == 0)
56		ret = eap_server_mschapv2_register();
57#endif /* EAP_SERVER_MSCHAPV2 */
58
59#ifdef EAP_SERVER_PEAP
60	if (ret == 0)
61		ret = eap_server_peap_register();
62#endif /* EAP_SERVER_PEAP */
63
64#ifdef EAP_SERVER_TLV
65	if (ret == 0)
66		ret = eap_server_tlv_register();
67#endif /* EAP_SERVER_TLV */
68
69#ifdef EAP_SERVER_GTC
70	if (ret == 0)
71		ret = eap_server_gtc_register();
72#endif /* EAP_SERVER_GTC */
73
74#ifdef EAP_SERVER_TTLS
75	if (ret == 0)
76		ret = eap_server_ttls_register();
77#endif /* EAP_SERVER_TTLS */
78
79#ifdef EAP_SERVER_SIM
80	if (ret == 0)
81		ret = eap_server_sim_register();
82#endif /* EAP_SERVER_SIM */
83
84#ifdef EAP_SERVER_AKA
85	if (ret == 0)
86		ret = eap_server_aka_register();
87#endif /* EAP_SERVER_AKA */
88
89#ifdef EAP_SERVER_AKA_PRIME
90	if (ret == 0)
91		ret = eap_server_aka_prime_register();
92#endif /* EAP_SERVER_AKA_PRIME */
93
94#ifdef EAP_SERVER_PAX
95	if (ret == 0)
96		ret = eap_server_pax_register();
97#endif /* EAP_SERVER_PAX */
98
99#ifdef EAP_SERVER_PSK
100	if (ret == 0)
101		ret = eap_server_psk_register();
102#endif /* EAP_SERVER_PSK */
103
104#ifdef EAP_SERVER_SAKE
105	if (ret == 0)
106		ret = eap_server_sake_register();
107#endif /* EAP_SERVER_SAKE */
108
109#ifdef EAP_SERVER_GPSK
110	if (ret == 0)
111		ret = eap_server_gpsk_register();
112#endif /* EAP_SERVER_GPSK */
113
114#ifdef EAP_SERVER_VENDOR_TEST
115	if (ret == 0)
116		ret = eap_server_vendor_test_register();
117#endif /* EAP_SERVER_VENDOR_TEST */
118
119#ifdef EAP_SERVER_FAST
120	if (ret == 0)
121		ret = eap_server_fast_register();
122#endif /* EAP_SERVER_FAST */
123
124#ifdef EAP_SERVER_WSC
125	if (ret == 0)
126		ret = eap_server_wsc_register();
127#endif /* EAP_SERVER_WSC */
128
129#ifdef EAP_SERVER_IKEV2
130	if (ret == 0)
131		ret = eap_server_ikev2_register();
132#endif /* EAP_SERVER_IKEV2 */
133
134#ifdef EAP_SERVER_TNC
135	if (ret == 0)
136		ret = eap_server_tnc_register();
137#endif /* EAP_SERVER_TNC */
138
139#ifdef EAP_SERVER_PWD
140	if (ret == 0)
141		ret = eap_server_pwd_register();
142#endif /* EAP_SERVER_PWD */
143
144#ifdef EAP_SERVER_EKE
145	if (ret == 0)
146		ret = eap_server_eke_register();
147#endif /* EAP_SERVER_EKE */
148
149	return ret;
150}
151