AnyConnect Secure Mobility Client  4.8.02045
api.h File Reference
#include "GlobalEnums.h"

Go to the source code of this file.

Macros

#define UNICODE
 
#define _UNICODE
 
#define tstring   std::wstring
 
#define tostream   std::wostream
 
#define VPN_VPNAPI   __declspec(dllimport)
 
#define OUT
 

Enumerations

enum  MessageType {
  MsgType_Error, MsgType_Alert, MsgType_Warn, MsgType_Info,
  MsgType_Status
}
 
enum  SDITokenType { SDITT_NONE, SDITT_HARDWARE, SDITT_SOFTWARE }
 
enum  VPNState {
  CONNECTED = STATE_CONNECTED, DISCONNECTED = STATE_DISCONNECTED, CONNECTING = STATE_CONNECTING, DISCONNECTING = STATE_DISCONNECTING,
  RECONNECTING = STATE_RECONNECTING, PAUSING = STATE_PAUSING, PAUSED = STATE_PAUSED, SSOPOLLING = STATE_SSOPOLLING,
  UNKNOWN = ~0
}
 
enum  VPNSubState {
  VPNSS_NORMAL = VCSS_NORMAL, VPNSS_INDEFINITE_DELAY = VCSS_INDEFINITE_DELAY, VPNSS_SESSION_EXPIRING = VCSS_SESSION_EXPIRING, VPNSS_MT_DISCONNECTED_DISABLED = VCSS_MT_DISCONNECTED_DISABLED,
  VPNSS_MT_DISCONNECTED_TRUSTED_NW = VCSS_MT_DISCONNECTED_TRUSTED_NW, VPNSS_MT_DISCONNECTED_USER_TUNNEL_ACTIVE = VCSS_MT_DISCONNECTED_USER_TUNNEL_ACTIVE, VPNSS_MT_DISCONNECTED_LAUNCH_FAILED = VCSS_MT_DISCONNECTED_LAUNCH_FAILED, VPNSS_MT_DISCONNECTED_CONNECT_FAILED = VCSS_MT_DISCONNECTED_CONNECT_FAILED,
  VPNSS_MT_DISCONNECTED_BAD_VPN_CONFIG = VCSS_MT_DISCONNECTED_BAD_VPN_CONFIG, VPNSS_MT_DISCONNECTED_SW_UP_PENDING = VCSS_MT_DISCONNECTED_SW_UP_PENDING
}
 
enum  WMHint {
  MINIMIZE, OPEN, QUIT, REFRESHHOSTNAMES,
  REFRESHPREFS, SHOWCONNECTING, CLOSECREDENTIALPOPUP
}
 
enum  WMHintReason {
  SECONDGUISTART, PROXYREQUEST, SERVICEFAILURE, DISCONNECT,
  SERVICESTOPPED, CONNECT, REASONUNKNOWN
}
 
enum  ConnectPromptType {
  CERTIFICATE, CREDENTIALS, PROXY, MANUAL_PKCS12_IMPORT,
  STATUS, SINGLESIGNON, SINGLELOGOUT, LEGACY_SINGLESIGNON
}
 
enum  PromptType {
  Prompt_Input, Prompt_Password, Prompt_Banner, Prompt_Combo,
  Prompt_Header, Prompt_Hidden, Prompt_CheckBox, Prompt_SSO
}
 
enum  PreferenceId {
  ServiceDisable, CertificateStoreOverride, CertificateStore, CertificateStoreMac,
  ShowPreConnectMessage, AutoConnectOnStart, MinimizeOnConnect, LocalLanAccess,
  DisableCaptivePortalDetection, AutoReconnect, AutoReconnectBehavior, SuspendOnConnectedStandby,
  UseStartBeforeLogon, AutoUpdate, RSASecurIDIntegration, WindowsLogonEnforcement,
  WindowsVPNEstablishment, LinuxLogonEnforcement, LinuxVPNEstablishment, ProxySettings,
  AllowLocalProxyConnections, PPPExclusion, PPPExclusionServerIP, AutomaticVPNPolicy,
  TrustedNetworkPolicy, UntrustedNetworkPolicy, TrustedDNSDomains, TrustedDNSServers,
  TrustedHttpsServerList, AlwaysOn, ConnectFailurePolicy, AllowCaptivePortalRemediation,
  CaptivePortalRemediationTimeout, ApplyLastVPNLocalResourceRules, AllowVPNDisconnect, EnableScripting,
  TerminateScriptOnNextEvent, EnablePostSBLOnConnectScript, AutomaticCertSelection, RetainVpnOnLogoff,
  UserEnforcement, DeviceLockRequired, DeviceLockMaximumTimeoutMinutes, DeviceLockMinimumPasswordLength,
  DeviceLockPasswordComplexity, EnableAutomaticServerSelection, AutoServerSelectionImprovement, AutoServerSelectionSuspendTime,
  AuthenticationTimeout, SafeWordSofTokenIntegration, AllowIPsecOverSSL, ClearSmartcardPin,
  IPProtocolSupport, CaptivePortalRemediationBrowserFailover, AllowManualHostInput, BlockUntrustedServers,
  PublicProxyServerAddress, CertificatePinning, UnknownPreference
}
 
enum  PreferenceScope { User, Global, UserAndGlobal }
 
enum  OperatingMode {
  FIPS = (1 << 0), StartBeforeLogon = (1 << 1), GUI = (1 << 2), TrustedNetworkDetection = (1 << 3),
  AlwaysOnVpn = (1 << 4), NetworkIssue = (1 << 5), Quarantined = (1 << 6), AutomaticHeadendSelection = (1 << 7),
  DisconnectAllowed = (1 << 8), VPNDisabled = (1 << 9), SCEPMode = (1 << 10), OnTrustedNetwork = (1 << 11),
  ManualHostInputAllowed = (1 << 12), ErrorSuppressed = (1 << 13), StrictMode = (1 << 14), CLI = (1 << 15),
  Management = (1 << 16)
}
 
enum  VPNError {
  VPNSuccess = 0, VPNError_Generic_FatalError = 1, VPNError_Connection_Error = 100, VPNError_Connection_InvalidGroupURL,
  VPNError_Network_Error = 200, VPNError_Authentication_Error = 300, VPNError_Authentication_DAP_Terminate, VPNError_ClientCertificate_UnknownError = 400,
  VPNError_ClientCertificate_Missing, VPNError_ClientCertificate_Expired, VPNError_ClientCertificate_NotYetValid, VPNError_ServerCertificate_UnknownError = 500,
  VPNError_ServerCertificate_Expired, VPNError_ServerCertificate_NotYetValid
}
 
enum  CertAuthMode { CertAuth_Automatic, CertAuth_Disabled, CertAuth_Manual }
 
enum  CertificateType { CertificateType_Client, CertificateType_SystemTrusted, CertificateType_Server }
 
enum  CertConfirmReason {
  CertConfirmReason_Unspecified, CertConfirmReason_NameMismatch, CertConfirmReason_Expired, CertConfirmReason_NotValidYet,
  CertConfirmReason_UntrustedSource, CertConfirmReason_InvalidUse, CertConfirmReason_Revoked, CertConfirmReason_Malformed,
  CertConfirmReason_NotFipsCompliant, CertConfirmReason_InvalidateDate, CertConfirmReason_SignatureAlgorithm, CertConfirmReason_KeySize
}
 
enum  UserResponseError {
  UserResponseError_None, UserResponseError_Unspecified, UserResponseError_BadServerCert, UserResponseError_SsoNavigation,
  UserResponseError_SsoGettingCookie, UserResponseError_SsoTimeout, UserResponseError_SsoMissingDependency, UserResponseError_SsoClientCertRequest
}
 
enum  ClientType { ClientType_GUI, ClientType_GUI_SBL, ClientType_CLI, ClientType_MGMT }
 

Detailed Description

This file contains some basic compiler definitions as well as common enums.

Macro Definition Documentation

◆ tstring

#define tstring   std::wstring

std::wstring my wstring description

Enumeration Type Documentation

◆ CertAuthMode

Enumerator
CertAuth_Automatic 

Will try each available certificate in succession until authentication is obtained or we run out of available certificates

CertAuth_Disabled 

Will disable Certificate Based Authentication

CertAuth_Manual 

Will only use preconfigured certificate to attempt Certificate Based Authentication

597 {
598  CertAuth_Automatic, /**< Will try each available certificate in succession
599  until authentication is obtained or we run out of
600  available certificates */
601  CertAuth_Disabled, /**< Will disable Certificate Based Authentication */
602  CertAuth_Manual /**< Will only use preconfigured certificate to attempt
603  Certificate Based Authentication */
604 };

◆ ConnectPromptType

provides an indication of the type of credential data being requested.

Enumerator
CERTIFICATE 

Indicates a certificate-only type of connection and would not normally be sent to client unless a post-authentication banner is to be displayed.

CREDENTIALS 

Indicates that the user is to be prompted for authentication credentials

PROXY 

Indicates that the user is to be prompted for proxy-authentication credentials

MANUAL_PKCS12_IMPORT 

Indicates that the user is to be prompted for passwords related to PKCS12 import

STATUS 

Indicates that status messages are to be displayed to the user

SINGLESIGNON 

Indicates an embedded browser based single sign-on authentication method is requested.

SINGLELOGOUT 

Indicates an embedded browser based single sign-on authentication logout is requested.

LEGACY_SINGLESIGNON 

(deprecated) Indicates a browser based single sign-on authentication method is requested.

212 {
213  CERTIFICATE, /**< Indicates a certificate-only type of connection and
214  would not normally be sent to client unless a
215  post-authentication banner is to be displayed. */
216  CREDENTIALS, /**< Indicates that the user is to be prompted for authentication
217  credentials */
218  PROXY, /**< Indicates that the user is to be prompted for
219  proxy-authentication credentials */
220  MANUAL_PKCS12_IMPORT, /**< Indicates that the user is to be prompted for passwords related
221  to PKCS12 import*/
222  STATUS, /**< Indicates that status messages are to be displayed to
223  the user*/
224  SINGLESIGNON, /**< Indicates an embedded browser based single sign-on authentication method is requested. */
225  SINGLELOGOUT, /**< Indicates an embedded browser based single sign-on authentication logout is requested. */
226  LEGACY_SINGLESIGNON, /**< (deprecated) Indicates a browser based single sign-on authentication method is requested. */
227 };

◆ MessageType

MessageType presents a level of severity associated with messages that are sent to the API. The severity can be useful for deciding how a message is to be shown. A UI might decide based on type to show a message as a modal dialog versus a message written to the status area for an existing UI.

Enumerator
MsgType_Error 

Issue usually requiring user to acknowledge

MsgType_Alert 

Warning message that needs to be shown to user.

MsgType_Warn 

Less severe, not required to be shown to user

MsgType_Info 

General message providing status, progress, etc.

MsgType_Status 

Can be used to indicate unexpected tunnel status change.

94 {
95  MsgType_Error, /**< Issue usually requiring user to acknowledge */
96  MsgType_Alert, /**< Warning message that needs to be shown to user. */
97  MsgType_Warn, /**< Less severe, not required to be shown to user */
98  MsgType_Info, /**< General message providing status, progress, etc. */
99  MsgType_Status /**< Can be used to indicate unexpected tunnel status change. */
100 };

◆ OperatingMode

Indicates the client mode of operation. Unlike tunneling mode or other mutually exclusive modes, client operating modes are independent settings, several of which can be turned on simultaneously.

Enumerator
FIPS 

Indicates that the client is running in FIPS mode.

StartBeforeLogon 

Indicates that the client is running in Start Before Login mode.

GUI 

Indicates that the client is a GUI client.

TrustedNetworkDetection 

Indicates that a Trusted Network Detection policy is enabled for the client.

AlwaysOnVpn 

Indicates that the Always On policy is enabled for the client.

NetworkIssue 

For user notifications only. Indication by API to the UI that there is a network condition.

Quarantined 

Indicates that the VPN session is being Quarantined by the secure gateway.

AutomaticHeadendSelection 

Indicates that Automatic Headend is enabled.

DisconnectAllowed 

Indicates that the user is allowed to disconnect the VPN based on policy.

VPNDisabled 

Indicates that the VPN service is to be marked as disabled.

SCEPMode 

Indicates that the client is performing a SCEP cert enrollment.

OnTrustedNetwork 

Indicates that at last check, the client detected that it was on a trusted network.

ManualHostInputAllowed 

Indicates that the user is allowed to add a new host by typing its name in the VPN edit box.

ErrorSuppressed 

Indicates a connection error has been returned fronm the agent, but was suppressed to warning to prevent popup dialog in the UI.

StrictMode 

Indicates that the client is running in strict certificate trust mode.

CLI 

Indicates that the client is a CLI client.

Management 

Indicates that the client is strictly used for initiating a management tunnel.

502 {
503  FIPS = (1 << 0), /**< Indicates that the client is
504  running in FIPS mode. */
505  StartBeforeLogon = (1 << 1), /**< Indicates that the client is
506  running in Start Before Login
507  mode. */
508  GUI = (1 << 2), /**< Indicates that the client is
509  a GUI client. */
510  TrustedNetworkDetection = (1 << 3), /**< Indicates that a Trusted Network
511  Detection policy is enabled for
512  the client. */
513  AlwaysOnVpn = (1 << 4), /**< Indicates that the Always On
514  policy is enabled for the client. */
515  NetworkIssue = (1 << 5), /**< For user notifications only.
516  Indication by API to the UI that
517  there is a network condition. */
518  Quarantined = (1 << 6), /**< Indicates that the VPN session is being
519  Quarantined by the secure gateway. */
520  AutomaticHeadendSelection= (1 << 7), /**< Indicates that Automatic Headend
521  is enabled. */
522  DisconnectAllowed = (1 << 8), /**< Indicates that the user is allowed
523  to disconnect the VPN based on
524  policy. */
525  VPNDisabled = (1 << 9), /**< Indicates that the VPN service is
526  to be marked as disabled. */
527  SCEPMode = (1 << 10), /**< Indicates that the client is
528  performing a SCEP cert enrollment. */
529  OnTrustedNetwork = (1 << 11), /**< Indicates that at last check, the
530  client detected that it was on
531  a trusted network. */
532  ManualHostInputAllowed = (1 << 12), /**< Indicates that the user is allowed
533  to add a new host by typing its name
534  in the VPN edit box. */
535  ErrorSuppressed = (1 << 13), /**< Indicates a connection error has
536  been returned fronm the agent, but
537  was suppressed to warning to
538  prevent popup dialog in the UI. */
539  StrictMode = (1 << 14), /**< Indicates that the client is
540  running in strict certificate trust mode. */
541  CLI = (1 << 15), /**< Indicates that the client is
542  a CLI client. */
543  Management = (1 << 16) /**< Indicates that the client is strictly
544  used for initiating a management tunnel. */
545 };

◆ PreferenceId

Enumerator
ServiceDisable 

This preference disable the VPN service.
If more than one profile exists and any one profile has VPN enabled, then it will be enabled. False is the default.

CertificateStoreOverride 

This preference will trigger an alternate authentication sequence in the API. The preference is only settable by an administrator.

CertificateStore 

This preference indicates which Windows certificate store AnyConnect should look in for
certificates. The options are All, Machine and User with a default of All. The preference is only settable by an administrator.

CertificateStoreMac 

This preference indicates which macOS keychain AnyConnect should look in for certificates. The options are All, System and Login with a default of All. The preference is only settable by an administrator.

ShowPreConnectMessage 

The ShowPreConnectMessage preference gives the administrator the ability to display an AnyConnect startup banner message. The message will appear only once per AnyConnect program start. The
preference is only settable by an administrator.

AutoConnectOnStart 

This preference allows the user to select whether to establish a connection automatically on startup or not.

MinimizeOnConnect 

This preference allows the user to select if the GUI should minimize when the connection is established

LocalLanAccess 

This preference will provide a mechanism where the user can disable access to their Local LAN.

DisableCaptivePortalDetection 

This preference will provide a mechanism where the user can disable captive portal detection.

AutoReconnect 

First control of the reconnect behavior. If the client becomes disconnected for any reason, a reconnect attempt is made.

AutoReconnectBehavior 

Second control of the reconnect behavior. When coming out of suspend/hibernate/standby mode. Options are disconnect on suspend and reconnect after suspend.

SuspendOnConnectedStandby 

This setting allows to control whether the VPN tunnel is suspended when the system enters the Connected Standby mode. It applies only to Windows 8 and above.

UseStartBeforeLogon 

This preference allows an administrator to control the use of the Start Before Logon feature. The preference can be set to true (on) or false (off).

AutoUpdate 

Once the Downloader has loaded the profile, it can check the AutoUpdate preference to see if updates are either disabled or enabled

RSASecurIDIntegration 

This preference will enable the administrator and possibly end user to select the preferred method of managing their SDI PIN and PASSCODE interactions. Options are Automatic (default), SoftwareTokens and HardwareTokens.

WindowsLogonEnforcement 

This preference allows an administrator to control if more than one user may be logged into the client PC during the VPN connection (Windows only).

WindowsVPNEstablishment 

This preference allows an administrator to control whether or not remote users may initiate a VPN connection (Windows only).

LinuxLogonEnforcement 

This preference allows an administrator to control if more than one user may be logged into the client PC during the VPN connection (Linux only).

LinuxVPNEstablishment 

This preference allows an administrator to control whether or not remote users may initiate a VPN connection (Linux only).

ProxySettings 

This preference allows an administrator to control how user's proxy setups are handled.

AllowLocalProxyConnections 

This preference allows the administrator to control whether to allow establishing a connection through a local proxy.

PPPExclusion 

This preference allows an administrator to control the policy used to exclude routes to PPP servers when connecting over L2TP or PPTP. Options are Automatic (default), Disable, and Override.

PPPExclusionServerIP 

When PPPExclusion is set to Manual, the value of this preference allows an end user to specify the address of a PPP server that should be excluded from tunnel traffic.

AutomaticVPNPolicy 

This preference allows an administrator to define a policy to automatically manage when a VPN connection should be started or stopped.

TrustedNetworkPolicy 

This preference allows an administrator to define a policy for users in trusted networks. The options are: Disconnect or DoNothing.

UntrustedNetworkPolicy 

This preference allows an administrator to define a policy for users in untrusted networks. The options are: Connect or DoNothing.

TrustedDNSDomains 

This preference defines a list of comma separated DNS suffixes that a network interface in a trusted network might have.

TrustedDNSServers 

This preference defines a list of comma separated DNS servers that a network interface in a trusted network might have.

TrustedHttpsServerList 

This preference defines a list of comma separated https servers reachable only via a trusted network.

AlwaysOn 

This preference governs VPN reestablishment after interruptions

ConnectFailurePolicy 

This preference gives the network administrator the ability to dictate the network access allowed by the client endpoint device following a VPN connection establishment failure. It is a component of AlwaysOn

AllowCaptivePortalRemediation 

This preference gives the network administrator the ability to dictate the network access allowed by the client endpoint device following a VPN connection establishment failure it is a component of AlwaysOn

CaptivePortalRemediationTimeout 

This preference allows the network administrator the ability to impose a time limit for captive portal remediation when the ConnectFailurePolicy value is Closed It is a component of AlwaysOn

ApplyLastVPNLocalResourceRules 

This preference gives the network administrator the ability to allow split routes and firewall rules to be applied following a VPN connection establishment failure when the ConnectFailurePolicy value is Closed It is a component of AlwaysOn

AllowVPNDisconnect 

During Always On, this specifies that the user is allowed to disconnect the VPN session.

EnableScripting 

This preference allows an administrator to enable scripting (on connect or on disconnect).

TerminateScriptOnNextEvent 

This preference dictates whether or not AnyConnect will terminate a running script process if a transition to another scriptable event occurs.

EnablePostSBLOnConnectScript 

This preference is used to control whether or not the OnConnect script will be launched from the desktop GUI when a tunnel has been established via SBL.

AutomaticCertSelection 

This preference dictates whether or not to disable the default automatic certificate selection for user certificates. If disabled, a certificate selection dialog is displayed. This only applies if the GUI is enabled and not SBL. This only applies to Windows (not WinMobile).

RetainVpnOnLogoff 

First control of the logoff behavior. This preference allows an administrator to control if the VPN is terminated or retained after user logs off.

UserEnforcement 

Second control of the logoff behavior. When the VPN connection has been retained after user logged off. Controls what user can log in and keep the VPN connection. Options are same user only and any user.

DeviceLockRequired 

This preference indicates whether or not a Windows Mobile device must be configured with a password or PIN prior to establishing a VPN connection. This configuration is only valid on Windows Mobile devices that use the Microsoft Default Local Authentication Provider (LAP).

DeviceLockMaximumTimeoutMinutes 

When set to a non-negative number, this preference specifies the maximum number of minutes a device can be inactive before device lock takes into effect. (WM5/WM5AKU2+)

DeviceLockMinimumPasswordLength 

When set to a non-negative number, this preference specifies that any PIN/password used for device lock must be equal to or longer than the specified value, in characters. This setting must be pushed down to the mobile device by syncing with an Exchange server before it can be enforced. (WM5AKU2+)

DeviceLockPasswordComplexity 

This preference checks whether or not the password belongs to one of three subtypes: alpha, pin, strong

EnableAutomaticServerSelection 

Automatic server selection will automatically select the optimal secure gateway for the endpoint

AutoServerSelectionImprovement 

During a reconnection attempt after a system resume, this setting specifies the minimum estimated performance improvement required to justify transitioning a user to a new server This value represents percentage in 0..100

AutoServerSelectionSuspendTime 

During a reconnection attempt after a system resume, this specifies the minimum time a user must have been suspended in order to justify a new server selection calculation. Unit is hours

AuthenticationTimeout 

Time, in seconds, that the client waits for authentication to be completed.

SafeWordSofTokenIntegration 

This preference will enable the administrator and possibly the end user to enable SafeWord SofToken integration. Options are Enabled (true) and Disabled (false - default).

AllowIPsecOverSSL 

if 'true' then tunneling of IPSEC over SSL is made possible with help from the ASA.

ClearSmartcardPin 

This preference controls whether the smartcard pin will be cleared on a successful connection

IPProtocolSupport 

This preference controls which protocol(s) will be allowed for the connection

CaptivePortalRemediationBrowserFailover 

This preference is applicable to enhanced captive portal remediation and specifies whether the user is allowed to opt for an external browser for remediation, as opposed to the AnyConnect browser.

AllowManualHostInput 

This preference specifies whether the user is allowed to type a new hostname in the VPN edit box.

BlockUntrustedServers 

This preference specifies whether the user wants to allow for connections to secure gateways with certificate errors.

PublicProxyServerAddress 

This preference specifies the public proxy server address to be used. This number is in the format ServerAddr:ServerPort (ex. 101.89.85.444:8080) or just the FQDN.

CertificatePinning 

This preference specifies whether Certificate Pinning check should be performed during server certificate verification.

262 {
263  ServiceDisable, /**< This preference disable the VPN service.
264  If more than one profile exists and any one
265  profile has VPN enabled, then it will be
266  enabled. False is the default. */
267  CertificateStoreOverride,/**< This preference will trigger an alternate
268  authentication sequence in the API. The
269  preference is only settable by an
270  administrator. */
271  CertificateStore, /**< This preference indicates which Windows certificate
272  store AnyConnect should look in for
273  certificates. The options are All, Machine
274  and User with a default of All. The preference
275  is only settable by an administrator. */
276  CertificateStoreMac, /**< This preference indicates which macOS keychain
277  AnyConnect should look in for certificates.
278  The options are All, System and Login with a default of All.
279  The preference is only settable by an administrator. */
280  ShowPreConnectMessage, /**< The ShowPreConnectMessage preference gives the
281  administrator the ability to display an AnyConnect
282  startup banner message. The message will appear
283  only once per AnyConnect program start. The
284  preference is only settable by an
285  administrator. */
286  AutoConnectOnStart, /**< This preference allows the user to select
287  whether to establish a connection automatically
288  on startup or not. */
289  MinimizeOnConnect, /**< This preference allows the user to select if
290  the GUI should minimize when the connection is
291  established */
292  LocalLanAccess, /**< This preference will provide a mechanism where
293  the user can disable access to their Local LAN. */
294  DisableCaptivePortalDetection, /**<This preference will provide a mechanism where
295  the user can disable captive portal detection.*/
296  AutoReconnect, /**< First control of the reconnect behavior. If the
297  client becomes disconnected for any reason, a
298  reconnect attempt is made. */
299  AutoReconnectBehavior, /**< Second control of the reconnect behavior. When
300  coming out of suspend/hibernate/standby mode.
301  Options are disconnect on suspend and reconnect
302  after suspend. */
303  SuspendOnConnectedStandby, /**< This setting allows to control whether the VPN tunnel
304  is suspended when the system enters the Connected Standby
305  mode. It applies only to Windows 8 and above. */
306  UseStartBeforeLogon, /**< This preference allows an administrator to
307  control the use of the Start Before Logon
308  feature. The preference can be set to true (on)
309  or false (off). */
310  AutoUpdate, /**< Once the Downloader has loaded the profile, it
311  can check the AutoUpdate preference to see if
312  updates are either disabled or enabled */
313  RSASecurIDIntegration, /**< This preference will enable the administrator
314  and possibly end user to select the preferred
315  method of managing their SDI PIN and PASSCODE
316  interactions. Options are Automatic (default),
317  SoftwareTokens and HardwareTokens. */
318  WindowsLogonEnforcement,/**< This preference allows an administrator to
319  control if more than one user may be logged into
320  the client PC during the VPN connection (Windows
321  only). */
322  WindowsVPNEstablishment,/**< This preference allows an administrator to
323  control whether or not remote users may initiate
324  a VPN connection (Windows only). */
325  LinuxLogonEnforcement, /**< This preference allows an administrator to
326  control if more than one user may be logged into
327  the client PC during the VPN connection (Linux
328  only). */
329  LinuxVPNEstablishment, /**< This preference allows an administrator to
330  control whether or not remote users may initiate
331  a VPN connection (Linux only). */
332  ProxySettings, /**< This preference allows an administrator to
333  control how user's proxy setups are handled.*/
334  AllowLocalProxyConnections, /**< This preference allows the administrator to control
335  whether to allow establishing a connection through
336  a local proxy. */
337  PPPExclusion, /**< This preference allows an administrator to control
338  the policy used to exclude routes to
339  PPP servers when connecting over L2TP or PPTP.
340  Options are Automatic (default), Disable,
341  and Override. */
342  PPPExclusionServerIP, /**< When PPPExclusion is set to Manual,
343  the value of this preference allows an
344  end user to specify the address of a
345  PPP server that should be excluded
346  from tunnel traffic. */
347  AutomaticVPNPolicy, /**< This preference allows an administrator to
348  define a policy to automatically manage when a
349  VPN connection should be started or stopped. */
350  TrustedNetworkPolicy, /**< This preference allows an administrator to
351  define a policy for users in trusted networks.
352  The options are: Disconnect or DoNothing. */
353  UntrustedNetworkPolicy, /**< This preference allows an administrator to
354  define a policy for users in untrusted networks.
355  The options are: Connect or DoNothing. */
356  TrustedDNSDomains, /**< This preference defines a list of comma
357  separated DNS suffixes that a network interface
358  in a trusted network might have. */
359  TrustedDNSServers, /**< This preference defines a list of comma
360  separated DNS servers that a network interface
361  in a trusted network might have. */
362  TrustedHttpsServerList, /**< This preference defines a list of comma separated
363  https servers reachable only via a trusted network.*/
364  AlwaysOn, /**< This preference governs VPN reestablishment after
365  interruptions */
366  ConnectFailurePolicy, /**< This preference gives the network administrator
367  the ability to dictate the network access allowed
368  by the client endpoint device following a VPN
369  connection establishment failure. It is a component
370  of AlwaysOn */
371  AllowCaptivePortalRemediation, /**< This preference gives the network administrator
372  the ability to dictate the network access
373  allowed by the client endpoint device following
374  a VPN connection establishment failure it is a
375  component of AlwaysOn */
376  CaptivePortalRemediationTimeout, /**< This preference allows the network administrator
377  the ability to impose a time limit for captive portal
378  remediation when the ConnectFailurePolicy value is Closed
379  It is a component of AlwaysOn */
380  ApplyLastVPNLocalResourceRules, /**< This preference gives the network administrator
381  the ability to allow split routes and firewall rules
382  to be applied following a VPN connection establishment
383  failure when the ConnectFailurePolicy value is Closed
384  It is a component of AlwaysOn */
385  AllowVPNDisconnect, /**< During Always On, this specifies that the user is allowed to
386  disconnect the VPN session. */
387  EnableScripting, /**< This preference allows an administrator to
388  enable scripting (on connect or on
389  disconnect). */
390  TerminateScriptOnNextEvent, /**< This preference dictates whether or not
391  AnyConnect will terminate a running script
392  process if a transition to another
393  scriptable event occurs. */
394  EnablePostSBLOnConnectScript, /**< This preference is used to control whether
395  or not the OnConnect script will be launched
396  from the desktop GUI when a tunnel has been
397  established via SBL. */
398  AutomaticCertSelection, /**< This preference dictates whether or not to disable
399  the default automatic certificate selection for user
400  certificates. If disabled, a certificate selection dialog is
401  displayed. This only applies if the GUI is enabled
402  and not SBL. This only applies to Windows (not WinMobile). */
403  RetainVpnOnLogoff, /**< First control of the logoff behavior. This preference allows
404  an administrator to control if the VPN is terminated or retained
405  after user logs off.*/
406  UserEnforcement, /**< Second control of the logoff behavior. When the VPN connection has
407  been retained after user logged off. Controls what user can log in
408  and keep the VPN connection. Options are same user only and any user. */
409  DeviceLockRequired, /**< This preference indicates whether or not
410  a Windows Mobile device must be configured
411  with a password or PIN prior to establishing
412  a VPN connection. This configuration is
413  only valid on Windows Mobile devices that
414  use the Microsoft Default Local
415  Authentication Provider (LAP). */
416  DeviceLockMaximumTimeoutMinutes, /**< When set to a non-negative number,
417  this preference specifies the maximum
418  number of minutes a device can be
419  inactive before device lock takes
420  into effect. (WM5/WM5AKU2+) */
421  DeviceLockMinimumPasswordLength, /**< When set to a non-negative number,
422  this preference specifies that any
423  PIN/password used for device lock
424  must be equal to or longer than
425  the specified value, in characters.
426  This setting must be pushed down to
427  the mobile device by syncing with
428  an Exchange server before it can be
429  enforced. (WM5AKU2+) */
430  DeviceLockPasswordComplexity, /**< This preference checks whether or
431  not the password belongs to one of
432  three subtypes: alpha, pin, strong */
433  EnableAutomaticServerSelection, /**< Automatic server selection will
434  automatically select the optimal
435  secure gateway for the endpoint */
436  AutoServerSelectionImprovement, /**< During a reconnection attempt after
437  a system resume, this setting
438  specifies the minimum estimated
439  performance improvement required to
440  justify transitioning a user to a new server
441  This value represents percentage in 0..100 */
442  AutoServerSelectionSuspendTime, /**< During a reconnection attempt after
443  a system resume, this specifies the
444  minimum time a user must have been
445  suspended in order to justify a new
446  server selection calculation. Unit is hours */
447  AuthenticationTimeout, /**< Time, in seconds, that the client waits
448  for authentication to be completed.*/
449  SafeWordSofTokenIntegration, /**< This preference will enable the administrator and possibly
450  the end user to enable SafeWord SofToken integration.
451  Options are Enabled (true) and Disabled (false - default). */
452  AllowIPsecOverSSL, /**< if 'true' then tunneling of IPSEC over SSL
453  is made possible with help from the ASA.
454  */
455  ClearSmartcardPin, /**< This preference controls whether the smartcard pin
456  will be cleared on a successful connection*/
457  IPProtocolSupport, /**< This preference controls which protocol(s) will be
458  allowed for the connection*/
459  CaptivePortalRemediationBrowserFailover, /**< This preference is applicable to enhanced captive portal
460  remediation and specifies whether the user is allowed to
461  opt for an external browser for remediation, as opposed to
462  the AnyConnect browser. */
463  AllowManualHostInput, /**< This preference specifies whether the user
464  is allowed to type a new hostname in the VPN
465  edit box. */
466  BlockUntrustedServers, /**< This preference specifies whether the user wants
467  to allow for connections to secure gateways with
468  certificate errors. */
469  PublicProxyServerAddress, /**< This preference specifies the public proxy server
470  address to be used. This number is in the format
471  ServerAddr:ServerPort (ex. 101.89.85.444:8080)
472  or just the FQDN. */
473  CertificatePinning, /**< This preference specifies whether Certificate Pinning
474  check should be performed during server certificate
475  verification. */
476  UnknownPreference
477 };

◆ PreferenceScope

Indicates the scope of the preferences contained in a PreferenceInfo object

Enumerator
User 

Indicates that the preferences were set by a user

Global 

Indicates that the preferences are global

UserAndGlobal 

Indicates that we have both user and global preferences

487 {
488  User, /**< Indicates that the preferences were set by a user */
489  Global, /**< Indicates that the preferences are global */
490  UserAndGlobal /**< Indicates that we have both user and global preferences */
491 };

◆ PromptType

enum PromptType

Indicates the prompt or credential type.

Enumerator
Prompt_Input 

label and value.

Prompt_Password 

label and value, indicates user response should be masked.

Prompt_Banner 

value (the banner) with no label set.

Prompt_Combo 

list with choices options.

Prompt_Header 

label intended as header and with value.

Prompt_Hidden 

hidden value, should be ignored and left unchanged in response.

Prompt_CheckBox 

label and value (contrained to true or false)

Prompt_SSO 

single sign-on authentication token prompt

236  { Prompt_Input, /**< label and value. */
237  Prompt_Password, /**< label and value, indicates user
238  response should be masked. */
239  Prompt_Banner, /**< value (the banner) with no label set. */
240  Prompt_Combo, /**< list with choices options. */
241  Prompt_Header, /**< label intended as header and with
242  value. */
243  Prompt_Hidden, /**< hidden value, should be ignored and
244  left unchanged in response. */
245  Prompt_CheckBox, /**< label and value (contrained to true or false) */
246  Prompt_SSO /**< single sign-on authentication token prompt */
247 };

◆ SDITokenType

Identifies the type of token that was used successfully when SDI Authentication is in use.

111 {
112  SDITT_NONE,
113  SDITT_HARDWARE,
114  SDITT_SOFTWARE
115 };

◆ VPNError

enum VPNError

Indicates the last error seen by the API in this connection attempt.

Enumerator
VPNSuccess 

No error has occurred.

VPNError_Generic_FatalError 

An error of unknown type has occured

VPNError_Connection_Error 

An unknown connection error has occured, such as bad hostname, bad group, etc.

VPNError_Connection_InvalidGroupURL 

Invalid Group URL specified in the server address

VPNError_Network_Error 

An unknown network error has occured, such as DNS resolution error, unable to open socket, routing error, captive portal, etc.

VPNError_Authentication_Error 

An unknown user authenication error has occured.

VPNError_Authentication_DAP_Terminate 

Access Denied: Your system does not meet policy requirements (DAP).

VPNError_ClientCertificate_UnknownError 

An unknown client certificate error has occured.

VPNError_ClientCertificate_Missing 

A client certificate is required but no client certificate has been found on the system.

VPNError_ClientCertificate_Expired 

The client certificate has expired

VPNError_ClientCertificate_NotYetValid 

The client certificate is not yet valid.

VPNError_ServerCertificate_UnknownError 

An unknown error has occured when validating the server certificate.

VPNError_ServerCertificate_Expired 

The server certificate has expired.

VPNError_ServerCertificate_NotYetValid 

The server certificate is not yet valid.

554 {
555  VPNSuccess = 0, /**< No error has occurred. */
556  VPNError_Generic_FatalError = 1, /**< An error of unknown type has
557  occured */
558 
559  VPNError_Connection_Error = 100, /**< An unknown connection error has
560  occured, such as bad hostname, bad
561  group, etc. */
562  VPNError_Connection_InvalidGroupURL, /**< Invalid Group URL specified in the
563  server address */
564 
565  VPNError_Network_Error = 200, /**< An unknown network error has
566  occured, such as DNS resolution
567  error, unable to open socket,
568  routing error, captive portal,
569  etc. */
570 
571  VPNError_Authentication_Error = 300, /**< An unknown user authenication
572  error has occured. */
573 
574  VPNError_Authentication_DAP_Terminate, /**< Access Denied: Your system does
575  not meet policy requirements (DAP). */
576 
577  VPNError_ClientCertificate_UnknownError = 400, /**< An unknown client
578  certificate error has
579  occured. */
580  VPNError_ClientCertificate_Missing, /**< A client certificate is required
581  but no client certificate has been
582  found on the system. */
583  VPNError_ClientCertificate_Expired, /**< The client certificate has expired */
584  VPNError_ClientCertificate_NotYetValid, /**< The client certificate is not
585  yet valid. */
586 
587  VPNError_ServerCertificate_UnknownError = 500, /**< An unknown error has
588  occured when validating
589  the server certificate. */
590  VPNError_ServerCertificate_Expired, /**< The server certificate has
591  expired. */
592  VPNError_ServerCertificate_NotYetValid /**< The server certificate is not
593  yet valid. */
594 };

◆ VPNState

enum VPNState

Provides the current state of the VPN tunnel.

Enumerator
CONNECTED 

VPN is active

DISCONNECTED 

VPN is inactive

CONNECTING 

VPN is being established

DISCONNECTING 

VPN is being terminated

RECONNECTING 

VPN is being re-connected. This state can occur due to network or other temporary problems. The state indicates that the VPN is temporarily unavailable and indicates the connection is being re-established.

PAUSING 

VPN is being paused.

PAUSED 

VPN is paused.

SSOPOLLING 

API is doing auth-poll, VPN is disconnected.

124 {
125  CONNECTED = STATE_CONNECTED, /**< VPN is active */
126  DISCONNECTED = STATE_DISCONNECTED, /**< VPN is inactive */
127  CONNECTING = STATE_CONNECTING, /**< VPN is being established */
128  DISCONNECTING = STATE_DISCONNECTING, /**< VPN is being terminated */
129  RECONNECTING = STATE_RECONNECTING, /**< VPN is being re-connected. This state
130  can occur due to network or other
131  temporary problems. The state
132  indicates that the VPN is temporarily
133  unavailable and indicates the
134  connection is being re-established. */
135  PAUSING = STATE_PAUSING, /**< VPN is being paused. */
136  PAUSED = STATE_PAUSED, /**< VPN is paused. */
137  SSOPOLLING = STATE_SSOPOLLING, /**< API is doing auth-poll, VPN is disconnected. */
138  UNKNOWN = ~0
139 };

◆ VPNSubState

Provides the current sub-state of the VPN tunnel.

148 {
149  VPNSS_NORMAL = VCSS_NORMAL,
150  VPNSS_INDEFINITE_DELAY = VCSS_INDEFINITE_DELAY,
151  VPNSS_SESSION_EXPIRING = VCSS_SESSION_EXPIRING,
152  VPNSS_MT_DISCONNECTED_DISABLED = VCSS_MT_DISCONNECTED_DISABLED,
153  VPNSS_MT_DISCONNECTED_TRUSTED_NW = VCSS_MT_DISCONNECTED_TRUSTED_NW,
154  VPNSS_MT_DISCONNECTED_USER_TUNNEL_ACTIVE= VCSS_MT_DISCONNECTED_USER_TUNNEL_ACTIVE,
155  VPNSS_MT_DISCONNECTED_LAUNCH_FAILED = VCSS_MT_DISCONNECTED_LAUNCH_FAILED,
156  VPNSS_MT_DISCONNECTED_CONNECT_FAILED = VCSS_MT_DISCONNECTED_CONNECT_FAILED,
157  VPNSS_MT_DISCONNECTED_BAD_VPN_CONFIG = VCSS_MT_DISCONNECTED_BAD_VPN_CONFIG,
158  VPNSS_MT_DISCONNECTED_SW_UP_PENDING = VCSS_MT_DISCONNECTED_SW_UP_PENDING
159 };

◆ WMHint

enum WMHint

WMHint provides a hint for the GUI to either minimize or un-minimize.

Enumerator
MINIMIZE 

hint to minimize GUI

OPEN 

hint to un-minimize GUI

QUIT 

hint that GUI should close.

See also
WMHintReason
REFRESHHOSTNAMES 

hint to refresh the list of secure gateways

REFRESHPREFS 

hint to refresh the preferences

SHOWCONNECTING 

hint to display "connecting" status

CLOSECREDENTIALPOPUP 

hint to close the credentials popup

169 {
170  MINIMIZE, /**< hint to minimize GUI */
171  OPEN, /**< hint to un-minimize GUI */
172  QUIT, /**< hint that GUI should close. @see WMHintReason */
173  REFRESHHOSTNAMES,/**< hint to refresh the list of secure gateways */
174  REFRESHPREFS, /**< hint to refresh the preferences */
175  SHOWCONNECTING, /**< hint to display "connecting" status */
176  CLOSECREDENTIALPOPUP, /**< hint to close the credentials popup */
177 };

◆ WMHintReason

WMHintReason provides a reason indicator for the WMHint

Enumerator
SECONDGUISTART 

Indicates a second GUI has been launched. This indicator is used to suggest that the GUI already running be OPENed and that the first one should exit.

PROXYREQUEST 

Proxy credential request can be for web-launch or standalone-initiated connections.

SERVICEFAILURE 

This tag is used when the VPN service is no longer available.

DISCONNECT 

Any disconnect notices should be seen by the user.

SERVICESTOPPED 

This tag will be used in cases where the VPN service has been stopped.

CONNECT 

Tag indicating an action to be taken due to connect, for example a request to minimize the UI.

188 {
189  SECONDGUISTART, /**< Indicates a second GUI has been launched. This
190  indicator is used to suggest that the GUI
191  already running be OPENed and that the first one
192  should exit. */
193  PROXYREQUEST, /**< Proxy credential request can be for web-launch or
194  standalone-initiated connections. */
195  SERVICEFAILURE, /**< This tag is used when the VPN service
196  is no longer available. */
197  DISCONNECT, /**< Any disconnect notices should be seen by the user. */
198  SERVICESTOPPED, /**< This tag will be used in cases where the VPN service
199  has been stopped. */
200  CONNECT, /**< Tag indicating an action to be taken due to connect,
201  for example a request to minimize the UI. */
202  REASONUNKNOWN /**< */
203 };
VPNError_ClientCertificate_NotYetValid
Definition: api.h:584
CertificateStoreMac
Definition: api.h:276
ConnectFailurePolicy
Definition: api.h:366
REFRESHHOSTNAMES
Definition: api.h:173
Prompt_Hidden
Definition: api.h:243
SuspendOnConnectedStandby
Definition: api.h:303
VPNError_Connection_Error
Definition: api.h:559
AutoConnectOnStart
Definition: api.h:286
MINIMIZE
Definition: api.h:170
MsgType_Warn
Definition: api.h:97
CREDENTIALS
Definition: api.h:216
CertificateStore
Definition: api.h:271
MANUAL_PKCS12_IMPORT
Definition: api.h:220
VPNError_Network_Error
Definition: api.h:565
DeviceLockPasswordComplexity
Definition: api.h:430
DeviceLockMaximumTimeoutMinutes
Definition: api.h:416
AutoUpdate
Definition: api.h:310
ClearSmartcardPin
Definition: api.h:455
FIPS
Definition: api.h:503
ErrorSuppressed
Definition: api.h:535
EnablePostSBLOnConnectScript
Definition: api.h:394
DISCONNECT
Definition: api.h:197
VPNError_ServerCertificate_UnknownError
Definition: api.h:587
WindowsVPNEstablishment
Definition: api.h:322
PAUSING
Definition: api.h:135
EnableScripting
Definition: api.h:387
MsgType_Alert
Definition: api.h:96
GUI
Definition: api.h:508
DisableCaptivePortalDetection
Definition: api.h:294
VPNError_Generic_FatalError
Definition: api.h:556
AutoServerSelectionImprovement
Definition: api.h:436
DisconnectAllowed
Definition: api.h:522
Prompt_Header
Definition: api.h:241
TrustedNetworkPolicy
Definition: api.h:350
Quarantined
Definition: api.h:518
Prompt_Banner
Definition: api.h:239
PAUSED
Definition: api.h:136
AllowIPsecOverSSL
Definition: api.h:452
AutomaticVPNPolicy
Definition: api.h:347
SERVICESTOPPED
Definition: api.h:198
DeviceLockRequired
Definition: api.h:409
UntrustedNetworkPolicy
Definition: api.h:353
CLOSECREDENTIALPOPUP
Definition: api.h:176
Prompt_Input
Definition: api.h:236
CONNECT
Definition: api.h:200
DISCONNECTED
Definition: api.h:126
SSOPOLLING
Definition: api.h:137
AutomaticHeadendSelection
Definition: api.h:520
MinimizeOnConnect
Definition: api.h:289
VPNError_ClientCertificate_Missing
Definition: api.h:580
PublicProxyServerAddress
Definition: api.h:469
DeviceLockMinimumPasswordLength
Definition: api.h:421
UserAndGlobal
Definition: api.h:490
Management
Definition: api.h:543
AlwaysOnVpn
Definition: api.h:513
ProxySettings
Definition: api.h:332
CertAuth_Disabled
Definition: api.h:601
CertificateStoreOverride
Definition: api.h:267
WindowsLogonEnforcement
Definition: api.h:318
CertAuth_Automatic
Definition: api.h:598
VPNError_ClientCertificate_Expired
Definition: api.h:583
AutomaticCertSelection
Definition: api.h:398
MsgType_Info
Definition: api.h:98
REFRESHPREFS
Definition: api.h:174
Prompt_Password
Definition: api.h:237
PPPExclusionServerIP
Definition: api.h:342
SECONDGUISTART
Definition: api.h:189
CertAuth_Manual
Definition: api.h:602
BlockUntrustedServers
Definition: api.h:466
Prompt_CheckBox
Definition: api.h:245
VPNError_Authentication_DAP_Terminate
Definition: api.h:574
PROXY
Definition: api.h:218
DISCONNECTING
Definition: api.h:128
TrustedNetworkDetection
Definition: api.h:510
PROXYREQUEST
Definition: api.h:193
SERVICEFAILURE
Definition: api.h:195
AllowVPNDisconnect
Definition: api.h:385
EnableAutomaticServerSelection
Definition: api.h:433
VPNError_Authentication_Error
Definition: api.h:571
CLI
Definition: api.h:541
ApplyLastVPNLocalResourceRules
Definition: api.h:380
SINGLESIGNON
Definition: api.h:224
StrictMode
Definition: api.h:539
UseStartBeforeLogon
Definition: api.h:306
TrustedDNSServers
Definition: api.h:359
RSASecurIDIntegration
Definition: api.h:313
AllowCaptivePortalRemediation
Definition: api.h:371
ManualHostInputAllowed
Definition: api.h:532
Prompt_Combo
Definition: api.h:240
CONNECTED
Definition: api.h:125
SINGLELOGOUT
Definition: api.h:225
OPEN
Definition: api.h:171
SHOWCONNECTING
Definition: api.h:175
SafeWordSofTokenIntegration
Definition: api.h:449
VPNError_ServerCertificate_Expired
Definition: api.h:590
VPNSuccess
Definition: api.h:555
VPNError_ClientCertificate_UnknownError
Definition: api.h:577
MsgType_Error
Definition: api.h:95
User
Definition: api.h:488
VPNError_Connection_InvalidGroupURL
Definition: api.h:562
PPPExclusion
Definition: api.h:337
AllowManualHostInput
Definition: api.h:463
STATUS
Definition: api.h:222
TerminateScriptOnNextEvent
Definition: api.h:390
UserEnforcement
Definition: api.h:406
QUIT
Definition: api.h:172
CERTIFICATE
Definition: api.h:213
AllowLocalProxyConnections
Definition: api.h:334
AutoReconnect
Definition: api.h:296
AuthenticationTimeout
Definition: api.h:447
LinuxVPNEstablishment
Definition: api.h:329
VPNError_ServerCertificate_NotYetValid
Definition: api.h:592
LocalLanAccess
Definition: api.h:292
RetainVpnOnLogoff
Definition: api.h:403
IPProtocolSupport
Definition: api.h:457
StartBeforeLogon
Definition: api.h:505
AutoReconnectBehavior
Definition: api.h:299
ShowPreConnectMessage
Definition: api.h:280
OnTrustedNetwork
Definition: api.h:529
NetworkIssue
Definition: api.h:515
LEGACY_SINGLESIGNON
Definition: api.h:226
CONNECTING
Definition: api.h:127
AlwaysOn
Definition: api.h:364
RECONNECTING
Definition: api.h:129
CaptivePortalRemediationTimeout
Definition: api.h:376
Prompt_SSO
Definition: api.h:246
LinuxLogonEnforcement
Definition: api.h:325
TrustedDNSDomains
Definition: api.h:356
SCEPMode
Definition: api.h:527
CaptivePortalRemediationBrowserFailover
Definition: api.h:459
AutoServerSelectionSuspendTime
Definition: api.h:442
CertificatePinning
Definition: api.h:473
VPNDisabled
Definition: api.h:525
MsgType_Status
Definition: api.h:99
Global
Definition: api.h:489
ServiceDisable
Definition: api.h:263
TrustedHttpsServerList
Definition: api.h:362