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