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