APIs using Android Interface Definition Language (AIDL)
The API for the ISAC Android allows a third-party application to establish a VPN with the Ivanti Secure Access Service. In addition to adding, changing, and deleting VPN connections, the API lets you check the current API version, verify whether a VPN already exists, and add a certificate to the Android keystore.
To access the API, the package name and hash of signing certificate of the calling application must be submitted to Ivanti Support (through a support ticket) for incorporation into Android Ivanti Secure Access Client. Support ticket must mention "AIDL Request" in the description/subject line of the ticket so that Support Team passes the request to ISAC Engineering Team.
The client stores an MD5 checksum of the following string:
<package name> + ":" + <signing signature>
If the application has multiple signing signatures, only one of the signatures is needed.
Package name used is: net.pulsesecure.pulsesecure
The AIDL file used to define the client interface is named IVpnProfile.aidl and contains the following:
package net.pulsesecure.pulsesecure.vpnprofile;
//Package name updated in API version 3.
interface IVpnProfile {
int doCommand(String xml); //deprecated
int getVersion();
// Create a profile using data provided
int createConnection(in String jsonProfile);
// Delete a profile
int removeConnection(String profileName);
// List all profiles
List<String> getAllConnections();
// Access a profile's connection data
String getConnection(String profileName);
// Start and stop a VPN connection for a given profile
int startConnection(String profileName);
int stopConnection(String profileName);
// State info for this profile
int getState(String profileName);
String getErrorString(String profileName);
}
This file must be included in the src/ directory used to compile the application. For more information about the AIDL, see http://developer.android.com/guide/components/aidl.html