1189251Ssam/* 2189251Ssam * EAP peer: Method registration 3189251Ssam * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 4189251Ssam * 5252726Srpaulo * This software may be distributed under the terms of the BSD license. 6252726Srpaulo * See README for more details. 7189251Ssam */ 8189251Ssam 9189251Ssam#ifndef EAP_METHODS_H 10189251Ssam#define EAP_METHODS_H 11189251Ssam 12189251Ssam#include "eap_common/eap_defs.h" 13189251Ssam 14189251Ssamconst struct eap_method * eap_peer_get_eap_method(int vendor, EapType method); 15189251Ssamconst struct eap_method * eap_peer_get_methods(size_t *count); 16189251Ssam 17189251Ssamstruct eap_method * eap_peer_method_alloc(int version, int vendor, 18189251Ssam EapType method, const char *name); 19189251Ssamvoid eap_peer_method_free(struct eap_method *method); 20189251Ssamint eap_peer_method_register(struct eap_method *method); 21189251Ssam 22189251Ssam 23189251Ssam#ifdef IEEE8021X_EAPOL 24189251Ssam 25189251SsamEapType eap_peer_get_type(const char *name, int *vendor); 26189251Ssamconst char * eap_get_name(int vendor, EapType type); 27189251Ssamsize_t eap_get_names(char *buf, size_t buflen); 28189251Ssamchar ** eap_get_names_as_string_array(size_t *num); 29189251Ssamvoid eap_peer_unregister_methods(void); 30189251Ssam 31189251Ssam#else /* IEEE8021X_EAPOL */ 32189251Ssam 33189251Ssamstatic inline EapType eap_peer_get_type(const char *name, int *vendor) 34189251Ssam{ 35189251Ssam *vendor = EAP_VENDOR_IETF; 36189251Ssam return EAP_TYPE_NONE; 37189251Ssam} 38189251Ssam 39189251Ssamstatic inline const char * eap_get_name(int vendor, EapType type) 40189251Ssam{ 41189251Ssam return NULL; 42189251Ssam} 43189251Ssam 44189251Ssamstatic inline size_t eap_get_names(char *buf, size_t buflen) 45189251Ssam{ 46189251Ssam return 0; 47189251Ssam} 48189251Ssam 49189251Ssamstatic inline int eap_peer_register_methods(void) 50189251Ssam{ 51189251Ssam return 0; 52189251Ssam} 53189251Ssam 54189251Ssamstatic inline void eap_peer_unregister_methods(void) 55189251Ssam{ 56189251Ssam} 57189251Ssam 58209158Srpaulostatic inline char ** eap_get_names_as_string_array(size_t *num) 59209158Srpaulo{ 60209158Srpaulo return NULL; 61209158Srpaulo} 62209158Srpaulo 63189251Ssam#endif /* IEEE8021X_EAPOL */ 64189251Ssam 65189251Ssam 66189251Ssam#ifdef CONFIG_DYNAMIC_EAP_METHODS 67189251Ssam 68189251Ssamint eap_peer_method_load(const char *so); 69189251Ssamint eap_peer_method_unload(struct eap_method *method); 70189251Ssam 71189251Ssam#else /* CONFIG_DYNAMIC_EAP_METHODS */ 72189251Ssam 73189251Ssamstatic inline int eap_peer_method_load(const char *so) 74189251Ssam{ 75189251Ssam return 0; 76189251Ssam} 77189251Ssam 78189251Ssamstatic inline int eap_peer_method_unload(struct eap_method *method) 79189251Ssam{ 80189251Ssam return 0; 81189251Ssam} 82189251Ssam 83189251Ssam#endif /* CONFIG_DYNAMIC_EAP_METHODS */ 84189251Ssam 85214734Srpaulo/* EAP peer method registration calls for statically linked in methods */ 86214734Srpauloint eap_peer_md5_register(void); 87214734Srpauloint eap_peer_tls_register(void); 88252726Srpauloint eap_peer_unauth_tls_register(void); 89214734Srpauloint eap_peer_mschapv2_register(void); 90214734Srpauloint eap_peer_peap_register(void); 91214734Srpauloint eap_peer_ttls_register(void); 92214734Srpauloint eap_peer_gtc_register(void); 93214734Srpauloint eap_peer_otp_register(void); 94214734Srpauloint eap_peer_sim_register(void); 95214734Srpauloint eap_peer_leap_register(void); 96214734Srpauloint eap_peer_psk_register(void); 97214734Srpauloint eap_peer_aka_register(void); 98214734Srpauloint eap_peer_aka_prime_register(void); 99214734Srpauloint eap_peer_fast_register(void); 100214734Srpauloint eap_peer_pax_register(void); 101214734Srpauloint eap_peer_sake_register(void); 102214734Srpauloint eap_peer_gpsk_register(void); 103214734Srpauloint eap_peer_wsc_register(void); 104214734Srpauloint eap_peer_ikev2_register(void); 105214734Srpauloint eap_peer_vendor_test_register(void); 106214734Srpauloint eap_peer_tnc_register(void); 107252726Srpauloint eap_peer_pwd_register(void); 108214734Srpaulo 109189251Ssam#endif /* EAP_METHODS_H */ 110