xref: /freebsd/contrib/wpa/src/eap_common/eap_common.h (revision c1d255d3ffdbe447de3ab875bf4e7d7accc5bfc5)
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