16d49e1aeSJan Lentfer /* 26d49e1aeSJan Lentfer * EAP common peer/server definitions 3*a1157835SDaniel Fojt * Copyright (c) 2004-2014, Jouni Malinen <j@w1.fi> 46d49e1aeSJan Lentfer * 53ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license. 63ff40c12SJohn Marino * See README for more details. 76d49e1aeSJan Lentfer */ 86d49e1aeSJan Lentfer 96d49e1aeSJan Lentfer #ifndef EAP_COMMON_H 106d49e1aeSJan Lentfer #define EAP_COMMON_H 116d49e1aeSJan Lentfer 126d49e1aeSJan Lentfer #include "wpabuf.h" 136d49e1aeSJan Lentfer 14*a1157835SDaniel Fojt struct erp_tlvs { 15*a1157835SDaniel Fojt const u8 *keyname; 16*a1157835SDaniel Fojt const u8 *domain; 17*a1157835SDaniel Fojt 18*a1157835SDaniel Fojt u8 keyname_len; 19*a1157835SDaniel Fojt u8 domain_len; 20*a1157835SDaniel Fojt }; 21*a1157835SDaniel Fojt 223ff40c12SJohn Marino int eap_hdr_len_valid(const struct wpabuf *msg, size_t min_payload); 236d49e1aeSJan Lentfer const u8 * eap_hdr_validate(int vendor, EapType eap_type, 246d49e1aeSJan Lentfer const struct wpabuf *msg, size_t *plen); 256d49e1aeSJan Lentfer struct wpabuf * eap_msg_alloc(int vendor, EapType type, size_t payload_len, 266d49e1aeSJan Lentfer u8 code, u8 identifier); 276d49e1aeSJan Lentfer void eap_update_len(struct wpabuf *msg); 286d49e1aeSJan Lentfer u8 eap_get_id(const struct wpabuf *msg); 296d49e1aeSJan Lentfer EapType eap_get_type(const struct wpabuf *msg); 30*a1157835SDaniel Fojt int erp_parse_tlvs(const u8 *pos, const u8 *end, struct erp_tlvs *tlvs, 31*a1157835SDaniel Fojt int stop_at_keyname); 326d49e1aeSJan Lentfer 336d49e1aeSJan Lentfer #endif /* EAP_COMMON_H */ 34