139beb93cSSam Leffler /* 239beb93cSSam Leffler * EAP common peer/server definitions 35b9c547cSRui Paulo * Copyright (c) 2004-2014, Jouni Malinen <j@w1.fi> 439beb93cSSam Leffler * 5f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6f05cddf9SRui Paulo * See README for more details. 739beb93cSSam Leffler */ 839beb93cSSam Leffler 939beb93cSSam Leffler #ifndef EAP_COMMON_H 1039beb93cSSam Leffler #define EAP_COMMON_H 1139beb93cSSam Leffler 1239beb93cSSam Leffler #include "wpabuf.h" 1339beb93cSSam Leffler 145b9c547cSRui Paulo struct erp_tlvs { 155b9c547cSRui Paulo const u8 *keyname; 165b9c547cSRui Paulo const u8 *domain; 175b9c547cSRui Paulo 185b9c547cSRui Paulo u8 keyname_len; 195b9c547cSRui Paulo u8 domain_len; 205b9c547cSRui Paulo }; 215b9c547cSRui Paulo 22f05cddf9SRui Paulo int eap_hdr_len_valid(const struct wpabuf *msg, size_t min_payload); 23*c1d255d3SCy Schubert const u8 * eap_hdr_validate(int vendor, enum eap_type eap_type, 2439beb93cSSam Leffler const struct wpabuf *msg, size_t *plen); 25*c1d255d3SCy Schubert struct wpabuf * eap_msg_alloc(int vendor, enum eap_type type, 26*c1d255d3SCy Schubert size_t payload_len, u8 code, u8 identifier); 2739beb93cSSam Leffler void eap_update_len(struct wpabuf *msg); 2839beb93cSSam Leffler u8 eap_get_id(const struct wpabuf *msg); 29*c1d255d3SCy Schubert enum eap_type eap_get_type(const struct wpabuf *msg); 305b9c547cSRui Paulo int erp_parse_tlvs(const u8 *pos, const u8 *end, struct erp_tlvs *tlvs, 315b9c547cSRui Paulo int stop_at_keyname); 3239beb93cSSam Leffler 3339beb93cSSam Leffler #endif /* EAP_COMMON_H */ 34