]> git.ipfire.org Git - thirdparty/strongswan.git/blame - src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfile.java
Update copyright headers after acquisition by secunet
[thirdparty/strongswan.git] / src / frontends / android / app / src / main / java / org / strongswan / android / data / VpnProfile.java
CommitLineData
3d9127da 1/*
dda8b891 2 * Copyright (C) 2012-2019 Tobias Brunner
3d9127da
TB
3 * Copyright (C) 2012 Giuliano Grassi
4 * Copyright (C) 2012 Ralf Sager
19ef2aec
TB
5 *
6 * Copyright (C) secunet Security Networks AG
3d9127da
TB
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * for more details.
17 */
18
19package org.strongswan.android.data;
20
f3d8da76 21
800f881a
TB
22import android.text.TextUtils;
23
24import java.util.Arrays;
25import java.util.SortedSet;
26import java.util.TreeSet;
c4ab9af7
TB
27import java.util.UUID;
28
8d4eea53 29public class VpnProfile implements Cloneable
3d9127da 30{
f3d8da76
TB
31 /* While storing this as EnumSet would be nicer this simplifies storing it in a database */
32 public static final int SPLIT_TUNNELING_BLOCK_IPV4 = 1;
33 public static final int SPLIT_TUNNELING_BLOCK_IPV6 = 2;
a7060581
TB
34
35 public static final int FLAGS_SUPPRESS_CERT_REQS = 1 << 0;
36 public static final int FLAGS_DISABLE_CRL = 1 << 1;
37 public static final int FLAGS_DISABLE_OCSP = 1 << 2;
38 public static final int FLAGS_STRICT_REVOCATION = 1 << 3;
205ec47d 39 public static final int FLAGS_RSA_PSS = 1 << 4;
35819143 40 public static final int FLAGS_IPv6_TRANSPORT = 1 << 5;
f3d8da76 41
e09f4120 42 private String mName, mGateway, mUsername, mPassword, mCertificate, mUserCertificate;
43b33f07 43 private String mRemoteId, mLocalId, mExcludedSubnets, mIncludedSubnets, mSelectedApps;
dda8b891 44 private String mIkeProposal, mEspProposal, mDnsServers;
0204374e 45 private Integer mMTU, mPort, mSplitTunneling, mNATKeepAlive, mFlags;
43b33f07 46 private SelectedAppsHandling mSelectedAppsHandling = SelectedAppsHandling.SELECTED_APPS_DISABLE;
48f51d94 47 private VpnType mVpnType;
c4ab9af7 48 private UUID mUUID;
3d9127da
TB
49 private long mId = -1;
50
43b33f07
TB
51 public enum SelectedAppsHandling
52 {
53 SELECTED_APPS_DISABLE(0),
54 SELECTED_APPS_EXCLUDE(1),
55 SELECTED_APPS_ONLY(2);
56
57 private Integer mValue;
58
59 SelectedAppsHandling(int value)
60 {
61 mValue = value;
62 }
63
64 public Integer getValue()
65 {
66 return mValue;
67 }
68 }
69
c4ab9af7
TB
70 public VpnProfile()
71 {
72 this.mUUID = UUID.randomUUID();
73 }
74
3d9127da
TB
75 public long getId()
76 {
77 return mId;
78 }
79
80 public void setId(long id)
81 {
82 this.mId = id;
83 }
84
c4ab9af7
TB
85 public void setUUID(UUID uuid)
86 {
87 this.mUUID = uuid;
88 }
89
90 public UUID getUUID()
91 {
92 return mUUID;
93 }
94
3d9127da
TB
95 public String getName()
96 {
97 return mName;
98 }
99
100 public void setName(String name)
101 {
102 this.mName = name;
103 }
104
105 public String getGateway()
106 {
107 return mGateway;
108 }
109
110 public void setGateway(String gateway)
111 {
112 this.mGateway = gateway;
113 }
114
48f51d94
TB
115 public VpnType getVpnType()
116 {
117 return mVpnType;
118 }
119
120 public void setVpnType(VpnType type)
121 {
122 this.mVpnType = type;
123 }
124
24c22a3f
TB
125 public String getIkeProposal()
126 {
127 return mIkeProposal;
128 }
129
130 public void setIkeProposal(String proposal)
131 {
132 this.mIkeProposal = proposal;
133 }
134
135 public String getEspProposal()
136 {
137 return mEspProposal;
138 }
139
140 public void setEspProposal(String proposal)
141 {
142 this.mEspProposal = proposal;
143 }
144
dda8b891
TB
145 public String getDnsServers()
146 {
147 return mDnsServers;
148 }
149
150 public void setDnsServers(String dns)
151 {
152 this.mDnsServers = dns;
153 }
154
3d9127da
TB
155 public String getUsername()
156 {
157 return mUsername;
158 }
159
160 public void setUsername(String username)
161 {
162 this.mUsername = username;
163 }
164
165 public String getPassword()
166 {
167 return mPassword;
168 }
169
170 public void setPassword(String password)
171 {
172 this.mPassword = password;
173 }
174
175 public String getCertificateAlias()
176 {
177 return mCertificate;
178 }
179
e09f4120 180 public void setCertificateAlias(String alias)
3d9127da 181 {
e09f4120
TB
182 this.mCertificate = alias;
183 }
184
185 public String getUserCertificateAlias()
186 {
187 return mUserCertificate;
188 }
189
190 public void setUserCertificateAlias(String alias)
191 {
192 this.mUserCertificate = alias;
3d9127da
TB
193 }
194
89149dbb
TB
195 public String getLocalId()
196 {
197 return mLocalId;
198 }
199
200 public void setLocalId(String localId)
201 {
202 this.mLocalId = localId;
203 }
204
205 public String getRemoteId()
206 {
207 return mRemoteId;
208 }
209
210 public void setRemoteId(String remoteId)
211 {
212 this.mRemoteId = remoteId;
213 }
214
7e2a6c4a
TB
215 public Integer getMTU()
216 {
217 return mMTU;
218 }
219
220 public void setMTU(Integer mtu)
221 {
222 this.mMTU = mtu;
223 }
224
5b11855f
TB
225 public Integer getPort()
226 {
227 return mPort;
228 }
229
230 public void setPort(Integer port)
231 {
232 this.mPort = port;
233 }
234
a2830231
TB
235 public Integer getNATKeepAlive()
236 {
237 return mNATKeepAlive;
238 }
239
240 public void setNATKeepAlive(Integer keepalive)
241 {
242 this.mNATKeepAlive = keepalive;
243 }
244
13ead876
TB
245 public void setExcludedSubnets(String excludedSubnets)
246 {
247 this.mExcludedSubnets = excludedSubnets;
248 }
249
250 public String getExcludedSubnets()
251 {
252 return mExcludedSubnets;
253 }
254
a9875259
TB
255 public void setIncludedSubnets(String includedSubnets)
256 {
257 this.mIncludedSubnets = includedSubnets;
258 }
800f881a 259
a9875259
TB
260 public String getIncludedSubnets()
261 {
262 return mIncludedSubnets;
263 }
264
43b33f07
TB
265 public void setSelectedApps(String selectedApps)
266 {
267 this.mSelectedApps = selectedApps;
268 }
269
800f881a
TB
270 public void setSelectedApps(SortedSet<String> selectedApps)
271 {
272 this.mSelectedApps = selectedApps.size() > 0 ? TextUtils.join(" ", selectedApps) : null;
273 }
274
43b33f07
TB
275 public String getSelectedApps()
276 {
277 return mSelectedApps;
278 }
279
800f881a
TB
280 public SortedSet<String> getSelectedAppsSet()
281 {
282 TreeSet<String> set = new TreeSet<>();
283 if (!TextUtils.isEmpty(mSelectedApps))
284 {
285 set.addAll(Arrays.asList(mSelectedApps.split("\\s+")));
286 }
287 return set;
288 }
289
43b33f07
TB
290 public void setSelectedAppsHandling(SelectedAppsHandling selectedAppsHandling)
291 {
292 this.mSelectedAppsHandling = selectedAppsHandling;
293 }
294
295 public void setSelectedAppsHandling(Integer value)
296 {
297 mSelectedAppsHandling = SelectedAppsHandling.SELECTED_APPS_DISABLE;
298 for (SelectedAppsHandling handling : SelectedAppsHandling.values())
299 {
300 if (handling.mValue.equals(value))
301 {
302 mSelectedAppsHandling = handling;
303 break;
304 }
305 }
306 }
307
308 public SelectedAppsHandling getSelectedAppsHandling()
309 {
310 return mSelectedAppsHandling;
311 }
312
f3d8da76
TB
313 public Integer getSplitTunneling()
314 {
315 return mSplitTunneling;
316 }
317
318 public void setSplitTunneling(Integer splitTunneling)
319 {
320 this.mSplitTunneling = splitTunneling;
321 }
322
0204374e
TB
323 public Integer getFlags()
324 {
ebf369c4 325 return mFlags == null ? 0 : mFlags;
0204374e
TB
326 }
327
328 public void setFlags(Integer flags)
329 {
330 this.mFlags = flags;
331 }
332
3d9127da
TB
333 @Override
334 public String toString()
335 {
336 return mName;
337 }
c6b736b9
TB
338
339 @Override
340 public boolean equals(Object o)
341 {
342 if (o != null && o instanceof VpnProfile)
343 {
c4ab9af7
TB
344 VpnProfile other = (VpnProfile)o;
345 if (this.mUUID != null && other.getUUID() != null)
346 {
347 return this.mUUID.equals(other.getUUID());
348 }
349 return this.mId == other.getId();
c6b736b9
TB
350 }
351 return false;
352 }
8d4eea53
TB
353
354 @Override
355 public VpnProfile clone()
356 {
357 try
358 {
359 return (VpnProfile)super.clone();
360 }
361 catch (CloneNotSupportedException e)
362 {
363 throw new AssertionError();
364 }
365 }
3d9127da 366}