![]() |
AnyConnect Secure Mobility Client 4.9.04043
|
00001 #ifndef _APISTDHEADER_ 00002 #define _APISTDHEADER_ 00003 00004 /** 00005 * @file 00006 * This file contains some basic compiler definitions as well as common enums. 00007 */ 00008 00009 //Not compatible with MIDL 00010 #if !defined(__midl) 00011 #ifdef _WIN32 00012 #pragma warning(disable:4251 4786) 00013 00014 #ifndef UNICODE 00015 #define UNICODE 00016 #endif // UNICODE 00017 00018 #ifndef _UNICODE 00019 #define _UNICODE 00020 #endif // _UNICODE 00021 00022 #ifndef tstring 00023 /** std::wstring */ 00024 #define tstring std::wstring /**< my wstring description */ 00025 #endif // tstring 00026 00027 #else // non-windows 00028 00029 #ifndef tstring 00030 #define tstring std::string 00031 #endif // tstring 00032 00033 #endif // _WIN32 00034 00035 #ifdef _UNICODE 00036 #define tostream std::wostream 00037 #else 00038 #define tostream std::ostream 00039 #endif /* UNICODE */ 00040 00041 00042 //used when including implementation files directly in an EXE. 00043 #ifdef _NOEXPORTDLL 00044 #define VPN_VPNAPI 00045 #else 00046 #ifdef _WIN32 00047 #ifdef VPN_APIEXPORTS //api 00048 #define VPN_VPNAPI __declspec(dllexport) 00049 #else 00050 #define VPN_VPNAPI __declspec(dllimport) 00051 #endif 00052 #else 00053 #ifdef VPN_APIEXPORTS 00054 #define VPN_VPNAPI __attribute__((visibility("default"))) 00055 #else 00056 #define VPN_VPNAPI 00057 #endif 00058 #endif //_WIN32 00059 #endif //NOEXPORTDLL 00060 00061 #ifndef OUT 00062 #define OUT 00063 #endif 00064 00065 #ifdef __cplusplus //only include if C++ is being used, 00066 //C code also includes api.h for COM proxy of enumerators. 00067 #include <string> 00068 #include <map> 00069 #include <list> 00070 00071 typedef std::map<tstring, tstring> ApiStringMap; 00072 typedef std::map<tstring, std::list<tstring> > ApiStringListMap; 00073 00074 #endif //__cplusplus 00075 #endif //#if !defined(__midl) 00076 00077 00078 /***** PUT ONLY SHARED ENUMS EXPOSED TO USERS OF API FROM THIS POINT UNTIL END *****\ 00079 ********* make sure to add the [v1_enum] inside a __midl define to new enums ******** 00080 \******************** This is also compiled with IDL compiler **********************/ 00081 00082 #include "GlobalEnums.h" 00083 /** 00084 * MessageType 00085 * presents a level of severity associated with messages that are 00086 * sent to the API. The severity can be useful for deciding how a message is 00087 * to be shown. A UI might decide based on type to show a message as 00088 * a modal dialog versus a message written to the status area for an existing UI. 00089 */ 00090 #if defined(__midl) 00091 [v1_enum] /*serialize as 32 bits*/ 00092 #endif 00093 enum MessageType 00094 { 00095 MsgType_Error, /**< Issue usually requiring user to acknowledge */ 00096 MsgType_Alert, /**< Warning message that needs to be shown to user. */ 00097 MsgType_Warn, /**< Less severe, not required to be shown to user */ 00098 MsgType_Info, /**< General message providing status, progress, etc. */ 00099 MsgType_Status /**< Can be used to indicate unexpected tunnel status change. */ 00100 }; 00101 00102 00103 /** 00104 * Identifies the type of token that was used successfully when SDI 00105 * Authentication is in use. 00106 */ 00107 #if defined(__midl) 00108 [v1_enum] /*serialize as 32 bits*/ 00109 #endif 00110 enum SDITokenType 00111 { 00112 SDITT_NONE, 00113 SDITT_HARDWARE, 00114 SDITT_SOFTWARE 00115 }; 00116 00117 /** 00118 * Provides the current state of the VPN tunnel. 00119 */ 00120 #if defined(__midl) 00121 [v1_enum] /*serialize as 32 bits*/ 00122 #endif 00123 enum VPNState 00124 { 00125 CONNECTED = STATE_CONNECTED, /**< VPN is active */ 00126 DISCONNECTED = STATE_DISCONNECTED, /**< VPN is inactive */ 00127 CONNECTING = STATE_CONNECTING, /**< VPN is being established */ 00128 DISCONNECTING = STATE_DISCONNECTING, /**< VPN is being terminated */ 00129 RECONNECTING = STATE_RECONNECTING, /**< VPN is being re-connected. This state 00130 can occur due to network or other 00131 temporary problems. The state 00132 indicates that the VPN is temporarily 00133 unavailable and indicates the 00134 connection is being re-established. */ 00135 PAUSING = STATE_PAUSING, /**< VPN is being paused. */ 00136 PAUSED = STATE_PAUSED, /**< VPN is paused. */ 00137 SSOPOLLING = STATE_SSOPOLLING, /**< API is doing auth-poll, VPN is disconnected. */ 00138 UNKNOWN = ~0 00139 }; 00140 00141 /** 00142 * Provides the current sub-state of the VPN tunnel. 00143 */ 00144 #if defined(__midl) 00145 [v1_enum] /*serialize as 32 bits*/ 00146 #endif 00147 enum VPNSubState 00148 { 00149 VPNSS_NORMAL = VCSS_NORMAL, 00150 VPNSS_INDEFINITE_DELAY = VCSS_INDEFINITE_DELAY, 00151 VPNSS_SESSION_EXPIRING = VCSS_SESSION_EXPIRING, 00152 VPNSS_MT_DISCONNECTED_DISABLED = VCSS_MT_DISCONNECTED_DISABLED, 00153 VPNSS_MT_DISCONNECTED_TRUSTED_NW = VCSS_MT_DISCONNECTED_TRUSTED_NW, 00154 VPNSS_MT_DISCONNECTED_USER_TUNNEL_ACTIVE= VCSS_MT_DISCONNECTED_USER_TUNNEL_ACTIVE, 00155 VPNSS_MT_DISCONNECTED_LAUNCH_FAILED = VCSS_MT_DISCONNECTED_LAUNCH_FAILED, 00156 VPNSS_MT_DISCONNECTED_CONNECT_FAILED = VCSS_MT_DISCONNECTED_CONNECT_FAILED, 00157 VPNSS_MT_DISCONNECTED_BAD_VPN_CONFIG = VCSS_MT_DISCONNECTED_BAD_VPN_CONFIG, 00158 VPNSS_MT_DISCONNECTED_SW_UP_PENDING = VCSS_MT_DISCONNECTED_SW_UP_PENDING 00159 }; 00160 00161 /** 00162 * WMHint 00163 * provides a hint for the GUI to either minimize or un-minimize. 00164 */ 00165 #if defined(__midl) 00166 [v1_enum] /*serialize as 32 bits*/ 00167 #endif 00168 enum WMHint 00169 { 00170 MINIMIZE, /**< hint to minimize GUI */ 00171 OPEN, /**< hint to un-minimize GUI */ 00172 QUIT, /**< hint that GUI should close. @see WMHintReason */ 00173 REFRESHHOSTNAMES,/**< hint to refresh the list of secure gateways */ 00174 REFRESHPREFS, /**< hint to refresh the preferences */ 00175 SHOWCONNECTING, /**< hint to display "connecting" status */ 00176 CLOSECREDENTIALPOPUP, /**< hint to close the credentials popup */ 00177 }; 00178 00179 00180 /** 00181 * WMHintReason 00182 * provides a reason indicator for the #WMHint 00183 */ 00184 #if defined(__midl) 00185 [v1_enum] /*serialize as 32 bits*/ 00186 #endif 00187 enum WMHintReason 00188 { 00189 SECONDGUISTART, /**< Indicates a second GUI has been launched. This 00190 indicator is used to suggest that the GUI 00191 already running be OPENed and that the first one 00192 should exit. */ 00193 PROXYREQUEST, /**< Proxy credential request can be for web-launch or 00194 standalone-initiated connections. */ 00195 SERVICEFAILURE, /**< This tag is used when the VPN service 00196 is no longer available. */ 00197 DISCONNECT, /**< Any disconnect notices should be seen by the user. */ 00198 SERVICESTOPPED, /**< This tag will be used in cases where the VPN service 00199 has been stopped. */ 00200 CONNECT, /**< Tag indicating an action to be taken due to connect, 00201 for example a request to minimize the UI. */ 00202 REASONUNKNOWN /**< */ 00203 }; 00204 00205 /** 00206 * provides an indication of the type of credential data being requested. 00207 */ 00208 #if defined(__midl) 00209 [v1_enum] /*serialize as 32 bits*/ 00210 #endif 00211 enum ConnectPromptType 00212 { 00213 CERTIFICATE, /**< Indicates a certificate-only type of connection and 00214 would not normally be sent to client unless a 00215 post-authentication banner is to be displayed. */ 00216 CREDENTIALS, /**< Indicates that the user is to be prompted for authentication 00217 credentials */ 00218 PROXY, /**< Indicates that the user is to be prompted for 00219 proxy-authentication credentials */ 00220 MANUAL_PKCS12_IMPORT, /**< Indicates that the user is to be prompted for passwords related 00221 to PKCS12 import*/ 00222 STATUS, /**< Indicates that status messages are to be displayed to 00223 the user*/ 00224 SINGLESIGNON, /**< Indicates an embedded browser based single sign-on authentication method is requested. */ 00225 SINGLELOGOUT, /**< Indicates an embedded browser based single sign-on authentication logout is requested. */ 00226 LEGACY_SINGLESIGNON, /**< (deprecated) Indicates a browser based single sign-on authentication method is requested. */ 00227 }; 00228 00229 00230 /** 00231 * Indicates the prompt or credential type. 00232 */ 00233 #if defined(__midl) 00234 [v1_enum] /*serialize as 32 bits*/ 00235 #endif 00236 enum PromptType { Prompt_Input, /**< label and value. */ 00237 Prompt_Password, /**< label and value, indicates user 00238 response should be masked. */ 00239 Prompt_Banner, /**< value (the banner) with no label set. */ 00240 Prompt_Combo, /**< list with choices options. */ 00241 Prompt_Header, /**< label intended as header and with 00242 value. */ 00243 Prompt_Hidden, /**< hidden value, should be ignored and 00244 left unchanged in response. */ 00245 Prompt_CheckBox, /**< label and value (contrained to true or false) */ 00246 Prompt_SSO /**< single sign-on authentication token prompt */ 00247 }; 00248 00249 #if defined(__midl) 00250 [v1_enum] /*serialize as 32 bits*/ 00251 #endif 00252 00253 /* 00254 * ***************** !!! ATTENTION !!! *********************************** 00255 * * 00256 * * When updating this preference enum, you must ensure that the enum in 00257 * * vpn/Api/jni/java/Preference.java is also updated. 00258 * * 00259 * ***************** !!! ATTENTION !!! *********************************** 00260 */ 00261 enum PreferenceId 00262 { 00263 ServiceDisable, /**< This preference disable the VPN service. 00264 If more than one profile exists and any one 00265 profile has VPN enabled, then it will be 00266 enabled. False is the default. */ 00267 CertificateStoreOverride,/**< This preference will trigger an alternate 00268 authentication sequence in the API. The 00269 preference is only settable by an 00270 administrator. */ 00271 CertificateStore, /**< This preference indicates which Windows certificate 00272 store AnyConnect should look in for 00273 certificates. The options are All, Machine 00274 and User with a default of All. The preference 00275 is only settable by an administrator. */ 00276 CertificateStoreMac, /**< This preference indicates which macOS keychain 00277 AnyConnect should look in for certificates. 00278 The options are All, System and Login with a default of All. 00279 The preference is only settable by an administrator. */ 00280 ShowPreConnectMessage, /**< The ShowPreConnectMessage preference gives the 00281 administrator the ability to display an AnyConnect 00282 startup banner message. The message will appear 00283 only once per AnyConnect program start. The 00284 preference is only settable by an 00285 administrator. */ 00286 AutoConnectOnStart, /**< This preference allows the user to select 00287 whether to establish a connection automatically 00288 on startup or not. */ 00289 MinimizeOnConnect, /**< This preference allows the user to select if 00290 the GUI should minimize when the connection is 00291 established */ 00292 LocalLanAccess, /**< This preference will provide a mechanism where 00293 the user can disable access to their Local LAN. */ 00294 DisableCaptivePortalDetection, /**<This preference will provide a mechanism where 00295 the user can disable captive portal detection.*/ 00296 AutoReconnect, /**< First control of the reconnect behavior. If the 00297 client becomes disconnected for any reason, a 00298 reconnect attempt is made. */ 00299 AutoReconnectBehavior, /**< Second control of the reconnect behavior. When 00300 coming out of suspend/hibernate/standby mode. 00301 Options are disconnect on suspend and reconnect 00302 after suspend. */ 00303 SuspendOnConnectedStandby, /**< This setting allows to control whether the VPN tunnel 00304 is suspended when the system enters the Connected Standby 00305 mode. It applies only to Windows 8 and above. */ 00306 UseStartBeforeLogon, /**< This preference allows an administrator to 00307 control the use of the Start Before Logon 00308 feature. The preference can be set to true (on) 00309 or false (off). */ 00310 AutoUpdate, /**< Once the Downloader has loaded the profile, it 00311 can check the AutoUpdate preference to see if 00312 updates are either disabled or enabled */ 00313 RSASecurIDIntegration, /**< This preference will enable the administrator 00314 and possibly end user to select the preferred 00315 method of managing their SDI PIN and PASSCODE 00316 interactions. Options are Automatic (default), 00317 SoftwareTokens and HardwareTokens. */ 00318 WindowsLogonEnforcement,/**< This preference allows an administrator to 00319 control if more than one user may be logged into 00320 the client PC during the VPN connection (Windows 00321 only). */ 00322 WindowsVPNEstablishment,/**< This preference allows an administrator to 00323 control whether or not remote users may initiate 00324 a VPN connection (Windows only). */ 00325 LinuxLogonEnforcement, /**< This preference allows an administrator to 00326 control if more than one user may be logged into 00327 the client PC during the VPN connection (Linux 00328 only). */ 00329 LinuxVPNEstablishment, /**< This preference allows an administrator to 00330 control whether or not remote users may initiate 00331 a VPN connection (Linux only). */ 00332 ProxySettings, /**< This preference allows an administrator to 00333 control how user's proxy setups are handled.*/ 00334 AllowLocalProxyConnections, /**< This preference allows the administrator to control 00335 whether to allow establishing a connection through 00336 a local proxy. */ 00337 PPPExclusion, /**< This preference allows an administrator to control 00338 the policy used to exclude routes to 00339 PPP servers when connecting over L2TP or PPTP. 00340 Options are Automatic (default), Disable, 00341 and Override. */ 00342 PPPExclusionServerIP, /**< When PPPExclusion is set to Manual, 00343 the value of this preference allows an 00344 end user to specify the address of a 00345 PPP server that should be excluded 00346 from tunnel traffic. */ 00347 AutomaticVPNPolicy, /**< This preference allows an administrator to 00348 define a policy to automatically manage when a 00349 VPN connection should be started or stopped. */ 00350 TrustedNetworkPolicy, /**< This preference allows an administrator to 00351 define a policy for users in trusted networks. 00352 The options are: Disconnect or DoNothing. */ 00353 UntrustedNetworkPolicy, /**< This preference allows an administrator to 00354 define a policy for users in untrusted networks. 00355 The options are: Connect or DoNothing. */ 00356 TrustedDNSDomains, /**< This preference defines a list of comma 00357 separated DNS suffixes that a network interface 00358 in a trusted network might have. */ 00359 TrustedDNSServers, /**< This preference defines a list of comma 00360 separated DNS servers that a network interface 00361 in a trusted network might have. */ 00362 TrustedHttpsServerList, /**< This preference defines a list of comma separated 00363 https servers reachable only via a trusted network.*/ 00364 AlwaysOn, /**< This preference governs VPN reestablishment after 00365 interruptions */ 00366 ConnectFailurePolicy, /**< This preference gives the network administrator 00367 the ability to dictate the network access allowed 00368 by the client endpoint device following a VPN 00369 connection establishment failure. It is a component 00370 of AlwaysOn */ 00371 AllowCaptivePortalRemediation, /**< This preference gives the network administrator 00372 the ability to dictate the network access 00373 allowed by the client endpoint device following 00374 a VPN connection establishment failure it is a 00375 component of AlwaysOn */ 00376 CaptivePortalRemediationTimeout, /**< This preference allows the network administrator 00377 the ability to impose a time limit for captive portal 00378 remediation when the ConnectFailurePolicy value is Closed 00379 It is a component of AlwaysOn */ 00380 ApplyLastVPNLocalResourceRules, /**< This preference gives the network administrator 00381 the ability to allow split routes and firewall rules 00382 to be applied following a VPN connection establishment 00383 failure when the ConnectFailurePolicy value is Closed 00384 It is a component of AlwaysOn */ 00385 AllowVPNDisconnect, /**< During Always On, this specifies that the user is allowed to 00386 disconnect the VPN session. */ 00387 AllowedHosts, /**< During Always On, user has access to the specified hosts 00388 when VPN is disconnected. */ 00389 EnableScripting, /**< This preference allows an administrator to 00390 enable scripting (on connect or on 00391 disconnect). */ 00392 TerminateScriptOnNextEvent, /**< This preference dictates whether or not 00393 AnyConnect will terminate a running script 00394 process if a transition to another 00395 scriptable event occurs. */ 00396 EnablePostSBLOnConnectScript, /**< This preference is used to control whether 00397 or not the OnConnect script will be launched 00398 from the desktop GUI when a tunnel has been 00399 established via SBL. */ 00400 AutomaticCertSelection, /**< This preference dictates whether or not to disable 00401 the default automatic certificate selection for user 00402 certificates. If disabled, a certificate selection dialog is 00403 displayed. This only applies if the GUI is enabled 00404 and not SBL. This only applies to Windows (not WinMobile). */ 00405 RetainVpnOnLogoff, /**< First control of the logoff behavior. This preference allows 00406 an administrator to control if the VPN is terminated or retained 00407 after user logs off.*/ 00408 UserEnforcement, /**< Second control of the logoff behavior. When the VPN connection has 00409 been retained after user logged off. Controls what user can log in 00410 and keep the VPN connection. Options are same user only and any user. */ 00411 DeviceLockRequired, /**< This preference indicates whether or not 00412 a Windows Mobile device must be configured 00413 with a password or PIN prior to establishing 00414 a VPN connection. This configuration is 00415 only valid on Windows Mobile devices that 00416 use the Microsoft Default Local 00417 Authentication Provider (LAP). */ 00418 DeviceLockMaximumTimeoutMinutes, /**< When set to a non-negative number, 00419 this preference specifies the maximum 00420 number of minutes a device can be 00421 inactive before device lock takes 00422 into effect. (WM5/WM5AKU2+) */ 00423 DeviceLockMinimumPasswordLength, /**< When set to a non-negative number, 00424 this preference specifies that any 00425 PIN/password used for device lock 00426 must be equal to or longer than 00427 the specified value, in characters. 00428 This setting must be pushed down to 00429 the mobile device by syncing with 00430 an Exchange server before it can be 00431 enforced. (WM5AKU2+) */ 00432 DeviceLockPasswordComplexity, /**< This preference checks whether or 00433 not the password belongs to one of 00434 three subtypes: alpha, pin, strong */ 00435 EnableAutomaticServerSelection, /**< Automatic server selection will 00436 automatically select the optimal 00437 secure gateway for the endpoint */ 00438 AutoServerSelectionImprovement, /**< During a reconnection attempt after 00439 a system resume, this setting 00440 specifies the minimum estimated 00441 performance improvement required to 00442 justify transitioning a user to a new server 00443 This value represents percentage in 0..100 */ 00444 AutoServerSelectionSuspendTime, /**< During a reconnection attempt after 00445 a system resume, this specifies the 00446 minimum time a user must have been 00447 suspended in order to justify a new 00448 server selection calculation. Unit is hours */ 00449 AuthenticationTimeout, /**< Time, in seconds, that the client waits 00450 for authentication to be completed.*/ 00451 SafeWordSofTokenIntegration, /**< This preference will enable the administrator and possibly 00452 the end user to enable SafeWord SofToken integration. 00453 Options are Enabled (true) and Disabled (false - default). */ 00454 AllowIPsecOverSSL, /**< if 'true' then tunneling of IPSEC over SSL 00455 is made possible with help from the ASA. 00456 */ 00457 ClearSmartcardPin, /**< This preference controls whether the smartcard pin 00458 will be cleared on a successful connection*/ 00459 IPProtocolSupport, /**< This preference controls which protocol(s) will be 00460 allowed for the connection*/ 00461 CaptivePortalRemediationBrowserFailover, /**< This preference is applicable to enhanced captive portal 00462 remediation and specifies whether the user is allowed to 00463 opt for an external browser for remediation, as opposed to 00464 the AnyConnect browser. */ 00465 AllowManualHostInput, /**< This preference specifies whether the user 00466 is allowed to type a new hostname in the VPN 00467 edit box. */ 00468 BlockUntrustedServers, /**< This preference specifies whether the user wants 00469 to allow for connections to secure gateways with 00470 certificate errors. */ 00471 PublicProxyServerAddress, /**< This preference specifies the public proxy server 00472 address to be used. This number is in the format 00473 ServerAddr:ServerPort (ex. 101.89.85.444:8080) 00474 or just the FQDN. */ 00475 CertificatePinning, /**< This preference specifies whether Certificate Pinning 00476 check should be performed during server certificate 00477 verification. */ 00478 UnknownPreference 00479 }; 00480 00481 00482 /** 00483 * Indicates the scope of the preferences contained in a PreferenceInfo object 00484 */ 00485 #if defined(__midl) 00486 [v1_enum] /*serialize as 32 bits*/ 00487 #endif 00488 enum PreferenceScope 00489 { 00490 User, /**< Indicates that the preferences were set by a user */ 00491 Global, /**< Indicates that the preferences are global */ 00492 UserAndGlobal /**< Indicates that we have both user and global preferences */ 00493 }; 00494 00495 /** 00496 * Indicates the client mode of operation. Unlike tunneling mode or other 00497 * mutually exclusive modes, client operating modes are independent settings, 00498 * several of which can be turned on simultaneously. 00499 */ 00500 #if defined(__midl) 00501 [v1_enum] /*serialize as 32 bits*/ 00502 #endif 00503 enum OperatingMode 00504 { 00505 FIPS = (1 << 0), /**< Indicates that the client is 00506 running in FIPS mode. */ 00507 StartBeforeLogon = (1 << 1), /**< Indicates that the client is 00508 running in Start Before Login 00509 mode. */ 00510 GUI = (1 << 2), /**< Indicates that the client is 00511 a GUI client. */ 00512 TrustedNetworkDetection = (1 << 3), /**< Indicates that a Trusted Network 00513 Detection policy is enabled for 00514 the client. */ 00515 AlwaysOnVpn = (1 << 4), /**< Indicates that the Always On 00516 policy is enabled for the client. */ 00517 NetworkIssue = (1 << 5), /**< For user notifications only. 00518 Indication by API to the UI that 00519 there is a network condition. */ 00520 Quarantined = (1 << 6), /**< Indicates that the VPN session is being 00521 Quarantined by the secure gateway. */ 00522 AutomaticHeadendSelection= (1 << 7), /**< Indicates that Automatic Headend 00523 is enabled. */ 00524 DisconnectAllowed = (1 << 8), /**< Indicates that the user is allowed 00525 to disconnect the VPN based on 00526 policy. */ 00527 VPNDisabled = (1 << 9), /**< Indicates that the VPN service is 00528 to be marked as disabled. */ 00529 SCEPMode = (1 << 10), /**< Indicates that the client is 00530 performing a SCEP cert enrollment. */ 00531 OnTrustedNetwork = (1 << 11), /**< Indicates that at last check, the 00532 client detected that it was on 00533 a trusted network. */ 00534 ManualHostInputAllowed = (1 << 12), /**< Indicates that the user is allowed 00535 to add a new host by typing its name 00536 in the VPN edit box. */ 00537 ErrorSuppressed = (1 << 13), /**< Indicates a connection error has 00538 been returned fronm the agent, but 00539 was suppressed to warning to 00540 prevent popup dialog in the UI. */ 00541 StrictMode = (1 << 14), /**< Indicates that the client is 00542 running in strict certificate trust mode. */ 00543 CLI = (1 << 15), /**< Indicates that the client is 00544 a CLI client. */ 00545 Management = (1 << 16) /**< Indicates that the client is strictly 00546 used for initiating a management tunnel. */ 00547 }; 00548 00549 /** 00550 * Indicates the last error seen by the API in this connection attempt. 00551 */ 00552 #if defined(__midl) 00553 [v1_enum] /*serialize as 32 bits*/ 00554 #endif 00555 enum VPNError 00556 { 00557 VPNSuccess = 0, /**< No error has occurred. */ 00558 VPNError_Generic_FatalError = 1, /**< An error of unknown type has 00559 occured */ 00560 00561 VPNError_Connection_Error = 100, /**< An unknown connection error has 00562 occured, such as bad hostname, bad 00563 group, etc. */ 00564 VPNError_Connection_InvalidGroupURL, /**< Invalid Group URL specified in the 00565 server address */ 00566 00567 VPNError_Network_Error = 200, /**< An unknown network error has 00568 occured, such as DNS resolution 00569 error, unable to open socket, 00570 routing error, captive portal, 00571 etc. */ 00572 00573 VPNError_Authentication_Error = 300, /**< An unknown user authenication 00574 error has occured. */ 00575 00576 VPNError_Authentication_DAP_Terminate, /**< Access Denied: Your system does 00577 not meet policy requirements (DAP). */ 00578 00579 VPNError_ClientCertificate_UnknownError = 400, /**< An unknown client 00580 certificate error has 00581 occured. */ 00582 VPNError_ClientCertificate_Missing, /**< A client certificate is required 00583 but no client certificate has been 00584 found on the system. */ 00585 VPNError_ClientCertificate_Expired, /**< The client certificate has expired */ 00586 VPNError_ClientCertificate_NotYetValid, /**< The client certificate is not 00587 yet valid. */ 00588 00589 VPNError_ServerCertificate_UnknownError = 500, /**< An unknown error has 00590 occured when validating 00591 the server certificate. */ 00592 VPNError_ServerCertificate_Expired, /**< The server certificate has 00593 expired. */ 00594 VPNError_ServerCertificate_NotYetValid /**< The server certificate is not 00595 yet valid. */ 00596 }; 00597 00598 enum CertAuthMode 00599 { 00600 CertAuth_Automatic, /**< Will try each available certificate in succession 00601 until authentication is obtained or we run out of 00602 available certificates */ 00603 CertAuth_Disabled, /**< Will disable Certificate Based Authentication */ 00604 CertAuth_Manual /**< Will only use preconfigured certificate to attempt 00605 Certificate Based Authentication */ 00606 }; 00607 00608 enum CertificateType 00609 { 00610 CertificateType_Client, 00611 CertificateType_SystemTrusted, 00612 CertificateType_Server 00613 }; 00614 00615 enum CertConfirmReason 00616 { 00617 CertConfirmReason_Unspecified, 00618 CertConfirmReason_NameMismatch, 00619 CertConfirmReason_Expired, 00620 CertConfirmReason_NotValidYet, 00621 CertConfirmReason_UntrustedSource, 00622 CertConfirmReason_InvalidUse, 00623 CertConfirmReason_Revoked, 00624 CertConfirmReason_Malformed, 00625 CertConfirmReason_NotFipsCompliant, 00626 CertConfirmReason_InvalidateDate, 00627 CertConfirmReason_SignatureAlgorithm, 00628 CertConfirmReason_KeySize 00629 }; 00630 00631 enum UserResponseError 00632 { 00633 UserResponseError_None, 00634 UserResponseError_Unspecified, 00635 UserResponseError_BadServerCert, 00636 UserResponseError_SsoNavigation, 00637 UserResponseError_SsoGettingCookie, 00638 UserResponseError_SsoTimeout, 00639 UserResponseError_SsoMissingDependency, 00640 UserResponseError_SsoClientCertRequest 00641 }; 00642 00643 #if defined(__midl) 00644 [v1_enum] /*serialize as 32 bits*/ 00645 #endif 00646 enum ClientType 00647 { 00648 ClientType_GUI, 00649 ClientType_GUI_SBL, 00650 ClientType_CLI, 00651 ClientType_MGMT 00652 }; 00653 00654 #endif // _APISTDHEADER_