$search
00001 /* 00002 * EAP peer: Method registration 00003 * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License version 2 as 00007 * published by the Free Software Foundation. 00008 * 00009 * Alternatively, this software may be distributed under the terms of BSD 00010 * license. 00011 * 00012 * See README and COPYING for more details. 00013 */ 00014 00015 #ifndef EAP_METHODS_H 00016 #define EAP_METHODS_H 00017 00018 #include "eap_common/eap_defs.h" 00019 00020 const struct eap_method * eap_peer_get_eap_method(int vendor, EapType method); 00021 const struct eap_method * eap_peer_get_methods(size_t *count); 00022 00023 struct eap_method * eap_peer_method_alloc(int version, int vendor, 00024 EapType method, const char *name); 00025 void eap_peer_method_free(struct eap_method *method); 00026 int eap_peer_method_register(struct eap_method *method); 00027 00028 00029 #ifdef IEEE8021X_EAPOL 00030 00031 EapType eap_peer_get_type(const char *name, int *vendor); 00032 const char * eap_get_name(int vendor, EapType type); 00033 size_t eap_get_names(char *buf, size_t buflen); 00034 char ** eap_get_names_as_string_array(size_t *num); 00035 void eap_peer_unregister_methods(void); 00036 00037 #else /* IEEE8021X_EAPOL */ 00038 00039 static inline EapType eap_peer_get_type(const char *name, int *vendor) 00040 { 00041 *vendor = EAP_VENDOR_IETF; 00042 return EAP_TYPE_NONE; 00043 } 00044 00045 static inline const char * eap_get_name(int vendor, EapType type) 00046 { 00047 return NULL; 00048 } 00049 00050 static inline size_t eap_get_names(char *buf, size_t buflen) 00051 { 00052 return 0; 00053 } 00054 00055 static inline int eap_peer_register_methods(void) 00056 { 00057 return 0; 00058 } 00059 00060 static inline void eap_peer_unregister_methods(void) 00061 { 00062 } 00063 00064 static inline char ** eap_get_names_as_string_array(size_t *num) 00065 { 00066 return NULL; 00067 } 00068 00069 #endif /* IEEE8021X_EAPOL */ 00070 00071 00072 #ifdef CONFIG_DYNAMIC_EAP_METHODS 00073 00074 int eap_peer_method_load(const char *so); 00075 int eap_peer_method_unload(struct eap_method *method); 00076 00077 #else /* CONFIG_DYNAMIC_EAP_METHODS */ 00078 00079 static inline int eap_peer_method_load(const char *so) 00080 { 00081 return 0; 00082 } 00083 00084 static inline int eap_peer_method_unload(struct eap_method *method) 00085 { 00086 return 0; 00087 } 00088 00089 #endif /* CONFIG_DYNAMIC_EAP_METHODS */ 00090 00091 /* EAP peer method registration calls for statically linked in methods */ 00092 int eap_peer_md5_register(void); 00093 int eap_peer_tls_register(void); 00094 int eap_peer_mschapv2_register(void); 00095 int eap_peer_peap_register(void); 00096 int eap_peer_ttls_register(void); 00097 int eap_peer_gtc_register(void); 00098 int eap_peer_otp_register(void); 00099 int eap_peer_sim_register(void); 00100 int eap_peer_leap_register(void); 00101 int eap_peer_psk_register(void); 00102 int eap_peer_aka_register(void); 00103 int eap_peer_aka_prime_register(void); 00104 int eap_peer_fast_register(void); 00105 int eap_peer_pax_register(void); 00106 int eap_peer_sake_register(void); 00107 int eap_peer_gpsk_register(void); 00108 int eap_peer_wsc_register(void); 00109 int eap_peer_ikev2_register(void); 00110 int eap_peer_vendor_test_register(void); 00111 int eap_peer_tnc_register(void); 00112 00113 #endif /* EAP_METHODS_H */