123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /*
- * EAP-TLV definitions (draft-josefsson-pppext-eap-tls-eap-10.txt)
- * Copyright (c) 2004-2008, Jouni Malinen <j@w1.fi>
- *
- * This software may be distributed under the terms of the BSD license.
- * See README for more details.
- */
- #ifndef EAP_TLV_COMMON_H
- #define EAP_TLV_COMMON_H
- /* EAP-TLV TLVs (draft-josefsson-ppext-eap-tls-eap-10.txt) */
- #define EAP_TLV_RESULT_TLV 3 /* Acknowledged Result */
- #define EAP_TLV_NAK_TLV 4
- #define EAP_TLV_ERROR_CODE_TLV 5
- #define EAP_TLV_CONNECTION_BINDING_TLV 6
- #define EAP_TLV_VENDOR_SPECIFIC_TLV 7
- #define EAP_TLV_URI_TLV 8
- #define EAP_TLV_EAP_PAYLOAD_TLV 9
- #define EAP_TLV_INTERMEDIATE_RESULT_TLV 10
- #define EAP_TLV_PAC_TLV 11 /* RFC 5422, Section 4.2 */
- #define EAP_TLV_CRYPTO_BINDING_TLV 12
- #define EAP_TLV_CALLING_STATION_ID_TLV 13
- #define EAP_TLV_CALLED_STATION_ID_TLV 14
- #define EAP_TLV_NAS_PORT_TYPE_TLV 15
- #define EAP_TLV_SERVER_IDENTIFIER_TLV 16
- #define EAP_TLV_IDENTITY_TYPE_TLV 17
- #define EAP_TLV_SERVER_TRUSTED_ROOT_TLV 18
- #define EAP_TLV_REQUEST_ACTION_TLV 19
- #define EAP_TLV_PKCS7_TLV 20
- #define EAP_TLV_RESULT_SUCCESS 1
- #define EAP_TLV_RESULT_FAILURE 2
- #define EAP_TLV_TYPE_MANDATORY 0x8000
- #define EAP_TLV_TYPE_MASK 0x3fff
- #ifdef _MSC_VER
- #pragma pack(push, 1)
- #endif /* _MSC_VER */
- struct eap_tlv_hdr {
- be16 tlv_type;
- be16 length;
- } STRUCT_PACKED;
- struct eap_tlv_nak_tlv {
- be16 tlv_type;
- be16 length;
- be32 vendor_id;
- be16 nak_type;
- } STRUCT_PACKED;
- struct eap_tlv_result_tlv {
- be16 tlv_type;
- be16 length;
- be16 status;
- } STRUCT_PACKED;
- /* RFC 4851, Section 4.2.7 - Intermediate-Result TLV */
- struct eap_tlv_intermediate_result_tlv {
- be16 tlv_type;
- be16 length;
- be16 status;
- /* Followed by optional TLVs */
- } STRUCT_PACKED;
- /* RFC 4851, Section 4.2.8 - Crypto-Binding TLV */
- struct eap_tlv_crypto_binding_tlv {
- be16 tlv_type;
- be16 length;
- u8 reserved;
- u8 version;
- u8 received_version;
- u8 subtype;
- u8 nonce[32];
- u8 compound_mac[20];
- } STRUCT_PACKED;
- struct eap_tlv_pac_ack_tlv {
- be16 tlv_type;
- be16 length;
- be16 pac_type;
- be16 pac_len;
- be16 result;
- } STRUCT_PACKED;
- /* RFC 4851, Section 4.2.9 - Request-Action TLV */
- struct eap_tlv_request_action_tlv {
- be16 tlv_type;
- be16 length;
- be16 action;
- } STRUCT_PACKED;
- /* RFC 5422, Section 4.2.6 - PAC-Type TLV */
- struct eap_tlv_pac_type_tlv {
- be16 tlv_type; /* PAC_TYPE_PAC_TYPE */
- be16 length;
- be16 pac_type;
- } STRUCT_PACKED;
- #ifdef _MSC_VER
- #pragma pack(pop)
- #endif /* _MSC_VER */
- #define EAP_TLV_CRYPTO_BINDING_SUBTYPE_REQUEST 0
- #define EAP_TLV_CRYPTO_BINDING_SUBTYPE_RESPONSE 1
- #define EAP_TLV_ACTION_PROCESS_TLV 1
- #define EAP_TLV_ACTION_NEGOTIATE_EAP 2
- #endif /* EAP_TLV_COMMON_H */
|