1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/*
* eap_peap.h
*
* Version: $Id$
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*
* Copyright 2003 Alan DeKok <aland@freeradius.org>
* Copyright 2006 The FreeRADIUS server project
*/
#ifndef _EAP_PEAP_H
#define _EAP_PEAP_H
RCSIDH(eap_peap_h, "$Id$")
#include "eap_tls.h"
#include <freeradius-devel/soh.h>
typedef enum {
PEAP_STATUS_INVALID,
PEAP_STATUS_SENT_TLV_SUCCESS,
PEAP_STATUS_SENT_TLV_FAILURE,
PEAP_STATUS_TUNNEL_ESTABLISHED,
PEAP_STATUS_INNER_IDENTITY_REQ_SENT,
PEAP_STATUS_PHASE2_INIT,
PEAP_STATUS_PHASE2,
PEAP_STATUS_WAIT_FOR_SOH_RESPONSE
} peap_status;
typedef enum {
PEAP_RESUMPTION_NO,
PEAP_RESUMPTION_YES,
PEAP_RESUMPTION_MAYBE
} peap_resumption;
typedef struct peap_tunnel_t {
VALUE_PAIR *username;
VALUE_PAIR *state;
VALUE_PAIR *accept_vps;
peap_status status;
bool home_access_accept;
int default_method;
bool copy_request_to_tunnel;
bool use_tunneled_reply;
bool proxy_tunneled_request_as_eap;
char const *virtual_server;
bool soh;
char const *soh_virtual_server;
VALUE_PAIR *soh_reply_vps;
peap_resumption session_resumption_state;
} peap_tunnel_t;
#define EAP_TLV_SUCCESS (1)
#define EAP_TLV_FAILURE (2)
#define EAP_TLV_ACK_RESULT (3)
#define PW_EAP_TLV 33
/*
* Process the PEAP portion of an EAP-PEAP request.
*/
rlm_rcode_t eappeap_process(eap_handler_t *handler, tls_session_t *tls_session, int auth_type_eap) CC_HINT(nonnull);
#endif /* _EAP_PEAP_H */
|