1 /* 2 * EAP peer: Method registration 3 * Copyright (c) 2004-2007, 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 #ifndef EAP_METHODS_H 10 #define EAP_METHODS_H 11 12 #include "eap_common/eap_defs.h" 13 14 const struct eap_method * eap_peer_get_eap_method(int vendor, EapType method); 15 const struct eap_method * eap_peer_get_methods(size_t *count); 16 17 struct eap_method * eap_peer_method_alloc(int version, int vendor, 18 EapType method, const char *name); 19 void eap_peer_method_free(struct eap_method *method); 20 int eap_peer_method_register(struct eap_method *method); 21 22 23 #ifdef IEEE8021X_EAPOL 24 25 EapType eap_peer_get_type(const char *name, int *vendor); 26 const char * eap_get_name(int vendor, EapType type); 27 size_t eap_get_names(char *buf, size_t buflen); 28 char ** eap_get_names_as_string_array(size_t *num); 29 void eap_peer_unregister_methods(void); 30 31 #else /* IEEE8021X_EAPOL */ 32 33 static inline EapType eap_peer_get_type(const char *name, int *vendor) 34 { 35 *vendor = EAP_VENDOR_IETF; 36 return EAP_TYPE_NONE; 37 } 38 39 static inline const char * eap_get_name(int vendor, EapType type) 40 { 41 return NULL; 42 } 43 44 static inline size_t eap_get_names(char *buf, size_t buflen) 45 { 46 return 0; 47 } 48 49 static inline int eap_peer_register_methods(void) 50 { 51 return 0; 52 } 53 54 static inline void eap_peer_unregister_methods(void) 55 { 56 } 57 58 static inline char ** eap_get_names_as_string_array(size_t *num) 59 { 60 return NULL; 61 } 62 63 #endif /* IEEE8021X_EAPOL */ 64 65 66 #ifdef CONFIG_DYNAMIC_EAP_METHODS 67 68 int eap_peer_method_load(const char *so); 69 int eap_peer_method_unload(struct eap_method *method); 70 71 #else /* CONFIG_DYNAMIC_EAP_METHODS */ 72 73 static inline int eap_peer_method_load(const char *so) 74 { 75 return 0; 76 } 77 78 static inline int eap_peer_method_unload(struct eap_method *method) 79 { 80 return 0; 81 } 82 83 #endif /* CONFIG_DYNAMIC_EAP_METHODS */ 84 85 /* EAP peer method registration calls for statically linked in methods */ 86 int eap_peer_md5_register(void); 87 int eap_peer_tls_register(void); 88 int eap_peer_unauth_tls_register(void); 89 int eap_peer_wfa_unauth_tls_register(void); 90 int eap_peer_mschapv2_register(void); 91 int eap_peer_peap_register(void); 92 int eap_peer_ttls_register(void); 93 int eap_peer_gtc_register(void); 94 int eap_peer_otp_register(void); 95 int eap_peer_sim_register(void); 96 int eap_peer_leap_register(void); 97 int eap_peer_psk_register(void); 98 int eap_peer_aka_register(void); 99 int eap_peer_aka_prime_register(void); 100 int eap_peer_fast_register(void); 101 int eap_peer_pax_register(void); 102 int eap_peer_sake_register(void); 103 int eap_peer_gpsk_register(void); 104 int eap_peer_wsc_register(void); 105 int eap_peer_ikev2_register(void); 106 int eap_peer_vendor_test_register(void); 107 int eap_peer_tnc_register(void); 108 int eap_peer_pwd_register(void); 109 int eap_peer_eke_register(void); 110 111 #endif /* EAP_METHODS_H */ 112