AnyConnect Secure Mobility Client 5.1.9.113

include/ClientIfcCommon.h

00001 /**************************************************************************
00002 *   Copyright (c) 2022-2023, 2025 Cisco Systems, Inc.
00003 *   All Rights Reserved. Cisco Highly Confidential.
00004 ***************************************************************************
00005 * 
00006 *   File:   ClientIfcCommon.h
00007 *   Author: Chris Fitzgerald
00008 *   Date:   03/2022
00009 * 
00010 ***************************************************************************
00011 *   Client Interface Common defines for the Client API.
00012 ***************************************************************************/
00013 #ifndef _CLIENTIFCCOMMON_
00014 #define _CLIENTIFCCOMMON_
00015 
00016 /*
00017 * Platforms capable of supporting SNAK.
00018 */
00019 #if defined(PLATFORM_WIN_APP)
00020   #define ANYCONNECT_USE_SNAK
00021 #endif
00022 
00023 /*
00024 * Aggregate the compiler directives that together identify desktop platforms into a single define.
00025 */
00026 #if (defined(_WIN32) || defined(PLATFORM_DARWIN) \
00027      || (defined(PLATFORM_LINUX) && !defined(ANYCONNECT_USE_SNAK) && !defined (PLATFORM_ANDROID))) \
00028      && !defined(PLATFORM_WIN_APP)
00029 #define PLATFORM_DESKTOP
00030 #endif
00031 
00032 /*
00033 * Platforms capable of supporting our standard interprocess communication mechanisms. At present,
00034 * all platforms on which the client is deployed support our standard IPC mechanisms.
00035 */
00036 #define INTERPROCESS_COMMUNICATION_SUPPORTED
00037 
00038 /*
00039 * Platforms capable of supporting host data objects.
00040 */
00041 #if defined(PLATFORM_ANDROID) || defined(PLATFORM_APPLE_SSLVPN)
00042   #define HOST_DATA_SUPPORTED
00043 #endif
00044 
00045 /*
00046 * Platforms capable of supporting manual import of PKCS12 certificates.
00047 */
00048 #if defined(PLATFORM_APPLE_SSLVPN) || defined(PLATFORM_ANDROID) || defined(PLATFORM_WIN_APP)
00049   #define MANUAL_PKCS12_IMPORT_SUPPORTED
00050 #endif
00051 
00052 /*
00053 * Platforms capable of supporting importing of program data (e.g. localization and profile).
00054 */
00055 #if defined(PLATFORM_ANDROID)
00056   #define PROGRAM_DATA_IMPORT_SUPPORTED
00057 #endif
00058 
00059 /*
00060 * Platforms capable of supporting prefilled connection credentials via URI handling or API calls.
00061 */
00062 #if defined(PLATFORM_ANDROID)
00063   #define CREDENTIAL_PREFILL_SUPPORTED
00064 #endif
00065 
00066 /*
00067 * Platforms capable of supporting dynamic update of the local policy.
00068 */
00069 #if defined(PLATFORM_ANDROID)
00070   #define DYNAMIC_UPDATE_LOCAL_POLICY
00071 #endif // PLATFORM_ANDROID
00072 
00073 #if defined(MANUAL_PKCS12_IMPORT_SUPPORTED)
00074   #if defined(HAVE_STDINT_H)
00075     #include <stdint.h>
00076   #else
00077     typedef unsigned char uint8_t;
00078   #endif
00079 #endif // MANUAL_PKCS12_IMPORT_SUPPORTED
00080 
00081 #if defined(PLATFORM_WIN_APP)
00082   typedef unsigned char uint8_t;
00083 #endif
00084 
00085 /*
00086 *  Platforms capable of supporting local policy directory changes.
00087 */
00088 #if defined(PLATFORM_DESKTOP) && !defined(DYNAMIC_UPDATE_LOCAL_POLICY)
00089   #define LOCAL_POLICY_DIR_CHANGE_SUPPORTED
00090 #endif
00091 
00092 /*
00093 *  Platforms capable of supporting profile file directory changes.
00094 */
00095 #if defined(PLATFORM_DESKTOP)
00096   #define PROFILE_FILES_DIR_CHANGE_SUPPORTED
00097 #endif
00098 
00099 /*
00100 *  Platforms capable of supporting event notifications to the VPN API.
00101 */
00102 #if defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)
00103   #define VPNAPI_EVENT_NOTIFICATION_SUPPORTED
00104 #endif
00105 
00106 /*
00107 *  Platforms capable of supporting the VPN API transmigration functionality.
00108 */
00109 #if (defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)) && \
00110     defined(VPNAPI_EVENT_NOTIFICATION_SUPPORTED)
00111   #define VPNAPI_TRANSMIGRATION_SUPPORTED
00112 #endif
00113 
00114 /*
00115 *  Platforms capable of supporting the user notifications of an updated local policy file or
00116 *  updated client profiles.
00117 */
00118 #if defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)
00119 //  #define VPNAPI_NOTIFY_USER_OF_POLICY_OR_PROFILE_CHANGE_SUPPORTED
00120 #endif
00121 
00122 #endif // _CLIENTIFCCOMMON_