blob: 75d0c3293dd45b8f27e944e7e83aa0bd6eb5ed00 (
plain)
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
|
// IOpenVPNAPIService.aidl
package de.blinkt.openvpn.api;
import de.blinkt.openvpn.api.APIVpnProfile;
import de.blinkt.openvpn.api.IOpenVPNStatusCallback;
import android.content.Intent;
import android.os.ParcelFileDescriptor;
interface IOpenVPNAPIService {
List<APIVpnProfile> getProfiles();
void startProfile (String profileUUID);
/** Use a profile with all certificates etc. embedded,
* old version which does not return the UUID of the addded profile, see
* below for a version that return the UUID on add */
boolean addVPNProfile (String name, String config);
/** start a profile using a config as inline string. Make sure that all needed data is inlined,
* e.g., using <ca>...</ca> or <auth-user-data>...</auth-user-data>
* See the OpenVPN manual page for more on inlining files */
void startVPN (in String inlineconfig);
/** This permission framework is used to avoid confused deputy style attack to the VPN
* calling this will give null if the app is allowed to use the external API and an Intent
* that can be launched to request permissions otherwise */
Intent prepare (in String packagename);
/** Used to trigger to the Android VPN permission dialog (VPNService.prepare()) in advance,
* if this return null OpenVPN for ANdroid already has the permissions otherwise you can start the returned Intent
* to let OpenVPN for Android request the permission */
Intent prepareVPNService ();
/* Disconnect the VPN */
void disconnect();
/* Pause the VPN (same as using the pause feature in the notifcation bar) */
void pause();
/* Resume the VPN (same as using the pause feature in the notifcation bar) */
void resume();
/**
* Registers to receive OpenVPN Status Updates
*/
void registerStatusCallback(in IOpenVPNStatusCallback cb);
/**
* Remove a previously registered callback interface.
*/
void unregisterStatusCallback(in IOpenVPNStatusCallback cb);
/** Remove a profile by UUID */
void removeProfile (in String profileUUID);
/** Request a socket to be protected as a VPN socket would be. Useful for creating
* a helper socket for an app controlling OpenVPN
* Before calling this function you should make sure OpenVPN for Android may actually
* this function by checking if prepareVPNService returns null; */
boolean protectSocket(in ParcelFileDescriptor fd);
/** Use a profile with all certificates etc. embedded */
APIVpnProfile addNewVPNProfile (String name, boolean userEditable, String config);
}
|