AnyConnect Secure Mobility Client  5.1.19.1862
ClientIfcCommon.h
1 /**************************************************************************
2 * Copyright (c) 2022-2023, 2025 Cisco Systems, Inc.
3 * All Rights Reserved. Cisco Highly Confidential.
4 ***************************************************************************
5 *
6 * File: ClientIfcCommon.h
7 * Author: Chris Fitzgerald
8 * Date: 03/2022
9 *
10 ***************************************************************************
11 * Client Interface Common defines for the Client API.
12 ***************************************************************************/
13 #ifndef _CLIENTIFCCOMMON_
14 #define _CLIENTIFCCOMMON_
15 
16 /*
17 * Platforms capable of supporting SNAK.
18 */
19 #if defined(PLATFORM_WIN_APP)
20  #define ANYCONNECT_USE_SNAK
21 #endif
22 
23 /*
24 * Platforms capable of supporting our standard interprocess communication mechanisms. At present,
25 * all platforms on which the client is deployed support our standard IPC mechanisms.
26 */
27 #define INTERPROCESS_COMMUNICATION_SUPPORTED
28 
29 /*
30 * Platforms capable of supporting host data objects.
31 */
32 #if defined(PLATFORM_ANDROID) || defined(PLATFORM_APPLE_SSLVPN)
33  #define HOST_DATA_SUPPORTED
34 #endif
35 
36 /*
37 * Platforms capable of supporting manual import of PKCS12 certificates.
38 */
39 #if defined(PLATFORM_APPLE_SSLVPN) || defined(PLATFORM_ANDROID) || defined(PLATFORM_WIN_APP)
40  #define MANUAL_PKCS12_IMPORT_SUPPORTED
41 #endif
42 
43 /*
44 * Platforms capable of supporting importing of program data (e.g. localization and profile).
45 */
46 #if defined(PLATFORM_ANDROID)
47  #define PROGRAM_DATA_IMPORT_SUPPORTED
48 #endif
49 
50 /*
51 * Platforms capable of supporting prefilled connection credentials via URI handling or API calls.
52 */
53 #if defined(PLATFORM_ANDROID)
54  #define CREDENTIAL_PREFILL_SUPPORTED
55 #endif
56 
57 /*
58 * Platforms capable of supporting dynamic update of the local policy.
59 */
60 #if defined(PLATFORM_ANDROID)
61  #define DYNAMIC_UPDATE_LOCAL_POLICY
62 #endif // PLATFORM_ANDROID
63 
64 #if defined(MANUAL_PKCS12_IMPORT_SUPPORTED)
65  #if defined(HAVE_STDINT_H)
66  #include <stdint.h>
67  #else
68  typedef unsigned char uint8_t;
69  #endif
70 #endif // MANUAL_PKCS12_IMPORT_SUPPORTED
71 
72 #if defined(PLATFORM_WIN_APP)
73  typedef unsigned char uint8_t;
74 #endif
75 
76 /*
77 * Platforms capable of supporting local policy directory changes.
78 */
79 #if defined(PLATFORM_DESKTOP) && !defined(DYNAMIC_UPDATE_LOCAL_POLICY)
80  #define LOCAL_POLICY_DIR_CHANGE_SUPPORTED
81 #endif
82 
83 /*
84 * Platforms capable of supporting profile file directory changes.
85 */
86 #if defined(PLATFORM_DESKTOP)
87  #define PROFILE_FILES_DIR_CHANGE_SUPPORTED
88 #endif
89 
90 /*
91 * Platforms capable of supporting event notifications to the VPN API.
92 */
93 #if defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)
94  #define VPNAPI_EVENT_NOTIFICATION_SUPPORTED
95 #endif
96 
97 /*
98 * Platforms capable of supporting the VPN API transmigration functionality.
99 */
100 #if (defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)) && \
101  defined(VPNAPI_EVENT_NOTIFICATION_SUPPORTED)
102  #define VPNAPI_TRANSMIGRATION_SUPPORTED
103 #endif
104 
105 /*
106 * Platforms capable of supporting the user notifications of an updated local policy file or
107 * updated client profiles.
108 */
109 #if defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)
110 // #define VPNAPI_NOTIFY_USER_OF_POLICY_OR_PROFILE_CHANGE_SUPPORTED
111 #endif
112 
113 #endif // _CLIENTIFCCOMMON_