2 * Copyright (c) 2011, JANET(UK)
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
16 * 3. Neither the name of JANET(UK) nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * Initialisation and finalise functions.
37 #include "gssapiP_eap.h"
40 eapPeerRegisterMethods(OM_uint32 *minor)
46 ret = eap_peer_md5_register();
51 ret = eap_peer_tls_register();
56 ret = eap_peer_mschapv2_register();
57 #endif /* EAP_MSCHAPv2 */
61 ret = eap_peer_peap_register();
66 ret = eap_peer_ttls_register();
71 ret = eap_peer_gtc_register();
76 ret = eap_peer_otp_register();
81 ret = eap_peer_sim_register();
86 ret = eap_peer_leap_register();
91 ret = eap_peer_psk_register();
96 ret = eap_peer_aka_register();
101 ret = eap_peer_aka_prime_register();
102 #endif /* EAP_AKA_PRIME */
106 ret = eap_peer_fast_register();
107 #endif /* EAP_FAST */
111 ret = eap_peer_pax_register();
116 ret = eap_peer_sake_register();
117 #endif /* EAP_SAKE */
121 ret = eap_peer_gpsk_register();
122 #endif /* EAP_GPSK */
126 ret = eap_peer_wsc_register();
131 ret = eap_peer_ikev2_register();
132 #endif /* EAP_IKEV2 */
134 #ifdef EAP_VENDOR_TEST
136 ret = eap_peer_vendor_test_register();
137 #endif /* EAP_VENDOR_TEST */
141 ret = eap_peer_tnc_register();
145 return GSS_S_COMPLETE;
147 *minor = GSSEAP_LIBEAP_INIT_FAILURE;
148 return GSS_S_FAILURE;
152 gssEapInitLibEap(OM_uint32 *minor)
154 return eapPeerRegisterMethods(minor);
158 gssEapInitLibRadsec(OM_uint32 *minor)
161 *minor = GSSEAP_RADSEC_INIT_FAILURE;
162 return GSS_S_FAILURE;
165 return GSS_S_COMPLETE;
168 static void gssEapInitiatorInit(void) __attribute__((constructor));
169 static void gssEapFinalize(void) __attribute__((destructor));
172 gssEapInitiatorInit(void)
174 OM_uint32 major, minor;
176 initialize_eapg_error_table();
177 initialize_rse_error_table();
179 major = gssEapInitLibEap(&minor);
180 assert(major == GSS_S_COMPLETE);
182 major = gssEapInitLibRadsec(&minor);
183 assert(major == GSS_S_COMPLETE);
185 #ifdef GSSEAP_ENABLE_REAUTH
186 major = gssEapReauthInitialize(&minor);
187 assert(major == GSS_S_COMPLETE);
196 gssEapAttrProvidersFinalize(&minor);
197 eap_peer_unregister_methods();