|
wpa_supplicant / hostapd 2.0
|
00001 00010 #ifndef EAP_TLV_COMMON_H 00011 #define EAP_TLV_COMMON_H 00012 00013 /* EAP-TLV TLVs (draft-josefsson-ppext-eap-tls-eap-10.txt) */ 00014 #define EAP_TLV_RESULT_TLV 3 /* Acknowledged Result */ 00015 #define EAP_TLV_NAK_TLV 4 00016 #define EAP_TLV_ERROR_CODE_TLV 5 00017 #define EAP_TLV_CONNECTION_BINDING_TLV 6 00018 #define EAP_TLV_VENDOR_SPECIFIC_TLV 7 00019 #define EAP_TLV_URI_TLV 8 00020 #define EAP_TLV_EAP_PAYLOAD_TLV 9 00021 #define EAP_TLV_INTERMEDIATE_RESULT_TLV 10 00022 #define EAP_TLV_PAC_TLV 11 /* RFC 5422, Section 4.2 */ 00023 #define EAP_TLV_CRYPTO_BINDING_TLV 12 00024 #define EAP_TLV_CALLING_STATION_ID_TLV 13 00025 #define EAP_TLV_CALLED_STATION_ID_TLV 14 00026 #define EAP_TLV_NAS_PORT_TYPE_TLV 15 00027 #define EAP_TLV_SERVER_IDENTIFIER_TLV 16 00028 #define EAP_TLV_IDENTITY_TYPE_TLV 17 00029 #define EAP_TLV_SERVER_TRUSTED_ROOT_TLV 18 00030 #define EAP_TLV_REQUEST_ACTION_TLV 19 00031 #define EAP_TLV_PKCS7_TLV 20 00032 00033 #define EAP_TLV_RESULT_SUCCESS 1 00034 #define EAP_TLV_RESULT_FAILURE 2 00035 00036 #define EAP_TLV_TYPE_MANDATORY 0x8000 00037 #define EAP_TLV_TYPE_MASK 0x3fff 00038 00039 #ifdef _MSC_VER 00040 #pragma pack(push, 1) 00041 #endif /* _MSC_VER */ 00042 00043 struct eap_tlv_hdr { 00044 be16 tlv_type; 00045 be16 length; 00046 } STRUCT_PACKED; 00047 00048 struct eap_tlv_nak_tlv { 00049 be16 tlv_type; 00050 be16 length; 00051 be32 vendor_id; 00052 be16 nak_type; 00053 } STRUCT_PACKED; 00054 00055 struct eap_tlv_result_tlv { 00056 be16 tlv_type; 00057 be16 length; 00058 be16 status; 00059 } STRUCT_PACKED; 00060 00061 /* RFC 4851, Section 4.2.7 - Intermediate-Result TLV */ 00062 struct eap_tlv_intermediate_result_tlv { 00063 be16 tlv_type; 00064 be16 length; 00065 be16 status; 00066 /* Followed by optional TLVs */ 00067 } STRUCT_PACKED; 00068 00069 /* RFC 4851, Section 4.2.8 - Crypto-Binding TLV */ 00070 struct eap_tlv_crypto_binding_tlv { 00071 be16 tlv_type; 00072 be16 length; 00073 u8 reserved; 00074 u8 version; 00075 u8 received_version; 00076 u8 subtype; 00077 u8 nonce[32]; 00078 u8 compound_mac[20]; 00079 } STRUCT_PACKED; 00080 00081 struct eap_tlv_pac_ack_tlv { 00082 be16 tlv_type; 00083 be16 length; 00084 be16 pac_type; 00085 be16 pac_len; 00086 be16 result; 00087 } STRUCT_PACKED; 00088 00089 /* RFC 4851, Section 4.2.9 - Request-Action TLV */ 00090 struct eap_tlv_request_action_tlv { 00091 be16 tlv_type; 00092 be16 length; 00093 be16 action; 00094 } STRUCT_PACKED; 00095 00096 /* RFC 5422, Section 4.2.6 - PAC-Type TLV */ 00097 struct eap_tlv_pac_type_tlv { 00098 be16 tlv_type; /* PAC_TYPE_PAC_TYPE */ 00099 be16 length; 00100 be16 pac_type; 00101 } STRUCT_PACKED; 00102 00103 #ifdef _MSC_VER 00104 #pragma pack(pop) 00105 #endif /* _MSC_VER */ 00106 00107 #define EAP_TLV_CRYPTO_BINDING_SUBTYPE_REQUEST 0 00108 #define EAP_TLV_CRYPTO_BINDING_SUBTYPE_RESPONSE 1 00109 00110 #define EAP_TLV_ACTION_PROCESS_TLV 1 00111 #define EAP_TLV_ACTION_NEGOTIATE_EAP 2 00112 00113 #endif /* EAP_TLV_COMMON_H */ 00114
1.7.3