1*12720SWyllys.Ingersoll@Sun.COM /* 2*12720SWyllys.Ingersoll@Sun.COM * CDDL HEADER START 3*12720SWyllys.Ingersoll@Sun.COM * 4*12720SWyllys.Ingersoll@Sun.COM * The contents of this file are subject to the terms of the 5*12720SWyllys.Ingersoll@Sun.COM * Common Development and Distribution License (the "License"). 6*12720SWyllys.Ingersoll@Sun.COM * You may not use this file except in compliance with the License. 7*12720SWyllys.Ingersoll@Sun.COM * 8*12720SWyllys.Ingersoll@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*12720SWyllys.Ingersoll@Sun.COM * or http://www.opensolaris.org/os/licensing. 10*12720SWyllys.Ingersoll@Sun.COM * See the License for the specific language governing permissions 11*12720SWyllys.Ingersoll@Sun.COM * and limitations under the License. 12*12720SWyllys.Ingersoll@Sun.COM * 13*12720SWyllys.Ingersoll@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 14*12720SWyllys.Ingersoll@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*12720SWyllys.Ingersoll@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 16*12720SWyllys.Ingersoll@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 17*12720SWyllys.Ingersoll@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 18*12720SWyllys.Ingersoll@Sun.COM * 19*12720SWyllys.Ingersoll@Sun.COM * CDDL HEADER END 20*12720SWyllys.Ingersoll@Sun.COM */ 21*12720SWyllys.Ingersoll@Sun.COM 22*12720SWyllys.Ingersoll@Sun.COM /* 23*12720SWyllys.Ingersoll@Sun.COM * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. 24*12720SWyllys.Ingersoll@Sun.COM */ 25*12720SWyllys.Ingersoll@Sun.COM 26*12720SWyllys.Ingersoll@Sun.COM /** 27*12720SWyllys.Ingersoll@Sun.COM * \file KMSClientProfileImpl.h 28*12720SWyllys.Ingersoll@Sun.COM */ 29*12720SWyllys.Ingersoll@Sun.COM 30*12720SWyllys.Ingersoll@Sun.COM #ifndef CLIENT_PROFILE_IMPL_H 31*12720SWyllys.Ingersoll@Sun.COM #define CLIENT_PROFILE_IMPL_H 32*12720SWyllys.Ingersoll@Sun.COM 33*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus 34*12720SWyllys.Ingersoll@Sun.COM extern "C" { 35*12720SWyllys.Ingersoll@Sun.COM #endif 36*12720SWyllys.Ingersoll@Sun.COM 37*12720SWyllys.Ingersoll@Sun.COM #define AGENT_LOG_FILE "KMSAgentLog.log" 38*12720SWyllys.Ingersoll@Sun.COM 39*12720SWyllys.Ingersoll@Sun.COM /** 40*12720SWyllys.Ingersoll@Sun.COM * Build383 corresponds to 2.0.2 which does not support AES Key Wrap and 41*12720SWyllys.Ingersoll@Sun.COM * enforcment of FIPS mode. 42*12720SWyllys.Ingersoll@Sun.COM */ 43*12720SWyllys.Ingersoll@Sun.COM #define FIPS_COMPATIBLE_KMA_VERSION "Build384" 44*12720SWyllys.Ingersoll@Sun.COM 45*12720SWyllys.Ingersoll@Sun.COM 46*12720SWyllys.Ingersoll@Sun.COM extern bool g_bUseFileLog; 47*12720SWyllys.Ingersoll@Sun.COM 48*12720SWyllys.Ingersoll@Sun.COM /*--------------------------------------------------------------------------- 49*12720SWyllys.Ingersoll@Sun.COM * Function: KMSClient_InitializeLibrary 50*12720SWyllys.Ingersoll@Sun.COM * 51*12720SWyllys.Ingersoll@Sun.COM * Description: This function initializes the KMS Agent or Management API library. 52*12720SWyllys.Ingersoll@Sun.COM * It should be called before any other functions are invoked. 53*12720SWyllys.Ingersoll@Sun.COM * Internally, it setups SSL library and Logging module. 54*12720SWyllys.Ingersoll@Sun.COM * 55*12720SWyllys.Ingersoll@Sun.COM * 56*12720SWyllys.Ingersoll@Sun.COM * Input 57*12720SWyllys.Ingersoll@Sun.COM * ----- 58*12720SWyllys.Ingersoll@Sun.COM * i_wsWorkingDirectory -- Working directory of the program which uses the library 59*12720SWyllys.Ingersoll@Sun.COM * i_bIsManager -- TRUE: Initialize Management Library; FALSE: initialize Agent Library. 60*12720SWyllys.Ingersoll@Sun.COM * i_bUseFileLog: True if logs should go to a log file in the working directory. 61*12720SWyllys.Ingersoll@Sun.COM * False otherwise. 62*12720SWyllys.Ingersoll@Sun.COM * 63*12720SWyllys.Ingersoll@Sun.COM * Output 64*12720SWyllys.Ingersoll@Sun.COM * ------ 65*12720SWyllys.Ingersoll@Sun.COM * return value TRUE or FALSE 66*12720SWyllys.Ingersoll@Sun.COM * 67*12720SWyllys.Ingersoll@Sun.COM *--------------------------------------------------------------------------*/ 68*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_InitializeLibrary( 69*12720SWyllys.Ingersoll@Sun.COM const utf8cstr i_wsWorkingDirectory, 70*12720SWyllys.Ingersoll@Sun.COM int i_bUseFileLog ); 71*12720SWyllys.Ingersoll@Sun.COM 72*12720SWyllys.Ingersoll@Sun.COM /*--------------------------------------------------------------------------- 73*12720SWyllys.Ingersoll@Sun.COM * Function: KMSClient_FinalizeLibrary 74*12720SWyllys.Ingersoll@Sun.COM * 75*12720SWyllys.Ingersoll@Sun.COM * Description: This function finalizes the KMS Agent(Or Management) API library. 76*12720SWyllys.Ingersoll@Sun.COM * It should be called when the library is not needed by the program. 77*12720SWyllys.Ingersoll@Sun.COM * Internally it cleans up SSL library and Logging module. 78*12720SWyllys.Ingersoll@Sun.COM * 79*12720SWyllys.Ingersoll@Sun.COM * 80*12720SWyllys.Ingersoll@Sun.COM * Input 81*12720SWyllys.Ingersoll@Sun.COM * ----- 82*12720SWyllys.Ingersoll@Sun.COM * i_bIsManager -- TRUE: Finalize Management Library; FALSE: Finalize Agent Library. 83*12720SWyllys.Ingersoll@Sun.COM * 84*12720SWyllys.Ingersoll@Sun.COM * Output 85*12720SWyllys.Ingersoll@Sun.COM * ------ 86*12720SWyllys.Ingersoll@Sun.COM * return value TRUE or FALSE 87*12720SWyllys.Ingersoll@Sun.COM * 88*12720SWyllys.Ingersoll@Sun.COM *--------------------------------------------------------------------------*/ 89*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_FinalizeLibrary(); 90*12720SWyllys.Ingersoll@Sun.COM 91*12720SWyllys.Ingersoll@Sun.COM utf8cstr KMSClient_GetLastErrorMessage(KMSClientProfile *i_pProfile); 92*12720SWyllys.Ingersoll@Sun.COM 93*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_LoadProfile( 94*12720SWyllys.Ingersoll@Sun.COM KMSClientProfile *io_pProfile, 95*12720SWyllys.Ingersoll@Sun.COM utf8cstr i_wsProfileName, 96*12720SWyllys.Ingersoll@Sun.COM utf8cstr i_wsEntityID, 97*12720SWyllys.Ingersoll@Sun.COM utf8cstr i_wsPassphrase, 98*12720SWyllys.Ingersoll@Sun.COM utf8cstr i_wsApplianceAddress, 99*12720SWyllys.Ingersoll@Sun.COM int i_iTransactionTimeout, 100*12720SWyllys.Ingersoll@Sun.COM int i_iFailOverLimit, 101*12720SWyllys.Ingersoll@Sun.COM int i_iClusterDiscoveryFrequency, 102*12720SWyllys.Ingersoll@Sun.COM int i_eKMSmode); 103*12720SWyllys.Ingersoll@Sun.COM 104*12720SWyllys.Ingersoll@Sun.COM /*--------------------------------------------------------------------------- 105*12720SWyllys.Ingersoll@Sun.COM * Function: KMSClient_GetClusterInformation 106*12720SWyllys.Ingersoll@Sun.COM * 107*12720SWyllys.Ingersoll@Sun.COM * Description: Get the cluster information by calling cluster discovery 108*12720SWyllys.Ingersoll@Sun.COM * service. 109*12720SWyllys.Ingersoll@Sun.COM * 110*12720SWyllys.Ingersoll@Sun.COM * Input 111*12720SWyllys.Ingersoll@Sun.COM * ----- 112*12720SWyllys.Ingersoll@Sun.COM * i_pProfile -- a pointer to an initialized KMSClientProfile structure 113*12720SWyllys.Ingersoll@Sun.COM * i_iEntitySiteIDSize -- the buffer size of the entity site ID 114*12720SWyllys.Ingersoll@Sun.COM * (KMS_MAX_ENTITIY_SITE_ID) 115*12720SWyllys.Ingersoll@Sun.COM * i_iClusterEntryArraySize -- the array size for cluster entries 116*12720SWyllys.Ingersoll@Sun.COM * (KMS_MAX_CLUSTER_NUM) 117*12720SWyllys.Ingersoll@Sun.COM * Output 118*12720SWyllys.Ingersoll@Sun.COM * ------ 119*12720SWyllys.Ingersoll@Sun.COM * o_wsEntitySiteID -- the entity's Site ID 120*12720SWyllys.Ingersoll@Sun.COM * o_pApplianceNum -- the returned number of the appliances in the cluster 121*12720SWyllys.Ingersoll@Sun.COM * o_pClusterEntryArray -- the array of cluster entries 122*12720SWyllys.Ingersoll@Sun.COM * 123*12720SWyllys.Ingersoll@Sun.COM * return value TRUE/FALSE 124*12720SWyllys.Ingersoll@Sun.COM * Use KMSAgent_GetLastErrorMessage() to get the error message 125*12720SWyllys.Ingersoll@Sun.COM * 126*12720SWyllys.Ingersoll@Sun.COM * 127*12720SWyllys.Ingersoll@Sun.COM *--------------------------------------------------------------------------*/ 128*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_GetClusterInformation(KMSClientProfile *i_pProfile, 129*12720SWyllys.Ingersoll@Sun.COM utf8cstr o_wsEntitySiteID, 130*12720SWyllys.Ingersoll@Sun.COM int i_iEntitySiteIDSize, 131*12720SWyllys.Ingersoll@Sun.COM int *o_pApplianceNum, 132*12720SWyllys.Ingersoll@Sun.COM KMSClusterEntry *o_pClusterEntryArray, 133*12720SWyllys.Ingersoll@Sun.COM int i_iClusterEntryArraySize); 134*12720SWyllys.Ingersoll@Sun.COM 135*12720SWyllys.Ingersoll@Sun.COM /** 136*12720SWyllys.Ingersoll@Sun.COM * @return true if any KMAs are not FIPS compatible, i.e. perform AES key 137*12720SWyllys.Ingersoll@Sun.COM * wrap. 138*12720SWyllys.Ingersoll@Sun.COM */ 139*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_NoFIPSCompatibleKMAs(const KMSClientProfile * const i_pProfile); 140*12720SWyllys.Ingersoll@Sun.COM 141*12720SWyllys.Ingersoll@Sun.COM /*--------------------------------------------------------------------------- 142*12720SWyllys.Ingersoll@Sun.COM * Function: KMSClient_SelectAppliance 143*12720SWyllys.Ingersoll@Sun.COM * 144*12720SWyllys.Ingersoll@Sun.COM * Description: Select the current appliance. The current appliance is used for 145*12720SWyllys.Ingersoll@Sun.COM * retrieving cluster information. 146*12720SWyllys.Ingersoll@Sun.COM * 147*12720SWyllys.Ingersoll@Sun.COM * Input 148*12720SWyllys.Ingersoll@Sun.COM * ----- 149*12720SWyllys.Ingersoll@Sun.COM * i_pProfile -- a pointer to an initialized KMSClientProfile structure 150*12720SWyllys.Ingersoll@Sun.COM * i_wsApplianceAddress -- the IP address of the appliance 151*12720SWyllys.Ingersoll@Sun.COM * Output 152*12720SWyllys.Ingersoll@Sun.COM * ------ 153*12720SWyllys.Ingersoll@Sun.COM * (none) 154*12720SWyllys.Ingersoll@Sun.COM * return value TRUE/FALSE 155*12720SWyllys.Ingersoll@Sun.COM * Use KMSAgent_GetLastErrorMessage() to get the error message 156*12720SWyllys.Ingersoll@Sun.COM * 157*12720SWyllys.Ingersoll@Sun.COM * 158*12720SWyllys.Ingersoll@Sun.COM *--------------------------------------------------------------------------*/ 159*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_SelectAppliance(KMSClientProfile *i_pProfile, 160*12720SWyllys.Ingersoll@Sun.COM utf8cstr i_wsApplianceAddress); 161*12720SWyllys.Ingersoll@Sun.COM 162*12720SWyllys.Ingersoll@Sun.COM /** 163*12720SWyllys.Ingersoll@Sun.COM * check if the profile was loaded successfully 164*12720SWyllys.Ingersoll@Sun.COM * 165*12720SWyllys.Ingersoll@Sun.COM * @param i_pProfile a pointer that may, or may not be to a loaded profile 166*12720SWyllys.Ingersoll@Sun.COM * 167*12720SWyllys.Ingersoll@Sun.COM * @return true if the profile was loaded 168*12720SWyllys.Ingersoll@Sun.COM */ 169*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_ProfileLoaded( KMSClientProfile *i_pProfile ); 170*12720SWyllys.Ingersoll@Sun.COM 171*12720SWyllys.Ingersoll@Sun.COM /*--------------------------------------------------------------------------- 172*12720SWyllys.Ingersoll@Sun.COM * Function: KMSClient_DeleteProfile 173*12720SWyllys.Ingersoll@Sun.COM * 174*12720SWyllys.Ingersoll@Sun.COM * Description: Delete the profile information from the local disk 175*12720SWyllys.Ingersoll@Sun.COM * 176*12720SWyllys.Ingersoll@Sun.COM * 177*12720SWyllys.Ingersoll@Sun.COM * Input 178*12720SWyllys.Ingersoll@Sun.COM * ----- 179*12720SWyllys.Ingersoll@Sun.COM * i_wsProfileName -- the profile name 180*12720SWyllys.Ingersoll@Sun.COM 181*12720SWyllys.Ingersoll@Sun.COM * Output 182*12720SWyllys.Ingersoll@Sun.COM * ------ 183*12720SWyllys.Ingersoll@Sun.COM * return value TRUE/FALSE 184*12720SWyllys.Ingersoll@Sun.COM * Use KMSAgent_GetLastErrorMessage() to get the error message 185*12720SWyllys.Ingersoll@Sun.COM * 186*12720SWyllys.Ingersoll@Sun.COM *--------------------------------------------------------------------------*/ 187*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_DeleteProfile(utf8cstr i_wsProfileName); 188*12720SWyllys.Ingersoll@Sun.COM 189*12720SWyllys.Ingersoll@Sun.COM /*--------------------------------------------------------------------------- 190*12720SWyllys.Ingersoll@Sun.COM * Function: KMSClient_UnloadProfile 191*12720SWyllys.Ingersoll@Sun.COM * 192*12720SWyllys.Ingersoll@Sun.COM * Description: Destroy the profile information in memory including agent's private 193*12720SWyllys.Ingersoll@Sun.COM * key. 194*12720SWyllys.Ingersoll@Sun.COM * 195*12720SWyllys.Ingersoll@Sun.COM * 196*12720SWyllys.Ingersoll@Sun.COM * Input 197*12720SWyllys.Ingersoll@Sun.COM * ----- 198*12720SWyllys.Ingersoll@Sun.COM * i_pProfile -- a pointer to an initialized KMSClientProfile structure 199*12720SWyllys.Ingersoll@Sun.COM 200*12720SWyllys.Ingersoll@Sun.COM * Output 201*12720SWyllys.Ingersoll@Sun.COM * ------ 202*12720SWyllys.Ingersoll@Sun.COM * return value TRUE/FALSE 203*12720SWyllys.Ingersoll@Sun.COM * Use KMSAgent_GetLastErrorMessage() to get the error message 204*12720SWyllys.Ingersoll@Sun.COM * 205*12720SWyllys.Ingersoll@Sun.COM *--------------------------------------------------------------------------*/ 206*12720SWyllys.Ingersoll@Sun.COM bool KMSClient_UnloadProfile(KMSClientProfile *i_pProfile); 207*12720SWyllys.Ingersoll@Sun.COM 208*12720SWyllys.Ingersoll@Sun.COM /** 209*12720SWyllys.Ingersoll@Sun.COM * @return true if the soap fault string indicates that the SSL handshake 210*12720SWyllys.Ingersoll@Sun.COM * did not succeed due to an invalid certificate. 211*12720SWyllys.Ingersoll@Sun.COM */ 212*12720SWyllys.Ingersoll@Sun.COM bool SSL_InvalidCertificate(const char * const i_sErrorString ); 213*12720SWyllys.Ingersoll@Sun.COM 214*12720SWyllys.Ingersoll@Sun.COM /** 215*12720SWyllys.Ingersoll@Sun.COM * compares the error string with various soap fault substrings to determine if the 216*12720SWyllys.Ingersoll@Sun.COM * error was a server-side error or not, also checks the supplied errno codes against 217*12720SWyllys.Ingersoll@Sun.COM * various POSIX errno macros that would imply server connection issues 218*12720SWyllys.Ingersoll@Sun.COM */ 219*12720SWyllys.Ingersoll@Sun.COM bool ServerError (const char * i_sErrorString, int i_iErrno ); 220*12720SWyllys.Ingersoll@Sun.COM 221*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus 222*12720SWyllys.Ingersoll@Sun.COM } 223*12720SWyllys.Ingersoll@Sun.COM 224*12720SWyllys.Ingersoll@Sun.COM // helper macro to turn value into a string 225*12720SWyllys.Ingersoll@Sun.COM #define LogError(a,b,c,d,e) LogError_function(a,b,#b,c,d,e) 226*12720SWyllys.Ingersoll@Sun.COM 227*12720SWyllys.Ingersoll@Sun.COM /** 228*12720SWyllys.Ingersoll@Sun.COM * Log an error after saving the message in the profile. This supports <code>KMSAgent_GetLastErrorMessage</code> 229*12720SWyllys.Ingersoll@Sun.COM * @param i_pProfile an initialized profile 230*12720SWyllys.Ingersoll@Sun.COM * 231*12720SWyllys.Ingersoll@Sun.COM * @param i_iErrno, the error expressed as a number 232*12720SWyllys.Ingersoll@Sun.COM * @param i_sOperation, the operation number as a string 233*12720SWyllys.Ingersoll@Sun.COM * @param i_sEntityID optional, the agent ID 234*12720SWyllys.Ingersoll@Sun.COM * @param i_sNetworkAddress optional, the address of the KMA involved in the error 235*12720SWyllys.Ingersoll@Sun.COM * @param i_sMessage optional, an informative error message 236*12720SWyllys.Ingersoll@Sun.COM */ 237*12720SWyllys.Ingersoll@Sun.COM void LogError_function(KMSClientProfile *i_pProfile, 238*12720SWyllys.Ingersoll@Sun.COM int i_iErrno, 239*12720SWyllys.Ingersoll@Sun.COM const char* i_sOperation, 240*12720SWyllys.Ingersoll@Sun.COM const char* i_sEntityID, 241*12720SWyllys.Ingersoll@Sun.COM const char* i_sNetworkAddress, 242*12720SWyllys.Ingersoll@Sun.COM const char* i_sMessage ); 243*12720SWyllys.Ingersoll@Sun.COM 244*12720SWyllys.Ingersoll@Sun.COM #endif 245*12720SWyllys.Ingersoll@Sun.COM 246*12720SWyllys.Ingersoll@Sun.COM /** 247*12720SWyllys.Ingersoll@Sun.COM * @return true if the KMA version string corresponds to a FIPS compatible 248*12720SWyllys.Ingersoll@Sun.COM * KMA 249*12720SWyllys.Ingersoll@Sun.COM */ 250*12720SWyllys.Ingersoll@Sun.COM bool FIPScompatibleKMA ( 251*12720SWyllys.Ingersoll@Sun.COM const char * const i_sKMAVersion); 252*12720SWyllys.Ingersoll@Sun.COM 253*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_LOG_ERROR_BASE 0x300 254*12720SWyllys.Ingersoll@Sun.COM 255*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_AUDIT_LOG_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x00) 256*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_DESCRIPTION_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x01) 257*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_DU_ID_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x02) 258*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x03) 259*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x04) 260*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEYID_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x05) 261*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x06) 262*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x07) 263*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_STATE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x08) 264*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_TYPE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x09) 265*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_KEY_CALLOUT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0a) 266*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0b) 267*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_DISASSOCIATE_DATA_UNIT_KEYS_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0c) 268*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_LIST_KEY_GROUPS_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0d) 269*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_RESPONSE_INVALID_DESCRIPTION_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0e) 270*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0f) 271*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x10) 272*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEYS_REMAINING_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x11) 273*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEYS_SIZE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x12) 274*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_ARRAY_SIZE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x13) 275*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x14) 276*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x15) 277*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_STATE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x16) 278*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_TYPE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x17) 279*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_KEY_CALLOUT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x18) 280*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x19) 281*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_RESPONSE_INVALID_DESCRIPTION_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1a) 282*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1b) 283*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1c) 284*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEYID_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1d) 285*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1e) 286*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1f) 287*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_STATE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x20) 288*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_TYPE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x21) 289*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_KEY_CALLOUT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x22) 290*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x23) 291*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEYID_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x24) 292*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x25) 293*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x26) 294*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_STATE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x27) 295*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_TYPE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x28) 296*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_KEY_CALLOUT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x29) 297*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2a) 298*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_COMPUTE_CHALLENGE_RESPONSE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2b) 299*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_COMPUTE_FIXED_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2c) 300*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_CERTIFICATE_INVALID_CERTIFICATE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2d) 301*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_CERTIFICATE_INVALID_CHALLENGE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2e) 302*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_CERTIFICATE_INVALID_KEY_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2f) 303*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_CERTIFICATE_INVALID_RESPONSE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x30) 304*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_CERTIFICATE_SAVE_CA_CERTIFICATE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x31) 305*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_CERTIFICATE_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x32) 306*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_CLUSTER_INFORMATION (AUDIT_CLIENT_LOG_ERROR_BASE + 0x33) 307*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_CLUSTER_INFORMATION_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x34) 308*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_INVALID_CA_CERTIFICATE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x35) 309*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_INVALID_RESPONSE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x36) 310*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_LOAD_CLUSTER_INFORMATION_INVALID_CLUSTER_FILE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x37) 311*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_LOAD_CLUSTER_INFORMATION_OPEN_CLUSTER_FILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x38) 312*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_LOAD_PROFILE_EXPORT_CERTIFICATE_AND_KEY_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x39) 313*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_LOAD_PROFILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3a) 314*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_LOAD_PROFILE_SAVE_CA_CERTIFICATE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3b) 315*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_LOAD_PROFILE_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3c) 316*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_SAVE_CLUSTER_INFORMATION_OPEN_CLUSTER_FILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3d) 317*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_SAVE_ROOTCA_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3e) 318*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_SELECT_APPLIANCE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3f) 319*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_PROFILE_READ_CONFIG_FILE_INVALID_CONFIGURATION_FILE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x40) 320*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_PROFILE_READ_CONFIG_FILE_OPEN_CONFIGURATION_FILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x41) 321*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_PROFILE_WRITE_CONFIG_FILE_OPEN_CONFIGURATION_FILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x42) 322*12720SWyllys.Ingersoll@Sun.COM #define LoadProfile_AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x43) 323*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_AESKEYUNWRAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x44) 324*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_REGISTER_KWK_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x45) 325*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_REGISTER_KWK_INVALID_KEYID_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x46) 326*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KWK_RNG_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x47) 327*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x48) 328*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_INVALID_KEY_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x49) 329*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_INVALID_RSA_PUB_KEY (AUDIT_CLIENT_LOG_ERROR_BASE + 0x50) 330*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KWK_PUBLIC_ENCRYPT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x51) 331*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_AESKEYUNWRAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x52) 332*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_AESKEYUNWRAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x53) 333*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_AESKEYUNWRAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x54) 334*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x55) 335*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x56) 336*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x57) 337*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_WRAPPED_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x58) 338*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_CREATE_KEY_KWKID_MISMATCH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x59) 339*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_KWKID_MISMATCH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x60) 340*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_KWKID_MISMATCH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x61) 341*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_KWKID_MISMATCH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x62) 342*12720SWyllys.Ingersoll@Sun.COM #define AUDIT_CLIENT_AGENT_LOAD_PROFILE_NO_FIPS_COMPATIBLE_KMAS_AVAILABLE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x63) 343*12720SWyllys.Ingersoll@Sun.COM 344*12720SWyllys.Ingersoll@Sun.COM #endif 345