18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * EAP server/peer: EAP-TTLS (RFC 5281) 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef EAP_TTLS_H 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAP_TTLS_H 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct ttls_avp { 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt be32 avp_code; 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt be32 avp_length; /* 8-bit flags, 24-bit length; 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * length includes AVP header */ 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /* optional 32-bit Vendor-ID */ 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /* Data */ 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct ttls_avp_vendor { 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt be32 avp_code; 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt be32 avp_length; /* 8-bit flags, 24-bit length; 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * length includes AVP header */ 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt be32 vendor_id; 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /* Data */ 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define AVP_FLAGS_VENDOR 0x80 298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define AVP_FLAGS_MANDATORY 0x40 308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define AVP_PAD(start, pos) \ 328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtdo { \ 338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int __pad; \ 348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt __pad = (4 - (((pos) - (start)) & 3)) & 3; \ 358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt os_memset((pos), 0, __pad); \ 368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt pos += __pad; \ 378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt} while (0) 388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* RFC 2865 */ 418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_USER_NAME 1 428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_USER_PASSWORD 2 438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_CHAP_PASSWORD 3 448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_REPLY_MESSAGE 18 458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_CHAP_CHALLENGE 60 468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_EAP_MESSAGE 79 478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* RFC 2548 */ 498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_VENDOR_ID_MICROSOFT 311 508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_MS_CHAP_RESPONSE 1 518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_MS_CHAP_ERROR 2 528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_MS_CHAP_NT_ENC_PW 6 538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_MS_CHAP_CHALLENGE 11 548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_MS_CHAP2_RESPONSE 25 558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_MS_CHAP2_SUCCESS 26 568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define RADIUS_ATTR_MS_CHAP2_CPW 27 578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAP_TTLS_MSCHAPV2_CHALLENGE_LEN 16 598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAP_TTLS_MSCHAPV2_RESPONSE_LEN 50 608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAP_TTLS_MSCHAP_CHALLENGE_LEN 8 618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAP_TTLS_MSCHAP_RESPONSE_LEN 50 628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAP_TTLS_CHAP_CHALLENGE_LEN 16 638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAP_TTLS_CHAP_PASSWORD_LEN 16 648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* EAP_TTLS_H */ 66