blob: 8e8de1bb7b627baf718681a66f8c8e7d7244c26c [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#include "libdiameap.h"
40
41int diameap_user_get_userid(struct eap_user *user, u8* userid)
42{
43 TRACE_ENTRY("%p %p",user,userid);
44 if (user->userid == NULL)
45 return EINVAL;
46 userid = user->userid;
47 return 0;
48}
49
50int diameap_user_get_password(struct eap_user *user, u8* password,u16 * passwordlength)
51{
52 TRACE_ENTRY("%p %p",user,password);
53 if (user->password == NULL)
54 return EINVAL;
55 password = user->password;
56 *passwordlength = user->passwordLength;
57 return 0;
58}
59
60int diameap_user_get_passwordlength(struct eap_user *user, u16 * passwordlength)
61{
62 TRACE_ENTRY("%p %p",user,passwordlength);
63 if (user->password == NULL)
64 return EINVAL;
65 *passwordlength = user->passwordLength;
66 return 0;
67}
68
69int diameap_user_set_password(struct eap_user * user, u8 * password,
70 u16 passwordLength)
71{
72 TRACE_ENTRY("%p %p %hu",user,password,passwordLength);
73 if (password == NULL)
74 return EINVAL;
75 if (passwordLength < 1)
76 return EINVAL;
77 user->password = password;
78 user->passwordLength = passwordLength;
79 return 0;
80}
81
82int diameap_user_set_userid(struct eap_user * user, u8 * userid,
83 u16 useridLength)
84{
85 TRACE_ENTRY("%p %p %hu",user,userid,useridLength);
86 if (userid == NULL)
87 return EINVAL;
88 if (useridLength < 1)
89 return EINVAL;
90 user->userid = userid;
91 user->useridLength = useridLength;
92 return 0;
93}
94
95int diameap_user_get_methodid(struct eap_user *user, int * methodid)
96{
97 TRACE_ENTRY("%p %p",user,methodid);
98 if (user->password == NULL)
99 return EINVAL;
100 *methodid = user->methodId;
101 return 0;
102}
103
104int diameap_user_set_methodid(struct eap_user * user, int methodId)
105{
106 TRACE_ENTRY("%p %d",user,methodId);
107 if (user->password == NULL)
108 return EINVAL;
109 if (methodId < 0)
110 return EINVAL;
111 user->methodId = methodId;
112 return 0;
113}
114
115boolean diameap_user_issuccess(struct eap_user *user)
116{
117 TRACE_ENTRY("%p",user);
118 if (user->password == NULL)
119 return FALSE;
120 return user->success;
121}
122
123int diameap_user_set_success(struct eap_user * user)
124{
125 TRACE_ENTRY("%p",user);
126 if (user->password == NULL)
127 return EINVAL;
128 user->success = TRUE;
129 return 0;
130}
131
132int diameap_user_get_eap_method(struct eap_user *user, int id,
133 struct eap_method *method)
134{
135 TRACE_ENTRY("%p %d %p",user,id,method);
136 if (sizeof(user->methods) >= (id - 1))
137 *method = user->methods[id];
138 return 0;
139}
140
141int diameap_user_set_eap_method(struct eap_user * user, int id,
142 struct eap_method * method)
143{
144 TRACE_ENTRY("%p %d %p",user,id,method);
145 if (user->password == NULL)
146 return EINVAL;
147 if (sizeof(user->methods) < (id - 1))
148 return EINVAL;
149 user->methods[id].vendor = method->vendor;
150 user->methods[id].method = method->method;
151 return 0;
152}