From: Martin Willi Date: Thu, 30 Aug 2012 09:15:38 +0000 (+0200) Subject: Add some Microsoft specific EAP types, and a enum_name getter them X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0acd8ba492f69fad546122a36730235fd96b104a;p=thirdparty%2Fstrongswan.git Add some Microsoft specific EAP types, and a enum_name getter them --- diff --git a/src/libstrongswan/eap/eap.c b/src/libstrongswan/eap/eap.c index 2ae3393a4f..53319a4f6b 100644 --- a/src/libstrongswan/eap/eap.c +++ b/src/libstrongswan/eap/eap.c @@ -93,6 +93,31 @@ ENUM_NEXT(eap_type_short_names, EAP_EXPANDED, EAP_DYNAMIC, EAP_TNC, "DYN"); ENUM_END(eap_type_short_names, EAP_DYNAMIC); +ENUM(eap_vendor_names_unknown, 0, 0, + "(0)", +); + +ENUM(eap_vendor_names_ms, EAP_MS_SOH, EAP_MS_CAPABILITES, + "MS-SOH", + "MS-CAP", +); + +/* + * See header + */ +enum_name_t* eap_type_get_names(pen_t vendor) +{ + switch (vendor) + { + case PEN_IETF: + return eap_type_short_names; + case PEN_MICROSOFT: + return eap_vendor_names_ms; + default: + return eap_vendor_names_unknown; + } +} + /* * See header */ diff --git a/src/libstrongswan/eap/eap.h b/src/libstrongswan/eap/eap.h index 73f6d7f275..40a4d3f6d4 100644 --- a/src/libstrongswan/eap/eap.h +++ b/src/libstrongswan/eap/eap.h @@ -25,8 +25,10 @@ typedef enum eap_code_t eap_code_t; typedef enum eap_type_t eap_type_t; +typedef enum eap_vendor_type_t eap_vendor_type_t; #include +#include /** * EAP code, type of an EAP message @@ -84,6 +86,21 @@ extern enum_name_t *eap_type_names; */ extern enum_name_t *eap_type_short_names; +/** + * Vendor specific types. Vendors itself are defined as pen_t. + */ +enum eap_vendor_type_t { + /** Microsoft Statement of Health */ + EAP_MS_SOH = 0x21, + /** Microsoft PEAP Capabilities */ + EAP_MS_CAPABILITES = 0x22, +}; + +/** + * Get the enum names for a specific vendor + */ +enum_name_t* eap_type_get_names(pen_t vendor); + /** * EAP packet format */