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