The Android Open Source Project | 845e012 | 2009-03-03 19:31:34 -0800 | [diff] [blame] | 1 | /* |
| 2 | * EAP server/peer: Shared EAP definitions |
| 3 | * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi> |
| 4 | * |
| 5 | * This program is free software; you can redistribute it and/or modify |
| 6 | * it under the terms of the GNU General Public License version 2 as |
| 7 | * published by the Free Software Foundation. |
| 8 | * |
| 9 | * Alternatively, this software may be distributed under the terms of BSD |
| 10 | * license. |
| 11 | * |
| 12 | * See README and COPYING for more details. |
| 13 | */ |
| 14 | |
| 15 | #ifndef EAP_DEFS_H |
| 16 | #define EAP_DEFS_H |
| 17 | |
| 18 | /* RFC 3748 - Extensible Authentication Protocol (EAP) */ |
| 19 | |
| 20 | #ifdef _MSC_VER |
| 21 | #pragma pack(push, 1) |
| 22 | #endif /* _MSC_VER */ |
| 23 | |
| 24 | struct eap_hdr { |
| 25 | u8 code; |
| 26 | u8 identifier; |
| 27 | u16 length; /* including code and identifier; network byte order */ |
| 28 | /* followed by length-4 octets of data */ |
| 29 | } STRUCT_PACKED; |
| 30 | |
| 31 | #ifdef _MSC_VER |
| 32 | #pragma pack(pop) |
| 33 | #endif /* _MSC_VER */ |
| 34 | |
| 35 | enum { EAP_CODE_REQUEST = 1, EAP_CODE_RESPONSE = 2, EAP_CODE_SUCCESS = 3, |
| 36 | EAP_CODE_FAILURE = 4 }; |
| 37 | |
| 38 | /* EAP Request and Response data begins with one octet Type. Success and |
| 39 | * Failure do not have additional data. */ |
| 40 | |
| 41 | typedef enum { |
| 42 | EAP_TYPE_NONE = 0, |
| 43 | EAP_TYPE_IDENTITY = 1 /* RFC 3748 */, |
| 44 | EAP_TYPE_NOTIFICATION = 2 /* RFC 3748 */, |
| 45 | EAP_TYPE_NAK = 3 /* Response only, RFC 3748 */, |
| 46 | EAP_TYPE_MD5 = 4, /* RFC 3748 */ |
| 47 | EAP_TYPE_OTP = 5 /* RFC 3748 */, |
| 48 | EAP_TYPE_GTC = 6, /* RFC 3748 */ |
| 49 | EAP_TYPE_TLS = 13 /* RFC 2716 */, |
| 50 | EAP_TYPE_LEAP = 17 /* Cisco proprietary */, |
| 51 | EAP_TYPE_SIM = 18 /* RFC 4186 */, |
| 52 | EAP_TYPE_TTLS = 21 /* draft-ietf-pppext-eap-ttls-02.txt */, |
| 53 | EAP_TYPE_AKA = 23 /* RFC 4187 */, |
| 54 | EAP_TYPE_PEAP = 25 /* draft-josefsson-pppext-eap-tls-eap-06.txt */, |
| 55 | EAP_TYPE_MSCHAPV2 = 26 /* draft-kamath-pppext-eap-mschapv2-00.txt */, |
| 56 | EAP_TYPE_TLV = 33 /* draft-josefsson-pppext-eap-tls-eap-07.txt */, |
| 57 | EAP_TYPE_FAST = 43 /* draft-cam-winget-eap-fast-05.txt */, |
| 58 | EAP_TYPE_PAX = 46 /* RFC 4746 */, |
| 59 | EAP_TYPE_PSK = 47 /* RFC 4764 */, |
| 60 | EAP_TYPE_SAKE = 48 /* RFC 4763 */, |
| 61 | EAP_TYPE_EXPANDED = 254 /* RFC 3748 */, |
| 62 | EAP_TYPE_GPSK = 255 /* EXPERIMENTAL - type not yet allocated |
| 63 | * draft-ietf-emu-eap-gpsk-01.txt */ |
| 64 | } EapType; |
| 65 | |
| 66 | |
| 67 | /* SMI Network Management Private Enterprise Code for vendor specific types */ |
| 68 | enum { |
| 69 | EAP_VENDOR_IETF = 0 |
| 70 | }; |
| 71 | |
| 72 | #define EAP_MSK_LEN 64 |
| 73 | #define EAP_EMSK_LEN 64 |
| 74 | |
| 75 | #endif /* EAP_DEFS_H */ |