File: radius.h

package info (click to toggle)
openvpn-auth-radius 2.1-12
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,824 kB
  • sloc: cpp: 9,043; perl: 323; makefile: 46
file content (155 lines) | stat: -rwxr-xr-x 5,499 bytes parent folder | download | duplicates (7)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/*
 *  RadiusClass -- An C++-Library for radius authentication 
 *					and accounting.
 * 
 *  Copyright (C) 2005 EWE TEL GmbH/Ralf Luebben <ralfluebben@gmx.de>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2
 *  as published by the Free Software Foundation.
 *
 *  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 (see the file COPYING included with this
 *  distribution); if not, write to the Free Software Foundation, Inc.,
 *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
#ifndef _RADIUS_H_
#define _RADIUS_H_


#include <stdio.h>

#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/select.h>

/** The datatype for sending and receiving data to and from the network */ 
typedef	unsigned char	Octet;

/** Some length definitions */
#define	RADIUS_PACKET_AUTHENTICATOR_LEN	16
#define	RADIUS_MAX_PACKET_LEN			4096
#define RADIUS_PACKET_IDENTIFIER_LEN	1
#define MD5_DIGEST_LENGTH 16

/** The radius packet codes */

#define	ACCESS_REQUEST		1
#define	ACCESS_ACCEPT		2
#define	ACCESS_REJECT		3
#define	ACCOUNTING_REQUEST	4
#define	ACCOUNTING_RESPONSE	5
#define	ACCESS_CHALLENGE	11
#define	STATUS_SERVER		12	
#define	STATUS_CLIENT		13	
#define	RESERVED			255	

/**	The radius attribute types */

#define	ATTRIB_User_Name				1 //string
#define	ATTRIB_User_Password			2 //string
#define	ATTRIB_CHAP_Password			3 //string
#define	ATTRIB_NAS_IP_Address			4 //ipaddr
#define	ATTRIB_NAS_Port					5 //integer
#define	ATTRIB_Service_Type				6 //enum
#define	ATTRIB_Framed_Protocol			7 //enum
#define	ATTRIB_Framed_IP_Address		8 //ipaddr
#define	ATTRIB_Framed_IP_Netmask		9 //ipaddr
#define	ATTRIB_Framed_Routing			10 //enum
#define	ATTRIB_Filter_Id				11 //string
#define	ATTRIB_Framed_MTU				12 //integer
#define	ATTRIB_Framed_Compression		13 //enum
#define	ATTRIB_Login_IP_Host			14 //ipaddr
#define	ATTRIB_Login_Service			15 //enum
#define	ATTRIB_Login_TCP_Port			16 //integer
#define	ATTRIB_Reply_Message			18 //string
#define	ATTRIB_Callback_Number			19 //string
#define	ATTRIB_Callback_Id				20 //string
#define	ATTRIB_Framed_Route				22 //string
#define	ATTRIB_Framed_IPX_Network		23 //integer
#define	ATTRIB_State					24 //string
#define	ATTRIB_Class					25 //string
#define	ATTRIB_Vendor_Specific			26 //string -> vendor
#define	ATTRIB_Session_Timeout			27 //integer
#define	ATTRIB_Idle_Timeout				28 //enum
#define	ATTRIB_Termination_Action		29 //enum
#define	ATTRIB_Called_Station_Id		30 //string
#define	ATTRIB_Calling_Station_Id		31 //string
#define	ATTRIB_NAS_Identifier			32 //string
#define	ATTRIB_Proxy_State				33 //string
#define	ATTRIB_Login_LAT_Service		34 //string
#define	ATTRIB_Login_LAT_Node			35 //string
#define	ATTRIB_Login_LAT_Group			36 //string
#define	ATTRIB_Framed_AppleTalk_Link	37 //integer
#define	ATTRIB_Framed_AppleTalk_Network	38 //integer
#define	ATTRIB_Framed_AppleTalk_Zone	39 //string
#define ATTRIB_Acct_Status_Type			40 //enum
#define ATTRIB_Acct_Delay				41 //integer
#define ATTRIB_Acct_Input_Octets        42 //integer
#define ATTRIB_Acct_Output_Octets		43 //integer
#define ATTRIB_Acct_Session_ID			44 //string
#define ATTRIB_Acct_Authentic			45 //enum
#define ATTRIB_Acct_Session_Time		46 //integer
#define ATTRIB_Acct_Input_Packets		47 //integer
#define ATTRIB_Acct_Output_Packets		48 //integer
#define ATTRIB_Acct_Terminate_Cause		49 //enum
#define ATTRIB_Acct_Multi_Session_ID	50 //string
#define ATTRIB_Acct_Link_Count			51 //interger

#define ATTRIB_Acct_Input_Gigawords		52 //integer
#define ATTRIB_Acct_Output_Gigawords   	53 //integer
#define ATTRIB_Event_Timestamp         	55 //date


#define	ATTRIB_CHAP_Challenge			60 //string
#define	ATTRIB_NAS_Port_Type			61 //enum
#define	ATTRIB_Port_Limit				62 //interger
#define	ATTRIB_Login_LAT_Port			63 //enum

#define ATTRIB_Acct_Tunnel_Connection	68 //string

#define ATTRIB_ARAP_Password           	70 //  string
#define ATTRIB_ARAP_Features           	71 //string
#define ATTRIB_ARAP_Zone_Access        	72 //integer
#define ATTRIB_ARAP_Security           	73 //integer
#define ATTRIB_ARAP_Security_Data      	74 //string
#define ATTRIB_Password_Retry          	75 //integer
#define ATTRIB_Prompt                  	76 //integer
#define ATTRIB_Connect_Info				77 //string
#define ATTRIB_Configuration_Token		78 //string
#define ATTRIB_EAP_Message				79 //octets
#define ATTRIB_Message_Authenticator	80 //octets
#define ATTRIB_ARAP_Challenge_Response	84 //string	# 10 octets
#define ATTRIB_Acct_Interim_Interval   	85 //integer
#define ATTRIB_NAS_Port_Id				87 //string
#define ATTRIB_Framed_Pool				88 //string
#define ATTRIB_NAS_IPv6_Address			95 //ipv6addr
#define ATTRIB_Framed_Interface_Id		96 //ifid
#define ATTRIB_Framed_IPv6_Prefix		97 //octets # ipv6prefix
#define ATTRIB_Login_IPv6_Host			98 //ipv6addr
#define ATTRIB_Framed_IPv6_Route		99 //string
#define ATTRIB_Framed_IPv6_Pool			100//string


#define	VALUE_Service_Type_Call_Check	"10"
#define	VALUE_Service_Type_Framed_User	"2"





#endif //_RADIUS_H_