blob: f798a882cfbfefec667bdc720f1089786d22b3d3 [file] [log] [blame]
Brian Waters13d96012017-12-08 16:53:31 -06001/*****************************************************************************************************
2 * Software License Agreement (BSD License)
3 * Author : Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
4 *
5 * Copyright (c) 2009-2010, Souheil Ben Ayed, Teraoka Laboratory of Keio University, and the WIDE Project
6 * All rights reserved.
7 *
8 * Redistribution and use of this software in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 *
18 * 3. All advertising materials mentioning features or use of this software
19 * must display the following acknowledgement:
20 * This product includes software developed by Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>.
21 *
22 * 4. Neither the name of Souheil Ben Ayed, Teraoka Laboratory of Keio University or the WIDE Project nor the
23 * names of its contributors may be used to endorse or promote products
24 * derived from this software without specific prior written permission.
25 *
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY
27 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
30 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
32 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
33 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 *****************************************************************************************************/
37
38
39#ifndef DIAMEAP_USER_H_
40#define DIAMEAP_USER_H_
41
42#define MAXMETHODS 8 /*Maximum number of allowed methods */
43
44#define MAXPROPOSEDMETHODS 8 /*Maximum number of allowed proposed methods */
45
46#define VENDOR_IETF 0
47
48/*EAP User structure */
49struct eap_user
50{
51 int id; /*user's identifier*/
52 u8 *userid; /*user's identity*/
53 u16 useridLength; /*User's identity length*/
54 u8 *password; /*user's password*/
55 u16 passwordLength; /*Length of password*/
56
57 int methodId; /*Current method Id*/
58 struct eap_method
59 {
60 u32 vendor;
61 eap_type method;
62 } methods[MAXMETHODS]; /*used method for authentication*/
63
64 struct proposed_eap_method
65 {
66 u32 vendor;
67 eap_type method;
68 } proposedmethods[MAXPROPOSEDMETHODS]; /* methods proposed throw NAK response or EXPANDED NAK*/
69 int pmethods; /*Number of accepted methods from peer's proposed methods*/
70
71 eap_type proposed_eap_method; /* Proposed EAP Method*/
72 u32 proposed_eap_method_vendor;
73 boolean success; /* Set to TRUE if User is authenticated successfully */
74};
75
76boolean check_user_identity;
77
78int diameap_user_get_password(struct eap_user *user, u8 * password,u16 *length);
79
80int diameap_user_get_userid(struct eap_user *user, u8 * userid);
81
82int diameap_user_set_password(struct eap_user * user, u8 * password, u16 Length);
83
84int diameap_user_set_userid(struct eap_user * user, u8 * userid, u16 Length);
85
86int diameap_user_get_methodid(struct eap_user *user,int *methodId);
87
88int diameap_user_set_methodid(struct eap_user * user, int methodId);
89
90boolean diameap_user_issuccess(struct eap_user *user);
91
92int diameap_user_set_success(struct eap_user * user);
93
94int diameap_user_get_eap_method(struct eap_user *user, int id, struct eap_method * eapmethod);
95
96int diameap_user_set_eap_method(struct eap_user * user, int id, struct eap_method * method);
97
98#endif /* DIAMEAP_USER_H_ */