AnyConnect Secure Mobility Client  5.1.2.42
ClientIfcCommon.h
1 /**************************************************************************
2 * Copyright (c) 2022-2023 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 * Aggregate the compiler directives that together identify desktop platforms into a single define.
25 */
26 #if (defined(_WIN32) || defined(PLATFORM_DARWIN) \
27  || (defined(PLATFORM_LINUX) && !defined(ANYCONNECT_USE_SNAK) && !defined (PLATFORM_ANDROID))) \
28  && !defined(PLATFORM_WIN_APP)
29 #define PLATFORM_DESKTOP
30 #endif
31 
32 /*
33 * Platforms capable of supporting our standard interprocess communication mechanisms. At present,
34 * all platforms on which the client is deployed support our standard IPC mechanisms.
35 */
36 #define INTERPROCESS_COMMUNICATION_SUPPORTED
37 
38 /*
39 * Platforms capable of supporting host data objects.
40 */
41 #if defined(PLATFORM_ANDROID) || defined(PLATFORM_APPLE_SSLVPN)
42  #define HOST_DATA_SUPPORTED
43 #endif
44 
45 /*
46 * Platforms capable of supporting manual import of PKCS12 certificates.
47 */
48 #if defined(PLATFORM_APPLE_SSLVPN) || defined(PLATFORM_ANDROID) || defined(PLATFORM_WIN_APP)
49  #define MANUAL_PKCS12_IMPORT_SUPPORTED
50 #endif
51 
52 /*
53 * Platforms capable of supporting importing of program data (e.g. localization and profile).
54 */
55 #if defined(PLATFORM_ANDROID)
56  #define PROGRAM_DATA_IMPORT_SUPPORTED
57 #endif
58 
59 /*
60 * Platforms capable of supporting prefilled connection credentials via URI handling or API calls.
61 */
62 #if defined(PLATFORM_ANDROID)
63  #define CREDENTIAL_PREFILL_SUPPORTED
64 #endif
65 
66 /*
67 * Platforms capable of supporting dynamic update of the local policy.
68 */
69 #if defined(PLATFORM_ANDROID)
70  #define DYNAMIC_UPDATE_LOCAL_POLICY
71 #endif // PLATFORM_ANDROID
72 
73 #if defined(MANUAL_PKCS12_IMPORT_SUPPORTED)
74  #if defined(HAVE_STDINT_H)
75  #include <stdint.h>
76  #else
77  typedef unsigned char uint8_t;
78  #endif
79 #endif // MANUAL_PKCS12_IMPORT_SUPPORTED
80 
81 #if defined(PLATFORM_WIN_APP)
82  typedef unsigned char uint8_t;
83 #endif
84 
85 /*
86 * Platforms capable of supporting local policy directory changes.
87 */
88 #if defined(PLATFORM_DESKTOP) && !defined(DYNAMIC_UPDATE_LOCAL_POLICY)
89  #define LOCAL_POLICY_DIR_CHANGE_SUPPORTED
90 #endif
91 
92 /*
93 * Platforms capable of supporting profile file directory changes.
94 */
95 #if defined(PLATFORM_DESKTOP)
96  #define PROFILE_FILES_DIR_CHANGE_SUPPORTED
97 #endif
98 
99 /*
100 * Platforms capable of supporting event notifications to the VPN API.
101 */
102 #if defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)
103  #define VPNAPI_EVENT_NOTIFICATION_SUPPORTED
104 #endif
105 
106 #endif // _CLIENTIFCCOMMON_