xref: /freebsd/contrib/wpa/src/eap_common/eap_ttls.h (revision 0bfd163f522701b486e066fa2e56624c02f5081a)
139beb93cSSam Leffler /*
239beb93cSSam Leffler  * EAP server/peer: EAP-TTLS (RFC 5281)
339beb93cSSam Leffler  * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
439beb93cSSam Leffler  *
5*f05cddf9SRui Paulo  * This software may be distributed under the terms of the BSD license.
6*f05cddf9SRui Paulo  * See README for more details.
739beb93cSSam Leffler  */
839beb93cSSam Leffler 
939beb93cSSam Leffler #ifndef EAP_TTLS_H
1039beb93cSSam Leffler #define EAP_TTLS_H
1139beb93cSSam Leffler 
1239beb93cSSam Leffler struct ttls_avp {
1339beb93cSSam Leffler 	be32 avp_code;
1439beb93cSSam Leffler 	be32 avp_length; /* 8-bit flags, 24-bit length;
1539beb93cSSam Leffler 			  * length includes AVP header */
1639beb93cSSam Leffler 	/* optional 32-bit Vendor-ID */
1739beb93cSSam Leffler 	/* Data */
1839beb93cSSam Leffler };
1939beb93cSSam Leffler 
2039beb93cSSam Leffler struct ttls_avp_vendor {
2139beb93cSSam Leffler 	be32 avp_code;
2239beb93cSSam Leffler 	be32 avp_length; /* 8-bit flags, 24-bit length;
2339beb93cSSam Leffler 			  * length includes AVP header */
2439beb93cSSam Leffler 	be32 vendor_id;
2539beb93cSSam Leffler 	/* Data */
2639beb93cSSam Leffler };
2739beb93cSSam Leffler 
2839beb93cSSam Leffler #define AVP_FLAGS_VENDOR 0x80
2939beb93cSSam Leffler #define AVP_FLAGS_MANDATORY 0x40
3039beb93cSSam Leffler 
3139beb93cSSam Leffler #define AVP_PAD(start, pos) \
3239beb93cSSam Leffler do { \
3339beb93cSSam Leffler 	int __pad; \
3439beb93cSSam Leffler 	__pad = (4 - (((pos) - (start)) & 3)) & 3; \
3539beb93cSSam Leffler 	os_memset((pos), 0, __pad); \
3639beb93cSSam Leffler 	pos += __pad; \
3739beb93cSSam Leffler } while (0)
3839beb93cSSam Leffler 
3939beb93cSSam Leffler 
4039beb93cSSam Leffler /* RFC 2865 */
4139beb93cSSam Leffler #define RADIUS_ATTR_USER_NAME 1
4239beb93cSSam Leffler #define RADIUS_ATTR_USER_PASSWORD 2
4339beb93cSSam Leffler #define RADIUS_ATTR_CHAP_PASSWORD 3
4439beb93cSSam Leffler #define RADIUS_ATTR_REPLY_MESSAGE 18
4539beb93cSSam Leffler #define RADIUS_ATTR_CHAP_CHALLENGE 60
4639beb93cSSam Leffler #define RADIUS_ATTR_EAP_MESSAGE 79
4739beb93cSSam Leffler 
4839beb93cSSam Leffler /* RFC 2548 */
4939beb93cSSam Leffler #define RADIUS_VENDOR_ID_MICROSOFT 311
5039beb93cSSam Leffler #define RADIUS_ATTR_MS_CHAP_RESPONSE 1
5139beb93cSSam Leffler #define RADIUS_ATTR_MS_CHAP_ERROR 2
5239beb93cSSam Leffler #define RADIUS_ATTR_MS_CHAP_NT_ENC_PW 6
5339beb93cSSam Leffler #define RADIUS_ATTR_MS_CHAP_CHALLENGE 11
5439beb93cSSam Leffler #define RADIUS_ATTR_MS_CHAP2_RESPONSE 25
5539beb93cSSam Leffler #define RADIUS_ATTR_MS_CHAP2_SUCCESS 26
5639beb93cSSam Leffler #define RADIUS_ATTR_MS_CHAP2_CPW 27
5739beb93cSSam Leffler 
5839beb93cSSam Leffler #define EAP_TTLS_MSCHAPV2_CHALLENGE_LEN 16
5939beb93cSSam Leffler #define EAP_TTLS_MSCHAPV2_RESPONSE_LEN 50
6039beb93cSSam Leffler #define EAP_TTLS_MSCHAP_CHALLENGE_LEN 8
6139beb93cSSam Leffler #define EAP_TTLS_MSCHAP_RESPONSE_LEN 50
6239beb93cSSam Leffler #define EAP_TTLS_CHAP_CHALLENGE_LEN 16
6339beb93cSSam Leffler #define EAP_TTLS_CHAP_PASSWORD_LEN 16
6439beb93cSSam Leffler 
6539beb93cSSam Leffler #endif /* EAP_TTLS_H */
66