xref: /onnv-gate/usr/src/lib/libkmsagent/common/KMSClientProfileImpl.h (revision 12720:3db6e0082404)
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