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.

Copy
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