1526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt/* 2526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * EAP peer: Method registration 3526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 4526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 5526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * This program is free software; you can redistribute it and/or modify 6526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * it under the terms of the GNU General Public License version 2 as 7526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * published by the Free Software Foundation. 8526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 9526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Alternatively, this software may be distributed under the terms of BSD 10526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * license. 11526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 12526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * See README and COPYING for more details. 13526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt */ 14526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 15526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#ifndef EAP_METHODS_H 16526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#define EAP_METHODS_H 17526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 18526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#include "eap_common/eap_defs.h" 19526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 20526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtconst struct eap_method * eap_peer_get_eap_method(int vendor, EapType method); 21526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtconst struct eap_method * eap_peer_get_methods(size_t *count); 22526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 23526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstruct eap_method * eap_peer_method_alloc(int version, int vendor, 24526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt EapType method, const char *name); 25526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtvoid eap_peer_method_free(struct eap_method *method); 26526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint eap_peer_method_register(struct eap_method *method); 27526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 28526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 29526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#ifdef IEEE8021X_EAPOL 30526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 31526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry ShmidtEapType eap_peer_get_type(const char *name, int *vendor); 32526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtconst char * eap_get_name(int vendor, EapType type); 33526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtsize_t eap_get_names(char *buf, size_t buflen); 34526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtchar ** eap_get_names_as_string_array(size_t *num); 35526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint eap_peer_register_methods(void); 36526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtvoid eap_peer_unregister_methods(void); 37526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 38526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#else /* IEEE8021X_EAPOL */ 39526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 40526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline EapType eap_peer_get_type(const char *name, int *vendor) 41526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 42526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt *vendor = EAP_VENDOR_IETF; 43526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return EAP_TYPE_NONE; 44526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 45526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 46526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline const char * eap_get_name(int vendor, EapType type) 47526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 48526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return NULL; 49526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 50526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 51526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline size_t eap_get_names(char *buf, size_t buflen) 52526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 53526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return 0; 54526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 55526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 56526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline int eap_peer_register_methods(void) 57526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 58526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return 0; 59526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 60526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 61526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline void eap_peer_unregister_methods(void) 62526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 63526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 64526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 65dde787cc314cd04caa4ea5f031cc8a02495ca513Dmitry Shmidtstatic inline char ** eap_get_names_as_string_array(size_t *num) 66dde787cc314cd04caa4ea5f031cc8a02495ca513Dmitry Shmidt{ 67dde787cc314cd04caa4ea5f031cc8a02495ca513Dmitry Shmidt return NULL; 68dde787cc314cd04caa4ea5f031cc8a02495ca513Dmitry Shmidt} 69dde787cc314cd04caa4ea5f031cc8a02495ca513Dmitry Shmidt 70526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#endif /* IEEE8021X_EAPOL */ 71526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 72526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 73526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#ifdef CONFIG_DYNAMIC_EAP_METHODS 74526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 75526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint eap_peer_method_load(const char *so); 76526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint eap_peer_method_unload(struct eap_method *method); 77526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 78526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#else /* CONFIG_DYNAMIC_EAP_METHODS */ 79526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 80526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline int eap_peer_method_load(const char *so) 81526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 82526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return 0; 83526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 84526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 85526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline int eap_peer_method_unload(struct eap_method *method) 86526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 87526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return 0; 88526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 89526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 90526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#endif /* CONFIG_DYNAMIC_EAP_METHODS */ 91526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 92526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#endif /* EAP_METHODS_H */ 93