AnyConnect Secure Mobility Client 5.1.10.233
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* 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/*
107* Platforms capable of supporting the VPN API transmigration functionality.
108*/
109#if (defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)) && \
110 defined(VPNAPI_EVENT_NOTIFICATION_SUPPORTED)
111 #define VPNAPI_TRANSMIGRATION_SUPPORTED
112#endif
113
114/*
115* Platforms capable of supporting the user notifications of an updated local policy file or
116* updated client profiles.
117*/
118#if defined(LOCAL_POLICY_DIR_CHANGE_SUPPORTED) || defined(PROFILE_FILES_DIR_CHANGE_SUPPORTED)
119// #define VPNAPI_NOTIFY_USER_OF_POLICY_OR_PROFILE_CHANGE_SUPPORTED
120#endif
121
122#endif // _CLIENTIFCCOMMON_