eap_methods.h revision 8d520ff1dc2da35cdca849e982051b86468016d8
1/* 2 * EAP peer: Method registration 3 * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * published by the Free Software Foundation. 8 * 9 * Alternatively, this software may be distributed under the terms of BSD 10 * license. 11 * 12 * See README and COPYING for more details. 13 */ 14 15#ifndef EAP_METHODS_H 16#define EAP_METHODS_H 17 18#include "eap_common/eap_defs.h" 19 20const struct eap_method * eap_peer_get_eap_method(int vendor, EapType method); 21const struct eap_method * eap_peer_get_methods(size_t *count); 22 23struct eap_method * eap_peer_method_alloc(int version, int vendor, 24 EapType method, const char *name); 25void eap_peer_method_free(struct eap_method *method); 26int eap_peer_method_register(struct eap_method *method); 27 28 29#ifdef IEEE8021X_EAPOL 30 31EapType eap_peer_get_type(const char *name, int *vendor); 32const char * eap_get_name(int vendor, EapType type); 33size_t eap_get_names(char *buf, size_t buflen); 34char ** eap_get_names_as_string_array(size_t *num); 35void eap_peer_unregister_methods(void); 36 37#else /* IEEE8021X_EAPOL */ 38 39static inline EapType eap_peer_get_type(const char *name, int *vendor) 40{ 41 *vendor = EAP_VENDOR_IETF; 42 return EAP_TYPE_NONE; 43} 44 45static inline const char * eap_get_name(int vendor, EapType type) 46{ 47 return NULL; 48} 49 50static inline size_t eap_get_names(char *buf, size_t buflen) 51{ 52 return 0; 53} 54 55static inline int eap_peer_register_methods(void) 56{ 57 return 0; 58} 59 60static inline void eap_peer_unregister_methods(void) 61{ 62} 63 64static inline char ** eap_get_names_as_string_array(size_t *num) 65{ 66 return NULL; 67} 68 69#endif /* IEEE8021X_EAPOL */ 70 71 72#ifdef CONFIG_DYNAMIC_EAP_METHODS 73 74int eap_peer_method_load(const char *so); 75int eap_peer_method_unload(struct eap_method *method); 76 77#else /* CONFIG_DYNAMIC_EAP_METHODS */ 78 79static inline int eap_peer_method_load(const char *so) 80{ 81 return 0; 82} 83 84static inline int eap_peer_method_unload(struct eap_method *method) 85{ 86 return 0; 87} 88 89#endif /* CONFIG_DYNAMIC_EAP_METHODS */ 90 91/* EAP peer method registration calls for statically linked in methods */ 92int eap_peer_md5_register(void); 93int eap_peer_tls_register(void); 94int eap_peer_mschapv2_register(void); 95int eap_peer_peap_register(void); 96int eap_peer_ttls_register(void); 97int eap_peer_gtc_register(void); 98int eap_peer_otp_register(void); 99int eap_peer_sim_register(void); 100int eap_peer_leap_register(void); 101int eap_peer_psk_register(void); 102int eap_peer_aka_register(void); 103int eap_peer_aka_prime_register(void); 104int eap_peer_fast_register(void); 105int eap_peer_pax_register(void); 106int eap_peer_sake_register(void); 107int eap_peer_gpsk_register(void); 108int eap_peer_wsc_register(void); 109int eap_peer_ikev2_register(void); 110int eap_peer_vendor_test_register(void); 111int eap_peer_tnc_register(void); 112int eap_peer_pwd_register(void); 113 114#endif /* EAP_METHODS_H */ 115