2
* EAP peer method: EAP-TLV (draft-josefsson-pppext-eap-tls-eap-07.txt)
3
* Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
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.
9
* Alternatively, this software may be distributed under the terms of BSD
12
* See README and COPYING for more details.
18
/* EAP-TLV TLVs (draft-josefsson-ppext-eap-tls-eap-07.txt) */
19
#define EAP_TLV_RESULT_TLV 3 /* Acknowledged Result */
20
#define EAP_TLV_NAK_TLV 4
21
/* Note: RFC 4851, Section 4.2.4 defines 5 as Error TLV */
22
#define EAP_TLV_CRYPTO_BINDING_TLV 5
23
#define EAP_TLV_CONNECTION_BINDING_TLV 6
24
#define EAP_TLV_VENDOR_SPECIFIC_TLV 7
25
#define EAP_TLV_URI_TLV 8
26
#define EAP_TLV_EAP_PAYLOAD_TLV 9
27
#define EAP_TLV_INTERMEDIATE_RESULT_TLV 10
28
#define EAP_TLV_PAC_TLV 11 /* draft-cam-winget-eap-fast-provisioning-04.txt,
30
#define EAP_TLV_CRYPTO_BINDING_TLV_ 12 /* RFC 4851, Section 4.2.8 */
31
/* draft-cam-winget-eap-fast-provisiong-04.txt, Section 4.3.1 */
32
#define EAP_TLV_SERVER_TRUSTED_ROOT_TLV 18
33
#define EAP_TLV_REQUEST_ACTION_TLV 19 /* RFC 4851, Section 4.2.9 */
34
/* draft-cam-winget-eap-fast-provisiong-04.txt, Section 4.3.2 */
35
#define EAP_TLV_PKCS7_TLV 20
37
#define EAP_TLV_RESULT_SUCCESS 1
38
#define EAP_TLV_RESULT_FAILURE 2
40
#define EAP_TLV_TYPE_MANDATORY 0x8000
51
struct eap_tlv_nak_tlv {
58
struct eap_tlv_result_tlv {
64
/* RFC 4851, Section 4.2.7 - Intermediate-Result TLV */
65
struct eap_tlv_intermediate_result_tlv {
69
/* Followed by optional TLVs */
72
/* RFC 4851, Section 4.2.8 - Crypto-Binding TLV */
73
struct eap_tlv_crypto_binding__tlv {
84
struct eap_tlv_pac_ack_tlv {
92
/* RFC 4851, Section 4.2.9 - Request-Action TLV */
93
struct eap_tlv_request_action_tlv {
99
/* draft-cam-winget-eap-fast-provisiong-04.txt, Section 4.2.6 - PAC-Type TLV */
100
struct eap_tlv_pac_type_tlv {
101
be16 tlv_type; /* PAC_TYPE_PAC_TYPE */
108
#endif /* _MSC_VER */
110
#define EAP_TLV_CRYPTO_BINDING_SUBTYPE_REQUEST 0
111
#define EAP_TLV_CRYPTO_BINDING_SUBTYPE_RESPONSE 1
113
#define EAP_TLV_ACTION_PROCESS_TLV 1
114
#define EAP_TLV_ACTION_NEGOTIATE_EAP 2
117
u8 * eap_tlv_build_nak(int id, u16 nak_type, size_t *resp_len);
118
u8 * eap_tlv_build_result(int id, u16 status, size_t *resp_len);
119
int eap_tlv_process(struct eap_sm *sm, struct eap_method_ret *ret,
120
const struct eap_hdr *hdr, u8 **resp, size_t *resp_len);
122
#endif /* EAP_TLV_H */