2  * Copyright (c) 2003-2013 Apple Inc. All Rights Reserved. 
   4  * @APPLE_LICENSE_HEADER_START@ 
   6  * This file contains Original Code and/or Modifications of Original Code 
   7  * as defined in and that are subject to the Apple Public Source License 
   8  * Version 2.0 (the 'License'). You may not use this file except in 
   9  * compliance with the License. Please obtain a copy of the License at 
  10  * http://www.opensource.apple.com/apsl/ and read it before using this 
  13  * The Original Code and all software distributed under the License are 
  14  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  15  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  16  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 
  17  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  18  * Please see the License for the specific language governing rights and 
  19  * limitations under the License. 
  21  * @APPLE_LICENSE_HEADER_END@ 
  24 #include <Security/SecBase.h> 
  25 #include <Security/SecBasePriv.h> 
  26 #include <Security/SecKeychainPriv.h> 
  27 #include <security_utilities/threading.h> 
  28 #include <utilities/SecCFRelease.h> 
  29 #include "SecBridge.h" 
  31 static CFStringRef 
copyErrorMessageFromBundle(OSStatus status
,CFStringRef tableName
); 
  33 // caller MUST release the string, since it is gotten with "CFCopyLocalizedStringFromTableInBundle" 
  34 // intended use of reserved param is to pass in CFStringRef with name of the Table for lookup 
  35 // Will look by default in "SecErrorMessages.strings" in the resources of Security.framework. 
  39 SecCopyErrorMessageString(OSStatus status
, void *reserved
) 
  43                 CFStringRef result 
= copyErrorMessageFromBundle(status
,CFSTR("SecErrorMessages")); 
  45                         result 
= copyErrorMessageFromBundle(status
,CFSTR("SecDebugErrorMessages")); 
  49                         if (status 
>= errSecErrnoBase 
&& status 
<= errSecErrnoLimit
) 
  51                                 result 
= CFStringCreateWithFormat (NULL
, NULL
, CFSTR("UNIX[%s]"), strerror(status
-errSecErrnoBase
)); 
  55                                 // no error message found, so format a faked-up error message from the status 
  56                                 result 
= CFStringCreateWithFormat(NULL
, NULL
, CFSTR("OSStatus %d"), (int)status
); 
  70 cssmPerror(const char *how
, CSSM_RETURN error
) 
  74                 const char* errMsg 
= cssmErrorString(error
); 
  75                 fprintf(stderr
, "%s: %s\n", how 
? how 
: "error", errMsg
); 
  79                 fprintf(stderr
, "failed to print error: %lu\n", (unsigned long)error
); 
  85 cssmErrorString(CSSM_RETURN error
) 
  87         static ThreadNexus
<string
> lastError
; 
  92                 if (error 
>= errSecErrnoBase 
&& error 
<= errSecErrnoLimit
) 
  94                         err 
= string ("UNIX[") + strerror(error 
- errSecErrnoBase
) + "]"; 
  98                         CFStringRef result 
= copyErrorMessageFromBundle(error
,CFSTR("SecErrorMessages")); 
 100                                 result 
= copyErrorMessageFromBundle(error
,CFSTR("SecDebugErrorMessages")); 
 101                         err 
= cfString(result
, errSecErrorStringNotAvailable
); 
 102             CFReleaseSafe(result
); 
 108                         snprintf(buf
, sizeof(buf
), "unknown error %ld=%lx", (long) error
, (long) error
); 
 113                 return lastError().c_str(); 
 118                 snprintf (buf
, sizeof (buf
), "unknown error %ld=%lx", (long) error
, (long) error
); 
 120                 return lastError().c_str(); 
 125 static ModuleNexus
<Mutex
> gBundleLock
; 
 128 copyErrorMessageFromBundle(OSStatus status
,CFStringRef tableName
) 
 130         StLock
<Mutex
> _lock(gBundleLock()); 
 132     CFStringRef errorString 
= nil
; 
 133     CFStringRef keyString 
= nil
; 
 134     CFBundleRef secBundle 
= NULL
; 
 136     // Make a bundle instance using the URLRef. 
 137     secBundle 
= CFBundleGetBundleWithIdentifier(CFSTR("com.apple.security")); 
 141     // Convert status to Int32 string representation, e.g. "-25924" 
 142     keyString 
= CFStringCreateWithFormat (kCFAllocatorDefault
,NULL
,CFSTR("%d"),(int)status
); 
 146         errorString 
= CFCopyLocalizedStringFromTableInBundle(keyString
,tableName
,secBundle
,NULL
); 
 147     if (CFStringCompare(errorString
, keyString
, 0)==kCFCompareEqualTo
)  // no real error message 
 150                         CFRelease(errorString
);  
 155         CFRelease(keyString
);    
 160 /* Convert a possible CSSM type osStatus error to a more Keychain friendly OSStatus. */ 
 161 OSStatus 
SecKeychainErrFromOSStatus(OSStatus osStatus
) 
 163         if (CSSM_ERR_IS_CONVERTIBLE(osStatus
)) 
 165                 switch (CSSM_ERRCODE(osStatus
)) 
 167                         // CONVERTIBLE ERROR CODES. 
 168                         case CSSM_ERRCODE_SERVICE_NOT_AVAILABLE
: 
 169                                 return errSecNotAvailable
; 
 170                         case CSSM_ERRCODE_USER_CANCELED
: 
 171                                 return errSecUserCanceled
; 
 172                         case CSSM_ERRCODE_OPERATION_AUTH_DENIED
: 
 173                                 return errSecAuthFailed
; 
 174                         case CSSM_ERRCODE_NO_USER_INTERACTION
: 
 175                                 return errSecInteractionNotAllowed
; 
 176                         case CSSM_ERRCODE_IN_DARK_WAKE
: 
 177                                 return errSecInDarkWake
; 
 178                         case CSSM_ERRCODE_OS_ACCESS_DENIED
: 
 180                         case CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION
: 
 181                                 return errSecInsufficientClientID
; 
 182                         case CSSM_ERRCODE_DEVICE_RESET
: 
 183                                 return errSecDeviceReset
; 
 184                         case CSSM_ERRCODE_DEVICE_FAILED
: 
 185                                 return errSecDeviceFailed
; 
 186                         case CSSM_ERRCODE_INTERNAL_ERROR
: 
 187                                 return errSecInternalError
; 
 188                         case CSSM_ERRCODE_MEMORY_ERROR
: 
 189                                 return errSecMemoryError
; 
 190                         case CSSM_ERRCODE_MDS_ERROR
: 
 191                                 return errSecMDSError
; 
 192                         case CSSM_ERRCODE_INVALID_POINTER
: 
 193                         case CSSM_ERRCODE_INVALID_INPUT_POINTER
: 
 194                         case CSSM_ERRCODE_INVALID_OUTPUT_POINTER
: 
 195                         case CSSM_ERRCODE_INVALID_CERTGROUP_POINTER
: 
 196                         case CSSM_ERRCODE_INVALID_CERT_POINTER
: 
 197                         case CSSM_ERRCODE_INVALID_CRL_POINTER
: 
 198                         case CSSM_ERRCODE_INVALID_FIELD_POINTER
: 
 199                         case CSSM_ERRCODE_INVALID_DB_LIST_POINTER
: 
 200                                 return errSecInvalidPointer
; 
 201                         case CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED
: 
 202                                 return errSecUnimplemented
;              
 203                         case CSSM_ERRCODE_SELF_CHECK_FAILED
: 
 204                         case CSSMERR_CL_SELF_CHECK_FAILED
: 
 205                         case CSSMERR_DL_SELF_CHECK_FAILED
: 
 206                                 return errSecSelfCheckFailed
; 
 207                         case CSSM_ERRCODE_FUNCTION_FAILED
: 
 208                                 return errSecFunctionFailed
; 
 209                         case CSSM_ERRCODE_MODULE_MANIFEST_VERIFY_FAILED
: 
 210                                 return errSecModuleManifestVerifyFailed
; 
 211                         case CSSM_ERRCODE_INVALID_GUID
: 
 212                                 return errSecInvalidGUID
; 
 213                         case CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED
: 
 214                         case CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED
: 
 215                                 return errAuthorizationDenied
; 
 216                         case CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED
:      
 217                         case CSSM_ERRCODE_OBJECT_ACL_REQUIRED
: 
 218                         case CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE
: 
 219                         case CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED
: 
 220                         case CSSM_ERRCODE_INVALID_ACL_EDIT_MODE
: 
 221                         case CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY
: 
 222                         case CSSM_ERRCODE_INVALID_NEW_ACL_OWNER
: 
 223                                 return errSecInvalidACL
; 
 224                         case CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS
: 
 225                                 return errSecInvalidAccessCredentials
; 
 226                         case CSSM_ERRCODE_INVALID_ACL_BASE_CERTS
: 
 227                         case CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED
: 
 228                                 return errSecInvalidCertificateGroup
; 
 229                         case CSSM_ERRCODE_INVALID_SAMPLE_VALUE
: 
 230                                 return errSecInvalidSampleValue
; 
 231                         case CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED
: 
 232                                 return errSecInvalidSampleValue
; 
 233                         case CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK
: 
 234                                 return errSecInvalidCallback
; 
 235                         case CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED
: 
 236                                 return errSecCallbackFailed
; 
 237                         case CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG
: 
 238                         case CSSM_ERRCODE_UNKNOWN_TAG
: 
 239                                 return errSecUnknownTag
; 
 240                         case CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND
: 
 241                                 return errSecTagNotFound
; 
 242                         case CSSM_ERRCODE_ACL_CHANGE_FAILED
: 
 243                                 return errSecACLChangeFailed
; 
 244                         case CSSM_ERRCODE_ACL_DELETE_FAILED
: 
 245                                 return errSecACLDeleteFailed
; 
 246                         case CSSM_ERRCODE_ACL_REPLACE_FAILED
: 
 247                                 return errSecACLReplaceFailed
; 
 248                         case CSSM_ERRCODE_ACL_ADD_FAILED
: 
 249                                 return errSecACLAddFailed
; 
 250                         case CSSM_ERRCODE_INVALID_CONTEXT_HANDLE
: 
 251                         case CSSM_ERRCODE_INVALID_DB_HANDLE
: 
 252                         case CSSM_ERRCODE_INVALID_CSP_HANDLE
: 
 253                         case CSSM_ERRCODE_INVALID_DL_HANDLE
: 
 254                         case CSSM_ERRCODE_INVALID_CL_HANDLE
: 
 255                         case CSSM_ERRCODE_INVALID_TP_HANDLE
: 
 256                         case CSSM_ERRCODE_INVALID_KR_HANDLE
: 
 257                         case CSSM_ERRCODE_INVALID_AC_HANDLE
: 
 258                                 return errSecInvalidHandle
; 
 259                         case CSSM_ERRCODE_INCOMPATIBLE_VERSION
: 
 260                                 return errSecIncompatibleVersion
; 
 261                         case CSSM_ERRCODE_INVALID_DATA
: 
 262                                 return errSecInvalidData
; 
 263                         case CSSM_ERRCODE_CRL_ALREADY_SIGNED
: 
 264                                 return errSecCRLAlreadySigned
; 
 265                         case CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS
: 
 266                                 return errSecInvalidNumberOfFields
; 
 267                         case CSSM_ERRCODE_VERIFICATION_FAILURE
: 
 268                                 return errSecVerificationFailure
; 
 269                         case CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED
: 
 270                                 return errSecPrivilegeNotGranted
; 
 271                         case CSSM_ERRCODE_INVALID_DB_LIST
: 
 272                                 return errSecInvalidDBList
; 
 273                         case CSSM_ERRCODE_UNKNOWN_FORMAT
: 
 274                                 return errSecUnknownFormat
; 
 275                         case CSSM_ERRCODE_INVALID_PASSTHROUGH_ID
: 
 276                                 return errSecInvalidPassthroughID
; 
 277                         case CSSM_ERRCODE_INVALID_NETWORK_ADDR
: 
 278                                 return errSecInvalidNetworkAddress
; 
 279                         case CSSM_ERRCODE_INVALID_CRYPTO_DATA
: 
 280                                 return errSecInvalidData
; 
 285                 // Some CSSM errors mapped to OSStatus-type (SnowLeopard and earlier). 
 287                 case CSSMERR_DL_RECORD_NOT_FOUND
: 
 288                 case CSSMERR_APPLETP_CERT_NOT_FOUND_FROM_ISSUER
: 
 289                 case CSSMERR_CSP_PRIVATE_KEY_NOT_FOUND
: 
 290                         return errSecItemNotFound
; 
 291                 case CSSMERR_DL_INVALID_UNIQUE_INDEX_DATA
:  
 292                 case CSSMERR_CSP_PRIVATE_KEY_ALREADY_EXISTS
:  
 293                 case CSSMERR_CSP_KEY_LABEL_ALREADY_EXISTS
: 
 294                         return errSecDuplicateItem
; 
 295                 case CSSMERR_DL_DATABASE_CORRUPT
: 
 296                         return errSecInvalidKeychain
; 
 297                 case CSSMERR_DL_DATASTORE_DOESNOT_EXIST
: 
 298                         return errSecNoSuchKeychain
; 
 299                 case CSSMERR_DL_DATASTORE_ALREADY_EXISTS
: 
 300                         return errSecDuplicateKeychain
; 
 301                 case CSSMERR_APPLEDL_DISK_FULL
: 
 302                         return errSecDskFull
; 
 303                 case CSSMERR_DL_INVALID_OPEN_PARAMETERS
:  
 304                 case CSSMERR_APPLEDL_INVALID_OPEN_PARAMETERS
: 
 305                 case CSSMERR_APPLE_DOTMAC_REQ_SERVER_PARAM
: 
 307                 case CSSMERR_DL_INVALID_FIELD_NAME
:  
 308                 case CSSMERR_CSSM_INVALID_ATTRIBUTE
: 
 309                         return errSecNoSuchAttr
; 
 310                 case CSSMERR_DL_OS_ACCESS_DENIED
:  
 311                 case CSSMERR_CSP_OS_ACCESS_DENIED
: 
 312                 case CSSMERR_TP_OS_ACCESS_DENIED
:  
 313                 case CSSMERR_AC_OS_ACCESS_DENIED
:  
 314                 case CSSMERR_CL_OS_ACCESS_DENIED
: 
 316                 case CSSMERR_CSSM_BUFFER_TOO_SMALL
: 
 317                         return errSecBufferTooSmall
; 
 318                 case CSSMERR_CSSM_FUNCTION_NOT_IMPLEMENTED
: 
 319                 case CSSMERR_CSP_FUNCTION_NOT_IMPLEMENTED
: 
 320                 case CSSMERR_TP_FUNCTION_NOT_IMPLEMENTED
: 
 321                 case CSSMERR_AC_FUNCTION_NOT_IMPLEMENTED
: 
 322                 case CSSMERR_CL_FUNCTION_NOT_IMPLEMENTED
: 
 323                 case CSSMERR_DL_FUNCTION_NOT_IMPLEMENTED
: 
 324                 case CSSMERR_APPLE_DOTMAC_REQ_SERVER_UNIMPL
: 
 325                         return errSecUnimplemented
; 
 326                 case CSSMERR_CSSM_INTERNAL_ERROR
: 
 327                 case CSSMERR_CSP_INTERNAL_ERROR
: 
 328                 case CSSMERR_TP_INTERNAL_ERROR
: 
 329                 case CSSMERR_AC_INTERNAL_ERROR
:  
 330                 case CSSMERR_CL_INTERNAL_ERROR
: 
 331                 case CSSMERR_DL_INTERNAL_ERROR
: 
 332                         return errSecInternalError
; 
 333                 case CSSMERR_CSSM_MEMORY_ERROR
: 
 334                 case CSSMERR_CSP_MEMORY_ERROR
: 
 335                 case CSSMERR_TP_MEMORY_ERROR
: 
 336                 case CSSMERR_AC_MEMORY_ERROR
: 
 337                 case CSSMERR_CSP_DEVICE_MEMORY_ERROR
:  
 338                 case CSSMERR_CL_MEMORY_ERROR
: 
 339                 case CSSMERR_DL_MEMORY_ERROR
: 
 340                         return errSecMemoryError
; 
 341                 case CSSMERR_CSSM_MDS_ERROR
: 
 342                 case CSSMERR_CSP_MDS_ERROR
: 
 343                 case CSSMERR_TP_MDS_ERROR
: 
 344                 case CSSMERR_AC_MDS_ERROR
: 
 345                 case CSSMERR_CL_MDS_ERROR
: 
 346                 case CSSMERR_DL_MDS_ERROR
: 
 347                         return errSecMDSError
; 
 348                 case CSSMERR_CSSM_INVALID_POINTER
: 
 349                 case CSSMERR_CSP_INVALID_POINTER
: 
 350                 case CSSMERR_TP_INVALID_POINTER
: 
 351                 case CSSMERR_AC_INVALID_POINTER
: 
 352                 case CSSMERR_CL_INVALID_POINTER
: 
 353                 case CSSMERR_DL_INVALID_POINTER
: 
 354                 case CSSMERR_CSSM_INVALID_INPUT_POINTER
: 
 355                 case CSSMERR_CSP_INVALID_INPUT_POINTER
: 
 356                 case CSSMERR_TP_INVALID_INPUT_POINTER
:  
 357                 case CSSMERR_AC_INVALID_INPUT_POINTER
: 
 358                 case CSSMERR_CL_INVALID_INPUT_POINTER
: 
 359                 case CSSMERR_DL_INVALID_INPUT_POINTER
: 
 360                 case CSSMERR_TP_INVALID_DB_LIST_POINTER
: 
 361                 case CSSMERR_AC_INVALID_DB_LIST_POINTER
: 
 362                 case CSSMERR_DL_INVALID_DB_LIST_POINTER
: 
 363                 case CSSMERR_TP_INVALID_CERTGROUP_POINTER
: 
 364                 case CSSMERR_TP_INVALID_CERT_POINTER
: 
 365                 case CSSMERR_TP_INVALID_CRL_POINTER
: 
 366                 case CSSMERR_TP_INVALID_FIELD_POINTER
: 
 367                 case CSSMERR_CSP_INVALID_KEY_POINTER
: 
 368                 case CSSMERR_TP_INVALID_CALLERAUTH_CONTEXT_POINTER
: 
 369                 case CSSMERR_TP_INVALID_IDENTIFIER_POINTER
: 
 370                 case CSSMERR_TP_INVALID_CRLGROUP_POINTER
: 
 371                 case CSSMERR_TP_INVALID_TUPLEGROUP_POINTER
: 
 372                 case CSSMERR_CL_INVALID_CERTGROUP_POINTER
: 
 373                 case CSSMERR_CL_INVALID_CERT_POINTER
: 
 374                 case CSSMERR_CL_INVALID_CRL_POINTER
: 
 375                 case CSSMERR_CL_INVALID_FIELD_POINTER
: 
 376                 case CSSMERR_CL_INVALID_BUNDLE_POINTER
: 
 377                 case CSSMERR_CSSM_INVALID_OUTPUT_POINTER
: 
 378                 case CSSMERR_CSP_INVALID_OUTPUT_POINTER
: 
 379                 case CSSMERR_TP_INVALID_OUTPUT_POINTER
:  
 380                 case CSSMERR_AC_INVALID_OUTPUT_POINTER
: 
 381                 case CSSMERR_CL_INVALID_OUTPUT_POINTER
: 
 382                 case CSSMERR_DL_INVALID_OUTPUT_POINTER
: 
 383                         return errSecInvalidPointer
; 
 384                 case CSSMERR_CSSM_FUNCTION_FAILED
: 
 385                 case CSSMERR_CSP_FUNCTION_FAILED
: 
 386                 case CSSMERR_TP_FUNCTION_FAILED
: 
 387                 case CSSMERR_AC_FUNCTION_FAILED
: 
 388                 case CSSMERR_CL_FUNCTION_FAILED
: 
 389                 case CSSMERR_DL_FUNCTION_FAILED
: 
 390                         return errSecFunctionFailed
; 
 391                 case CSSMERR_CSP_INVALID_DATA
: 
 392                 case CSSMERR_TP_INVALID_DATA
: 
 393                 case CSSMERR_AC_INVALID_DATA
: 
 394                 case CSSMERR_CL_INVALID_DATA
: 
 395                 case CSSMERR_CSP_INVALID_CRYPTO_DATA
: 
 396                 case CSSMERR_CSP_INVALID_DATA_COUNT
: 
 397                 case CSSMERR_TP_INVALID_ACTION_DATA
: 
 398                         return errSecInvalidData
; 
 399                 case CSSMERR_TP_INVALID_DB_LIST
: 
 400                 case CSSMERR_AC_INVALID_DB_LIST
: 
 401                         return errSecInvalidDBList
; 
 402                 case CSSMERR_CSP_INVALID_PASSTHROUGH_ID
: 
 403                 case CSSMERR_TP_INVALID_PASSTHROUGH_ID
: 
 404                 case CSSMERR_AC_INVALID_PASSTHROUGH_ID
:  
 405                 case CSSMERR_CL_INVALID_PASSTHROUGH_ID
:  
 406                 case CSSMERR_DL_INVALID_PASSTHROUGH_ID
: 
 407                         return errSecInvalidPassthroughID
; 
 408                 case CSSMERR_TP_INVALID_CSP_HANDLE
: 
 409                 case CSSMERR_TP_INVALID_CL_HANDLE
: 
 410                 case CSSMERR_TP_INVALID_DL_HANDLE
: 
 411                 case CSSMERR_AC_INVALID_TP_HANDLE
: 
 412                 case CSSMERR_AC_INVALID_DL_HANDLE
: 
 413                 case CSSMERR_DL_INVALID_DL_HANDLE
: 
 414                 case CSSMERR_AC_INVALID_CL_HANDLE
: 
 415                 case CSSMERR_DL_INVALID_CL_HANDLE
: 
 416                 case CSSMERR_DL_INVALID_CSP_HANDLE
: 
 417                 case CSSMERR_TP_INVALID_DB_HANDLE
: 
 418                 case CSSMERR_CSSM_INVALID_ADDIN_HANDLE
: 
 419                 case CSSMERR_CSSM_INVALID_CONTEXT_HANDLE
: 
 420                 case CSSMERR_CL_INVALID_CACHE_HANDLE
: 
 421                 case CSSMERR_CL_INVALID_RESULTS_HANDLE
: 
 422                 case CSSMERR_DL_INVALID_RESULTS_HANDLE
: 
 423                 case CSSMERR_TP_INVALID_KEYCACHE_HANDLE
: 
 424                 case CSSMERR_CSP_INVALID_CONTEXT_HANDLE
: 
 425                 case CSSMERR_TP_INVALID_CONTEXT_HANDLE
: 
 426                 case CSSMERR_AC_INVALID_CONTEXT_HANDLE
: 
 427                 case CSSMERR_CL_INVALID_CONTEXT_HANDLE
: 
 428                         return errSecInvalidHandle
; 
 429                 case CSSMERR_TP_CRL_ALREADY_SIGNED
: 
 430                 case CSSMERR_CL_CRL_ALREADY_SIGNED
: 
 431                         return errSecCRLAlreadySigned
; 
 432                 case CSSMERR_TP_INVALID_NUMBER_OF_FIELDS
: 
 433                 case CSSMERR_CL_INVALID_NUMBER_OF_FIELDS
: 
 434                         return errSecInvalidNumberOfFields
; 
 435                 case CSSMERR_TP_VERIFICATION_FAILURE
: 
 436                 case CSSMERR_CL_VERIFICATION_FAILURE
: 
 437                         return errSecVerificationFailure
; 
 438                 case CSSMERR_TP_INVALID_NETWORK_ADDR
: 
 439                 case CSSMERR_DL_INVALID_NETWORK_ADDR
: 
 440                         return errSecInvalidNetworkAddress
; 
 441                 case CSSMERR_TP_UNKNOWN_TAG
: 
 442                 case CSSMERR_CL_UNKNOWN_TAG
: 
 443                 case CSSMERR_CSP_INVALID_ACL_ENTRY_TAG
: 
 444                 case CSSMERR_DL_INVALID_ACL_ENTRY_TAG
: 
 445                 case CSSMERR_DL_INVALID_SELECTION_TAG
: 
 446                         return errSecUnknownTag
; 
 447                 case CSSMERR_CSP_INVALID_SIGNATURE
: 
 448                 case CSSMERR_TP_INVALID_SIGNATURE
: 
 449                         return errSecInvalidSignature
; 
 450                 case CSSMERR_CSSM_USER_CANCELED
: 
 451                 case CSSMERR_CSP_USER_CANCELED
: 
 452                 case CSSMERR_TP_USER_CANCELED
: 
 453                 case CSSMERR_AC_USER_CANCELED
: 
 454                 case CSSMERR_CL_USER_CANCELED
: 
 455                 case CSSMERR_DL_USER_CANCELED
: 
 456                         return errSecUserCanceled
; 
 457                 case CSSMERR_CSSM_NO_USER_INTERACTION
: 
 458                 case CSSMERR_CSP_NO_USER_INTERACTION
: 
 459                 case CSSMERR_TP_NO_USER_INTERACTION
: 
 460                 case CSSMERR_AC_NO_USER_INTERACTION
: 
 461                 case CSSMERR_CL_NO_USER_INTERACTION
: 
 462                 case CSSMERR_DL_NO_USER_INTERACTION
: 
 463                         return errSecInteractionNotAllowed
; 
 464                 case CSSMERR_CSSM_IN_DARK_WAKE
: 
 465                 case CSSMERR_CSP_IN_DARK_WAKE
: 
 466                 case CSSMERR_TP_IN_DARK_WAKE
: 
 467                 case CSSMERR_AC_IN_DARK_WAKE
: 
 468                 case CSSMERR_CL_IN_DARK_WAKE
: 
 469                 case CSSMERR_DL_IN_DARK_WAKE
: 
 470                         return errSecInDarkWake
; 
 471                 case CSSMERR_CSSM_SERVICE_NOT_AVAILABLE
: 
 472                 case CSSMERR_CSP_SERVICE_NOT_AVAILABLE
: 
 473                 case CSSMERR_TP_SERVICE_NOT_AVAILABLE
: 
 474                 case CSSMERR_AC_SERVICE_NOT_AVAILABLE
: 
 475                 case CSSMERR_CL_SERVICE_NOT_AVAILABLE
: 
 476                 case CSSMERR_DL_SERVICE_NOT_AVAILABLE
: 
 477                         return errSecServiceNotAvailable
; 
 478                 case CSSMERR_CSSM_INSUFFICIENT_CLIENT_IDENTIFICATION
: 
 479                 case CSSMERR_CSP_INSUFFICIENT_CLIENT_IDENTIFICATION
: 
 480                 case CSSMERR_TP_INSUFFICIENT_CLIENT_IDENTIFICATION
: 
 481                 case CSSMERR_AC_INSUFFICIENT_CLIENT_IDENTIFICATION
: 
 482                 case CSSMERR_CL_INSUFFICIENT_CLIENT_IDENTIFICATION
: 
 483                 case CSSMERR_DL_INSUFFICIENT_CLIENT_IDENTIFICATION
: 
 484                         return errSecInsufficientClientID
; 
 485                 case CSSMERR_CSSM_DEVICE_RESET
: 
 486                 case CSSMERR_CSP_DEVICE_RESET
: 
 487                 case CSSMERR_TP_DEVICE_RESET
: 
 488                 case CSSMERR_AC_DEVICE_RESET
: 
 489                 case CSSMERR_CL_DEVICE_RESET
: 
 490                 case CSSMERR_DL_DEVICE_RESET
: 
 491                         return errSecDeviceReset
; 
 492                 case CSSMERR_CSSM_DEVICE_FAILED
: 
 493                 case CSSMERR_CSP_DEVICE_FAILED
: 
 494                 case CSSMERR_TP_DEVICE_FAILED
: 
 495                 case CSSMERR_AC_DEVICE_FAILED
: 
 496                 case CSSMERR_CL_DEVICE_FAILED
: 
 497                 case CSSMERR_DL_DEVICE_FAILED
: 
 498                         return errSecDeviceFailed
; 
 499                 case CSSMERR_APPLE_DOTMAC_REQ_SERVER_AUTH
: 
 500                 case CSSMERR_CSSM_EMM_AUTHENTICATE_FAILED
: 
 501                 case CSSMERR_CSSM_ADDIN_AUTHENTICATE_FAILED
: 
 502                 case CSSMERR_CSP_OPERATION_AUTH_DENIED
: 
 503                 case CSSMERR_CSP_OBJECT_USE_AUTH_DENIED
: 
 504                 case CSSMERR_CSP_OBJECT_MANIP_AUTH_DENIED
: 
 505                 case CSSMERR_TP_AUTHENTICATION_FAILED
: 
 506                 case CSSMERR_DL_OPERATION_AUTH_DENIED
: 
 507                 case CSSMERR_DL_OBJECT_USE_AUTH_DENIED
: 
 508                 case CSSMERR_DL_OBJECT_MANIP_AUTH_DENIED
: 
 509                         return errAuthorizationDenied
; 
 510                 case CSSMERR_CSSM_SCOPE_NOT_SUPPORTED
: 
 511                 case CSSMERR_CL_SCOPE_NOT_SUPPORTED
: 
 512                 case CSSMERR_CL_INVALID_SCOPE
: 
 513                         return errSecInvalidScope
; 
 514                 case CSSMERR_TP_INVALID_NAME
: 
 515                 case CSSMERR_DL_INVALID_DB_NAME
: 
 516                         return errSecInvalidName
; 
 517                 case CSSMERR_APPLETP_BAD_CERT_FROM_ISSUER
: 
 518                 case CSSMERR_TP_INVALID_CERTIFICATE
: 
 519                 case CSSMERR_TP_INVALID_ANCHOR_CERT
: 
 520                 case CSSMERR_APPLETP_CRL_INVALID_ANCHOR_CERT
: 
 521                 case CSSMERR_APPLETP_OCSP_INVALID_ANCHOR_CERT
: 
 522                         return errSecInvalidCertificateRef
; 
 523                 case CSSMERR_CSP_ACL_ENTRY_TAG_NOT_FOUND
: 
 524                 case CSSMERR_DL_ACL_ENTRY_TAG_NOT_FOUND
: 
 525                         return errSecTagNotFound
; 
 526                 case CSSMERR_DL_UNSUPPORTED_QUERY
: 
 527                 case CSSMERR_DL_INVALID_QUERY
: 
 528                         return errSecInvalidQuery
; 
 529                 case CSSMERR_CSP_INVALID_ACL_CHALLENGE_CALLBACK
: 
 530                 case CSSMERR_TP_INVALID_CALLBACK
:  
 531                 case CSSMERR_DL_INVALID_ACL_CHALLENGE_CALLBACK
: 
 532                         return errSecInvalidCallback
; 
 533                 case CSSMERR_CSP_ACL_CHALLENGE_CALLBACK_FAILED
: 
 534                 case CSSMERR_CSP_CRYPTO_DATA_CALLBACK_FAILED
: 
 535                 case CSSMERR_DL_ACL_CHALLENGE_CALLBACK_FAILED
: 
 536                         return errSecCallbackFailed
; 
 537                 case CSSMERR_TP_INVALID_CERTGROUP
: 
 538                 case CSSMERR_TP_CERTGROUP_INCOMPLETE
: 
 539                 case CSSMERR_DL_INVALID_ACL_BASE_CERTS
: 
 540                 case CSSMERR_DL_ACL_BASE_CERTS_NOT_SUPPORTED
: 
 541                 case CSSMERR_CSP_INVALID_ACL_BASE_CERTS
: 
 542                         return errSecInvalidCertificateGroup
; 
 543                 case CSSMERR_CSP_ACL_DELETE_FAILED
: 
 544                 case CSSMERR_DL_ACL_DELETE_FAILED
: 
 545                         return errSecACLDeleteFailed
; 
 546                 case CSSMERR_CSP_ACL_REPLACE_FAILED
: 
 547                 case CSSMERR_DL_ACL_REPLACE_FAILED
: 
 548                         return errSecACLReplaceFailed
; 
 549                 case CSSMERR_CSP_ACL_ADD_FAILED
: 
 550                 case CSSMERR_DL_ACL_ADD_FAILED
: 
 551                         return errSecACLAddFailed
; 
 552                 case CSSMERR_DL_ACL_CHANGE_FAILED
: 
 553                 case CSSMERR_CSP_ACL_CHANGE_FAILED
: 
 554                         return errSecACLChangeFailed
; 
 555                 case CSSMERR_CSSM_PRIVILEGE_NOT_GRANTED
: 
 556                 case CSSMERR_CSP_PRIVILEGE_NOT_GRANTED
: 
 557                         return errSecPrivilegeNotGranted
; 
 558                 case CSSMERR_CSP_INVALID_ACCESS_CREDENTIALS
: 
 559                 case CSSMERR_DL_INVALID_ACCESS_CREDENTIALS
: 
 560                         return errSecInvalidAccessCredentials
; 
 561                 case CSSMERR_DL_INVALID_RECORD_INDEX
: 
 562                 case CSSMERR_DL_INVALID_RECORDTYPE
: 
 563                 case CSSMERR_DL_UNSUPPORTED_RECORDTYPE
: 
 564                 case CSSMERR_DL_INVALID_RECORD_UID
: 
 565                 case CSSMERR_DL_STALE_UNIQUE_RECORD
: 
 566                         return errSecInvalidRecord
; 
 567                 case CSSMERR_CSP_INVALID_KEY
: 
 568                 case CSSMERR_CSP_INVALID_KEY_REFERENCE
: 
 569                 case CSSMERR_CSP_INVALID_KEY_CLASS
: 
 570                         return errSecInvalidKeyRef
; 
 571                 case CSSMERR_CSP_OBJECT_ACL_NOT_SUPPORTED
: 
 572                 case CSSMERR_CSP_OBJECT_ACL_REQUIRED
: 
 573                 case CSSMERR_CSP_ACL_BASE_CERTS_NOT_SUPPORTED
: 
 574                 case CSSMERR_CSP_INVALID_ACL_SUBJECT_VALUE
: 
 575                 case CSSMERR_CSP_ACL_SUBJECT_TYPE_NOT_SUPPORTED
: 
 576                 case CSSMERR_DL_OBJECT_ACL_NOT_SUPPORTED
: 
 577                 case CSSMERR_DL_OBJECT_ACL_REQUIRED
: 
 578                 case CSSMERR_DL_INVALID_ACL_SUBJECT_VALUE
: 
 579                 case CSSMERR_DL_ACL_SUBJECT_TYPE_NOT_SUPPORTED
: 
 580                 case CSSMERR_DL_INVALID_NEW_ACL_ENTRY
: 
 581                 case CSSMERR_DL_INVALID_NEW_ACL_OWNER
: 
 582                 case CSSMERR_DL_INVALID_ACL_EDIT_MODE
: 
 583                 case CSSMERR_CSP_INVALID_ACL_EDIT_MODE
: 
 584                 case CSSMERR_CSP_INVALID_NEW_ACL_ENTRY
: 
 585                 case CSSMERR_CSP_INVALID_NEW_ACL_OWNER
: 
 586                         return errSecInvalidACL
; 
 587                 case CSSMERR_CSP_INVALID_SAMPLE_VALUE
: 
 588                 case CSSMERR_DL_INVALID_SAMPLE_VALUE
: 
 589                 case CSSMERR_CSP_SAMPLE_VALUE_NOT_SUPPORTED
:  
 590                 case CSSMERR_DL_SAMPLE_VALUE_NOT_SUPPORTED
: 
 591                         return errSecInvalidSampleValue
; 
 592                 case CSSMERR_TP_UNKNOWN_FORMAT
: 
 593                 case CSSMERR_CL_UNKNOWN_FORMAT
: 
 594                         return errSecUnknownFormat
; 
 595                 case CSSMERR_CSP_APPLE_ADD_APPLICATION_ACL_SUBJECT
: 
 596                         return errSecAppleAddAppACLSubject
; 
 597                 case CSSMERR_CSP_APPLE_PUBLIC_KEY_INCOMPLETE
: 
 598                         return errSecApplePublicKeyIncomplete
; 
 599                 case CSSMERR_CSP_APPLE_SIGNATURE_MISMATCH
: 
 600                         return errSecAppleSignatureMismatch
; 
 601                 case CSSMERR_CSP_APPLE_INVALID_KEY_START_DATE
: 
 602                         return errSecAppleInvalidKeyStartDate
; 
 603                 case CSSMERR_CSP_APPLE_INVALID_KEY_END_DATE
: 
 604                         return errSecAppleInvalidKeyEndDate
; 
 605                 case CSSMERR_CSPDL_APPLE_DL_CONVERSION_ERROR
: 
 606                         return errSecConversionError
; 
 607                 case CSSMERR_CSP_APPLE_SSLv2_ROLLBACK
: 
 608                         return errSecAppleSSLv2Rollback
; 
 609                 case CSSMERR_APPLEDL_QUOTA_EXCEEDED
: 
 610                         return errSecQuotaExceeded
; 
 611                 case CSSMERR_APPLEDL_FILE_TOO_BIG
: 
 612                         return errSecFileTooBig
; 
 613                 case CSSMERR_APPLEDL_INVALID_DATABASE_BLOB
: 
 614                         return errSecInvalidDatabaseBlob
; 
 615                 case CSSMERR_APPLEDL_INVALID_KEY_BLOB
: 
 616                         return errSecInvalidKeyBlob
; 
 617                 case CSSMERR_APPLEDL_INCOMPATIBLE_DATABASE_BLOB
: 
 618                         return errSecIncompatibleDatabaseBlob
; 
 619                 case CSSMERR_APPLEDL_INCOMPATIBLE_KEY_BLOB
: 
 620                         return errSecIncompatibleKeyBlob
; 
 621                 case CSSMERR_APPLETP_HOSTNAME_MISMATCH
: 
 622                         return errSecHostNameMismatch
; 
 623                 case CSSMERR_APPLETP_UNKNOWN_CRITICAL_EXTEN
: 
 624                         return errSecUnknownCriticalExtensionFlag
; 
 625                 case CSSMERR_APPLETP_NO_BASIC_CONSTRAINTS
: 
 626                         return errSecNoBasicConstraints
; 
 627                 case CSSMERR_APPLETP_INVALID_AUTHORITY_ID
: 
 628                         return errSecInvalidAuthorityKeyID
; 
 629                 case CSSMERR_APPLETP_INVALID_SUBJECT_ID
: 
 630                         return errSecInvalidSubjectKeyID
; 
 631                 case CSSMERR_APPLETP_INVALID_KEY_USAGE
: 
 632                         return errSecInvalidKeyUsageForPolicy
; 
 633                 case CSSMERR_APPLETP_INVALID_EXTENDED_KEY_USAGE
: 
 634                         return errSecInvalidExtendedKeyUsage
; 
 635                 case CSSMERR_APPLETP_INVALID_ID_LINKAGE
: 
 636                         return errSecInvalidIDLinkage
; 
 637                 case CSSMERR_APPLETP_PATH_LEN_CONSTRAINT
: 
 638                         return errSecPathLengthConstraintExceeded
; 
 639                 case CSSMERR_APPLETP_INVALID_ROOT
: 
 640                         return errSecInvalidRoot
; 
 641                 case CSSMERR_APPLETP_CRL_EXPIRED
: 
 642                         return errSecCRLExpired
; 
 643                 case CSSMERR_APPLETP_CRL_NOT_VALID_YET
: 
 644                         return errSecCRLNotValidYet
; 
 645                 case CSSMERR_APPLETP_CRL_NOT_FOUND
: 
 646                         return errSecCRLNotFound
; 
 647                 case CSSMERR_APPLETP_CRL_SERVER_DOWN
: 
 648                         return errSecCRLServerDown
; 
 649                 case CSSMERR_APPLETP_CRL_BAD_URI
: 
 650                         return errSecCRLBadURI
; 
 651                 case CSSMERR_APPLETP_UNKNOWN_CERT_EXTEN
: 
 652                         return errSecUnknownCertExtension
; 
 653                 case CSSMERR_APPLETP_UNKNOWN_CRL_EXTEN
: 
 654                         return errSecUnknownCRLExtension
; 
 655                 case CSSMERR_APPLETP_CRL_NOT_TRUSTED
: 
 656                         return errSecCRLNotTrusted
; 
 657                 case CSSMERR_APPLETP_CRL_POLICY_FAIL
: 
 658                         return errSecCRLPolicyFailed
; 
 659                 case CSSMERR_APPLETP_IDP_FAIL
: 
 660                         return errSecIDPFailure
; 
 661                 case CSSMERR_APPLETP_SMIME_EMAIL_ADDRS_NOT_FOUND
: 
 662                         return errSecSMIMEEmailAddressesNotFound
; 
 663                 case CSSMERR_APPLETP_SMIME_BAD_EXT_KEY_USE
: 
 664                         return errSecSMIMEBadExtendedKeyUsage
; 
 665                 case CSSMERR_APPLETP_SMIME_BAD_KEY_USE
: 
 666                         return errSecSMIMEBadKeyUsage
; 
 667                 case CSSMERR_APPLETP_SMIME_KEYUSAGE_NOT_CRITICAL
: 
 668                         return errSecSMIMEKeyUsageNotCritical
; 
 669                 case CSSMERR_APPLETP_SMIME_NO_EMAIL_ADDRS
: 
 670                         return errSecSMIMENoEmailAddress
; 
 671                 case CSSMERR_APPLETP_SMIME_SUBJ_ALT_NAME_NOT_CRIT
: 
 672                         return errSecSMIMESubjAltNameNotCritical
; 
 673                 case CSSMERR_APPLETP_SSL_BAD_EXT_KEY_USE
: 
 674                         return errSecSSLBadExtendedKeyUsage
; 
 675                 case CSSMERR_APPLETP_OCSP_BAD_RESPONSE
: 
 676                         return errSecOCSPBadResponse
; 
 677                 case CSSMERR_APPLETP_OCSP_BAD_REQUEST
: 
 678                         return errSecOCSPBadRequest
; 
 679                 case CSSMERR_APPLETP_OCSP_UNAVAILABLE
: 
 680                         return errSecOCSPUnavailable
; 
 681                 case CSSMERR_APPLETP_OCSP_STATUS_UNRECOGNIZED
: 
 682                         return errSecOCSPStatusUnrecognized
; 
 683                 case CSSMERR_APPLETP_INCOMPLETE_REVOCATION_CHECK
: 
 684                         return errSecIncompleteCertRevocationCheck
; 
 685                 case CSSMERR_APPLETP_NETWORK_FAILURE
: 
 686                         return errSecNetworkFailure
; 
 687                 case CSSMERR_APPLETP_OCSP_NOT_TRUSTED
: 
 688                         return errSecOCSPNotTrustedToAnchor
; 
 689                 case CSSMERR_APPLETP_OCSP_SIG_ERROR
: 
 690                         return errSecOCSPSignatureError
; 
 691                 case CSSMERR_APPLETP_OCSP_NO_SIGNER
: 
 692                         return errSecOCSPNoSigner
; 
 693                 case CSSMERR_APPLETP_OCSP_RESP_MALFORMED_REQ
: 
 694                         return errSecOCSPResponderMalformedReq
; 
 695                 case CSSMERR_APPLETP_OCSP_RESP_INTERNAL_ERR
: 
 696                         return errSecOCSPResponderInternalError
; 
 697                 case CSSMERR_APPLETP_OCSP_RESP_TRY_LATER
: 
 698                         return errSecOCSPResponderTryLater
; 
 699                 case CSSMERR_APPLETP_OCSP_RESP_SIG_REQUIRED
: 
 700                         return errSecOCSPResponderSignatureRequired
; 
 701                 case CSSMERR_APPLETP_OCSP_RESP_UNAUTHORIZED
: 
 702                         return errSecOCSPResponderUnauthorized
; 
 703                 case CSSMERR_APPLETP_OCSP_NONCE_MISMATCH
: 
 704                         return errSecOCSPResponseNonceMismatch
; 
 705                 case CSSMERR_APPLETP_CS_BAD_CERT_CHAIN_LENGTH
: 
 706                         return errSecCodeSigningBadCertChainLength
; 
 707                 case CSSMERR_APPLETP_CS_NO_BASIC_CONSTRAINTS
: 
 708                         return errSecCodeSigningNoBasicConstraints
; 
 709                 case CSSMERR_APPLETP_CS_BAD_PATH_LENGTH
: 
 710                         return errSecCodeSigningBadPathLengthConstraint
; 
 711                 case CSSMERR_APPLETP_CS_NO_EXTENDED_KEY_USAGE
: 
 712                         return errSecCodeSigningNoExtendedKeyUsage
; 
 713                 case CSSMERR_APPLETP_CODE_SIGN_DEVELOPMENT
: 
 714                         return errSecCodeSigningDevelopment
; 
 715                 case CSSMERR_APPLETP_RS_BAD_CERT_CHAIN_LENGTH
: 
 716                         return errSecResourceSignBadCertChainLength
; 
 717                 case CSSMERR_APPLETP_RS_BAD_EXTENDED_KEY_USAGE
: 
 718                         return errSecResourceSignBadExtKeyUsage
; 
 719                 case CSSMERR_APPLETP_TRUST_SETTING_DENY
: 
 720                         return errSecTrustSettingDeny
; 
 721                 case CSSMERR_APPLETP_INVALID_EMPTY_SUBJECT
: 
 722                         return errSecInvalidSubjectName
; 
 723                 case CSSMERR_APPLETP_UNKNOWN_QUAL_CERT_STATEMENT
: 
 724                         return errSecUnknownQualifiedCertStatement
; 
 725                 case CSSMERR_APPLETP_MISSING_REQUIRED_EXTENSION
: 
 726                         return errSecMissingRequiredExtension
; 
 727                 case CSSMERR_APPLETP_EXT_KEYUSAGE_NOT_CRITICAL
: 
 728                         return errSecExtendedKeyUsageNotCritical
; 
 729                 case CSSMERR_APPLE_DOTMAC_REQ_QUEUED
: 
 730                         return errSecMobileMeRequestQueued
; 
 731                 case CSSMERR_APPLE_DOTMAC_REQ_REDIRECT
: 
 732                         return errSecMobileMeRequestRedirected
; 
 733                 case CSSMERR_APPLE_DOTMAC_REQ_SERVER_ERR
: 
 734                         return errSecMobileMeServerError
; 
 735                 case CSSMERR_APPLE_DOTMAC_REQ_SERVER_NOT_AVAIL
: 
 736                         return errSecMobileMeServerNotAvailable
; 
 737                 case CSSMERR_APPLE_DOTMAC_REQ_SERVER_ALREADY_EXIST
: 
 738                         return errSecMobileMeServerAlreadyExists
; 
 739                 case CSSMERR_APPLE_DOTMAC_REQ_SERVER_SERVICE_ERROR
: 
 740                         return errSecMobileMeServerServiceErr
; 
 741                 case CSSMERR_APPLE_DOTMAC_REQ_IS_PENDING
: 
 742                         return errSecMobileMeRequestAlreadyPending
; 
 743                 case CSSMERR_APPLE_DOTMAC_NO_REQ_PENDING
: 
 744                         return errSecMobileMeNoRequestPending
; 
 745                 case CSSMERR_APPLE_DOTMAC_CSR_VERIFY_FAIL
: 
 746                         return errSecMobileMeCSRVerifyFailure
; 
 747                 case CSSMERR_APPLE_DOTMAC_FAILED_CONSISTENCY_CHECK
: 
 748                         return errSecMobileMeFailedConsistencyCheck
; 
 749                 case CSSMERR_CSSM_NOT_INITIALIZED
: 
 750                         return errSecNotInitialized
; 
 751                 case CSSMERR_CSSM_INVALID_HANDLE_USAGE
: 
 752                         return errSecInvalidHandleUsage
; 
 753                 case CSSMERR_CSSM_PVC_REFERENT_NOT_FOUND
: 
 754                         return errSecPVCReferentNotFound
; 
 755                 case CSSMERR_CSSM_FUNCTION_INTEGRITY_FAIL
: 
 756                         return errSecFunctionIntegrityFail
; 
 757                 case CSSMERR_CSSM_SELF_CHECK_FAILED
: 
 758                 case CSSMERR_CSP_SELF_CHECK_FAILED
: 
 759                         return errSecSelfCheckFailed
; 
 760                 case CSSMERR_CSSM_MODULE_MANIFEST_VERIFY_FAILED
: 
 761                         return errSecModuleManifestVerifyFailed
; 
 762                 case CSSMERR_CSSM_INVALID_GUID
: 
 763                         return errSecInvalidGUID
; 
 764                 case CSSMERR_CSSM_INCOMPATIBLE_VERSION
: 
 765                         return errSecIncompatibleVersion
; 
 766                 case CSSMERR_CSSM_PVC_ALREADY_CONFIGURED
: 
 767                         return errSecPVCAlreadyConfigured
; 
 768                 case CSSMERR_CSSM_INVALID_PVC
: 
 769                         return errSecInvalidPVC
; 
 770                 case CSSMERR_CSSM_EMM_LOAD_FAILED
: 
 771                         return errSecEMMLoadFailed
; 
 772                 case CSSMERR_CSSM_EMM_UNLOAD_FAILED
: 
 773                         return errSecEMMUnloadFailed
; 
 774                 case CSSMERR_CSSM_ADDIN_LOAD_FAILED
: 
 775                         return errSecAddinLoadFailed
; 
 776                 case CSSMERR_CSSM_INVALID_KEY_HIERARCHY
: 
 777                         return errSecInvalidKeyHierarchy
; 
 778                 case CSSMERR_CSSM_ADDIN_UNLOAD_FAILED
: 
 779                         return errSecAddinUnloadFailed
; 
 780                 case CSSMERR_CSSM_LIB_REF_NOT_FOUND
: 
 781                         return errSecLibraryReferenceNotFound
; 
 782                 case CSSMERR_CSSM_INVALID_ADDIN_FUNCTION_TABLE
: 
 783                         return errSecInvalidAddinFunctionTable
; 
 784                 case CSSMERR_CSSM_INVALID_SERVICE_MASK
: 
 785                         return errSecInvalidServiceMask
; 
 786                 case CSSMERR_CSSM_MODULE_NOT_LOADED
: 
 787                         return errSecModuleNotLoaded
; 
 788                 case CSSMERR_CSSM_INVALID_SUBSERVICEID
: 
 789                         return errSecInvalidSubServiceID
; 
 790                 case CSSMERR_CSSM_ATTRIBUTE_NOT_IN_CONTEXT
: 
 791                         return errSecAttributeNotInContext
; 
 792                 case CSSMERR_CSSM_MODULE_MANAGER_INITIALIZE_FAIL
: 
 793                         return errSecModuleManagerInitializeFailed
; 
 794                 case CSSMERR_CSSM_MODULE_MANAGER_NOT_FOUND
: 
 795                         return errSecModuleManagerNotFound
; 
 796                 case CSSMERR_CSSM_EVENT_NOTIFICATION_CALLBACK_NOT_FOUND
: 
 797                         return errSecEventNotificationCallbackNotFound
; 
 798                 case CSSMERR_CSP_INPUT_LENGTH_ERROR
: 
 799                         return errSecInputLengthError
; 
 800                 case CSSMERR_CSP_OUTPUT_LENGTH_ERROR
: 
 801                         return errSecOutputLengthError
; 
 802                 case CSSMERR_CSP_PRIVILEGE_NOT_SUPPORTED
: 
 803                         return errSecPrivilegeNotSupported
; 
 804                 case CSSMERR_CSP_DEVICE_ERROR
: 
 805                         return errSecDeviceError
; 
 806                 case CSSMERR_CSP_ATTACH_HANDLE_BUSY
: 
 807                         return errSecAttachHandleBusy
; 
 808                 case CSSMERR_CSP_NOT_LOGGED_IN
: 
 809                         return errSecNotLoggedIn
; 
 810                 case CSSMERR_CSP_ALGID_MISMATCH
: 
 811                         return errSecAlgorithmMismatch
; 
 812                 case CSSMERR_CSP_KEY_USAGE_INCORRECT
: 
 813                         return errSecKeyUsageIncorrect
; 
 814                 case CSSMERR_CSP_KEY_BLOB_TYPE_INCORRECT
: 
 815                         return errSecKeyBlobTypeIncorrect
; 
 816                 case CSSMERR_CSP_KEY_HEADER_INCONSISTENT
: 
 817                         return errSecKeyHeaderInconsistent
; 
 818                 case CSSMERR_CSP_UNSUPPORTED_KEY_FORMAT
: 
 819                         return errSecUnsupportedKeyFormat
; 
 820                 case CSSMERR_CSP_UNSUPPORTED_KEY_SIZE
: 
 821                         return errSecUnsupportedKeySize
; 
 822                 case CSSMERR_CSP_INVALID_KEYUSAGE_MASK
: 
 823                         return errSecInvalidKeyUsageMask
; 
 824                 case CSSMERR_CSP_UNSUPPORTED_KEYUSAGE_MASK
: 
 825                         return errSecUnsupportedKeyUsageMask
; 
 826                 case CSSMERR_CSP_INVALID_KEYATTR_MASK
: 
 827                         return errSecInvalidKeyAttributeMask
; 
 828                 case CSSMERR_CSP_UNSUPPORTED_KEYATTR_MASK
: 
 829                         return errSecUnsupportedKeyAttributeMask
; 
 830                 case CSSMERR_CSP_INVALID_KEY_LABEL
: 
 831                         return errSecInvalidKeyLabel
; 
 832                 case CSSMERR_CSP_UNSUPPORTED_KEY_LABEL
: 
 833                         return errSecUnsupportedKeyLabel
; 
 834                 case CSSMERR_CSP_INVALID_KEY_FORMAT
: 
 835                         return errSecInvalidKeyFormat
; 
 836                 case CSSMERR_CSP_VECTOR_OF_BUFS_UNSUPPORTED
: 
 837                         return errSecUnsupportedVectorOfBuffers
; 
 838                 case CSSMERR_CSP_INVALID_INPUT_VECTOR
: 
 839                         return errSecInvalidInputVector
; 
 840                 case CSSMERR_CSP_INVALID_OUTPUT_VECTOR
: 
 841                         return errSecInvalidOutputVector
; 
 842                 case CSSMERR_CSP_INVALID_CONTEXT
: 
 843                         return errSecInvalidContext
; 
 844                 case CSSMERR_CSP_INVALID_ALGORITHM
: 
 845                         return errSecInvalidAlgorithm
; 
 846                 case CSSMERR_CSP_INVALID_ATTR_KEY
: 
 847                         return errSecInvalidAttributeKey
; 
 848                 case CSSMERR_CSP_MISSING_ATTR_KEY
: 
 849                         return errSecMissingAttributeKey
; 
 850                 case CSSMERR_CSP_INVALID_ATTR_INIT_VECTOR
: 
 851                         return errSecInvalidAttributeInitVector
; 
 852                 case CSSMERR_CSP_MISSING_ATTR_INIT_VECTOR
: 
 853                         return errSecMissingAttributeInitVector
; 
 854                 case CSSMERR_CSP_INVALID_ATTR_SALT
: 
 855                         return errSecInvalidAttributeSalt
; 
 856                 case CSSMERR_CSP_MISSING_ATTR_SALT
: 
 857                         return errSecMissingAttributeSalt
; 
 858                 case CSSMERR_CSP_INVALID_ATTR_PADDING
: 
 859                         return errSecInvalidAttributePadding
; 
 860                 case CSSMERR_CSP_MISSING_ATTR_PADDING
: 
 861                         return errSecMissingAttributePadding
; 
 862                 case CSSMERR_CSP_INVALID_ATTR_RANDOM
: 
 863                         return errSecInvalidAttributeRandom
; 
 864                 case CSSMERR_CSP_MISSING_ATTR_RANDOM
: 
 865                         return errSecMissingAttributeRandom
; 
 866                 case CSSMERR_CSP_INVALID_ATTR_SEED
: 
 867                         return errSecInvalidAttributeSeed
; 
 868                 case CSSMERR_CSP_MISSING_ATTR_SEED
: 
 869                         return errSecMissingAttributeSeed
; 
 870                 case CSSMERR_CSP_INVALID_ATTR_PASSPHRASE
: 
 871                         return errSecInvalidAttributePassphrase
; 
 872                 case CSSMERR_CSP_MISSING_ATTR_PASSPHRASE
: 
 873                         return errSecMissingAttributePassphrase
; 
 874                 case CSSMERR_CSP_INVALID_ATTR_KEY_LENGTH
: 
 875                         return errSecInvalidAttributeKeyLength
; 
 876                 case CSSMERR_CSP_MISSING_ATTR_KEY_LENGTH
: 
 877                         return errSecMissingAttributeKeyLength
; 
 878                 case CSSMERR_CSP_INVALID_ATTR_BLOCK_SIZE
: 
 879                         return errSecInvalidAttributeBlockSize
; 
 880                 case CSSMERR_CSP_MISSING_ATTR_BLOCK_SIZE
: 
 881                         return errSecMissingAttributeBlockSize
; 
 882                 case CSSMERR_CSP_INVALID_ATTR_OUTPUT_SIZE
: 
 883                         return errSecInvalidAttributeOutputSize
; 
 884                 case CSSMERR_CSP_MISSING_ATTR_OUTPUT_SIZE
: 
 885                         return errSecMissingAttributeOutputSize
; 
 886                 case CSSMERR_CSP_INVALID_ATTR_ROUNDS
: 
 887                         return errSecInvalidAttributeRounds
; 
 888                 case CSSMERR_CSP_MISSING_ATTR_ROUNDS
: 
 889                         return errSecMissingAttributeRounds
; 
 890                 case CSSMERR_CSP_INVALID_ATTR_ALG_PARAMS
: 
 891                         return errSecInvalidAlgorithmParms
; 
 892                 case CSSMERR_CSP_MISSING_ATTR_ALG_PARAMS
: 
 893                         return errSecMissingAlgorithmParms
; 
 894                 case CSSMERR_CSP_INVALID_ATTR_LABEL
: 
 895                         return errSecInvalidAttributeLabel
; 
 896                 case CSSMERR_CSP_MISSING_ATTR_LABEL
: 
 897                         return errSecMissingAttributeLabel
; 
 898                 case CSSMERR_CSP_INVALID_ATTR_KEY_TYPE
: 
 899                         return errSecInvalidAttributeKeyType
; 
 900                 case CSSMERR_CSP_MISSING_ATTR_KEY_TYPE
: 
 901                         return errSecMissingAttributeKeyType
; 
 902                 case CSSMERR_CSP_INVALID_ATTR_MODE
: 
 903                         return errSecInvalidAttributeMode
; 
 904                 case CSSMERR_CSP_MISSING_ATTR_MODE
: 
 905                         return errSecMissingAttributeMode
; 
 906                 case CSSMERR_CSP_INVALID_ATTR_EFFECTIVE_BITS
: 
 907                         return errSecInvalidAttributeEffectiveBits
; 
 908                 case CSSMERR_CSP_MISSING_ATTR_EFFECTIVE_BITS
: 
 909                         return errSecMissingAttributeEffectiveBits
; 
 910                 case CSSMERR_CSP_INVALID_ATTR_START_DATE
: 
 911                         return errSecInvalidAttributeStartDate
; 
 912                 case CSSMERR_CSP_MISSING_ATTR_START_DATE
: 
 913                         return errSecMissingAttributeStartDate
; 
 914                 case CSSMERR_CSP_INVALID_ATTR_END_DATE
: 
 915                         return errSecInvalidAttributeEndDate
; 
 916                 case CSSMERR_CSP_MISSING_ATTR_END_DATE
: 
 917                         return errSecMissingAttributeEndDate
; 
 918                 case CSSMERR_CSP_INVALID_ATTR_VERSION
: 
 919                         return errSecInvalidAttributeVersion
; 
 920                 case CSSMERR_CSP_MISSING_ATTR_VERSION
: 
 921                         return errSecMissingAttributeVersion
; 
 922                 case CSSMERR_CSP_INVALID_ATTR_PRIME
: 
 923                         return errSecInvalidAttributePrime
; 
 924                 case CSSMERR_CSP_MISSING_ATTR_PRIME
: 
 925                         return errSecMissingAttributePrime
; 
 926                 case CSSMERR_CSP_INVALID_ATTR_BASE
: 
 927                         return errSecInvalidAttributeBase
; 
 928                 case CSSMERR_CSP_MISSING_ATTR_BASE
: 
 929                         return errSecMissingAttributeBase
; 
 930                 case CSSMERR_CSP_INVALID_ATTR_SUBPRIME
: 
 931                         return errSecInvalidAttributeSubprime
; 
 932                 case CSSMERR_CSP_MISSING_ATTR_SUBPRIME
: 
 933                         return errSecMissingAttributeSubprime
; 
 934                 case CSSMERR_CSP_INVALID_ATTR_ITERATION_COUNT
: 
 935                         return errSecInvalidAttributeIterationCount
; 
 936                 case CSSMERR_CSP_MISSING_ATTR_ITERATION_COUNT
: 
 937                         return errSecMissingAttributeIterationCount
; 
 938                 case CSSMERR_CSP_INVALID_ATTR_DL_DB_HANDLE
: 
 939                         return errSecInvalidAttributeDLDBHandle
; 
 940                 case CSSMERR_CSP_MISSING_ATTR_DL_DB_HANDLE
: 
 941                         return errSecMissingAttributeDLDBHandle
; 
 942                 case CSSMERR_CSP_INVALID_ATTR_ACCESS_CREDENTIALS
: 
 943                         return errSecInvalidAttributeAccessCredentials
; 
 944                 case CSSMERR_CSP_MISSING_ATTR_ACCESS_CREDENTIALS
: 
 945                         return errSecMissingAttributeAccessCredentials
; 
 946                 case CSSMERR_CSP_INVALID_ATTR_PUBLIC_KEY_FORMAT
: 
 947                         return errSecInvalidAttributePublicKeyFormat
; 
 948                 case CSSMERR_CSP_MISSING_ATTR_PUBLIC_KEY_FORMAT
: 
 949                         return errSecMissingAttributePublicKeyFormat
; 
 950                 case CSSMERR_CSP_INVALID_ATTR_PRIVATE_KEY_FORMAT
: 
 951                         return errSecInvalidAttributePrivateKeyFormat
; 
 952                 case CSSMERR_CSP_MISSING_ATTR_PRIVATE_KEY_FORMAT
: 
 953                         return errSecMissingAttributePrivateKeyFormat
; 
 954                 case CSSMERR_CSP_INVALID_ATTR_SYMMETRIC_KEY_FORMAT
: 
 955                         return errSecInvalidAttributeSymmetricKeyFormat
; 
 956                 case CSSMERR_CSP_MISSING_ATTR_SYMMETRIC_KEY_FORMAT
: 
 957                         return errSecMissingAttributeSymmetricKeyFormat
; 
 958                 case CSSMERR_CSP_INVALID_ATTR_WRAPPED_KEY_FORMAT
: 
 959                         return errSecInvalidAttributeWrappedKeyFormat
; 
 960                 case CSSMERR_CSP_MISSING_ATTR_WRAPPED_KEY_FORMAT
: 
 961                         return errSecMissingAttributeWrappedKeyFormat
; 
 962                 case CSSMERR_CSP_STAGED_OPERATION_IN_PROGRESS
: 
 963                         return errSecStagedOperationInProgress
; 
 964                 case CSSMERR_CSP_STAGED_OPERATION_NOT_STARTED
: 
 965                         return errSecStagedOperationNotStarted
; 
 966                 case CSSMERR_CSP_VERIFY_FAILED
: 
 967                         return errSecVerifyFailed
; 
 968                 case CSSMERR_CSP_QUERY_SIZE_UNKNOWN
: 
 969                         return errSecQuerySizeUnknown
; 
 970                 case CSSMERR_CSP_BLOCK_SIZE_MISMATCH
: 
 971                         return errSecBlockSizeMismatch
; 
 972                 case CSSMERR_CSP_PUBLIC_KEY_INCONSISTENT
: 
 973                         return errSecPublicKeyInconsistent
; 
 974                 case CSSMERR_CSP_DEVICE_VERIFY_FAILED
: 
 975                         return errSecDeviceVerifyFailed
; 
 976                 case CSSMERR_CSP_INVALID_LOGIN_NAME
: 
 977                         return errSecInvalidLoginName
; 
 978                 case CSSMERR_CSP_ALREADY_LOGGED_IN
: 
 979                         return errSecAlreadyLoggedIn
; 
 980                 case CSSMERR_CSP_INVALID_DIGEST_ALGORITHM
: 
 981                         return errSecInvalidDigestAlgorithm
; 
 982                 case CSSMERR_TP_INVALID_CRLGROUP
: 
 983                         return errSecInvalidCRLGroup
; 
 984                 case CSSMERR_TP_CERTIFICATE_CANT_OPERATE
: 
 985                         return errSecCertificateCannotOperate
; 
 986                 case CSSMERR_TP_CERT_EXPIRED
: 
 987                         return errSecCertificateExpired
; 
 988                 case CSSMERR_TP_CERT_NOT_VALID_YET
: 
 989                         return errSecCertificateNotValidYet
; 
 990                 case CSSMERR_TP_CERT_REVOKED
: 
 991                         return errSecCertificateRevoked
; 
 992                 case CSSMERR_TP_CERT_SUSPENDED
: 
 993                         return errSecCertificateSuspended
; 
 994                 case CSSMERR_TP_INSUFFICIENT_CREDENTIALS
: 
 995                         return errSecInsufficientCredentials
; 
 996                 case CSSMERR_TP_INVALID_ACTION
: 
 997                         return errSecInvalidAction
; 
 998                 case CSSMERR_TP_INVALID_AUTHORITY
: 
 999                         return errSecInvalidAuthority
; 
1000                 case CSSMERR_TP_VERIFY_ACTION_FAILED
: 
1001                         return errSecVerifyActionFailed
; 
1002                 case CSSMERR_TP_INVALID_CERT_AUTHORITY
: 
1003                 case CSSMERR_APPLETP_INVALID_CA
: 
1004                         return errSecInvalidCertAuthority
; 
1005                 case CSSMERR_TP_INVALID_CRL_AUTHORITY
: 
1006                         return errSecInvaldCRLAuthority
; 
1007                 case CSSMERR_TP_INVALID_CRL_ENCODING
: 
1008                         return errSecInvalidCRLEncoding
; 
1009                 case CSSMERR_TP_INVALID_CRL_TYPE
: 
1010                         return errSecInvalidCRLType
; 
1011                 case CSSMERR_TP_INVALID_CRL
: 
1012                         return errSecInvalidCRL
; 
1013                 case CSSMERR_TP_INVALID_FORM_TYPE
: 
1014                         return errSecInvalidFormType
; 
1015                 case CSSMERR_TP_INVALID_ID
: 
1016                         return errSecInvalidID
; 
1017                 case CSSMERR_TP_INVALID_IDENTIFIER
: 
1018                         return errSecInvalidIdentifier
; 
1019                 case CSSMERR_TP_INVALID_INDEX
: 
1020                         return errSecInvalidIndex
; 
1021                 case CSSMERR_TP_INVALID_POLICY_IDENTIFIERS
: 
1022                         return errSecInvalidPolicyIdentifiers
; 
1023                 case CSSMERR_TP_INVALID_TIMESTRING
: 
1024                         return errSecInvalidTimeString
; 
1025                 case CSSMERR_TP_INVALID_REASON
: 
1026                         return errSecInvalidReason
; 
1027                 case CSSMERR_TP_INVALID_REQUEST_INPUTS
: 
1028                         return errSecInvalidRequestInputs
; 
1029                 case CSSMERR_TP_INVALID_RESPONSE_VECTOR
: 
1030                         return errSecInvalidResponseVector
; 
1031                 case CSSMERR_TP_INVALID_STOP_ON_POLICY
: 
1032                         return errSecInvalidStopOnPolicy
; 
1033                 case CSSMERR_TP_INVALID_TUPLE
: 
1034                         return errSecInvalidTuple
; 
1035                 case CSSMERR_TP_NOT_SIGNER
: 
1036                         return errSecNotSigner
; 
1037                 case CSSMERR_TP_NOT_TRUSTED
: 
1038                         return errSecNotTrusted
; 
1039                 case CSSMERR_TP_NO_DEFAULT_AUTHORITY
: 
1040                         return errSecNoDefaultAuthority
; 
1041                 case CSSMERR_TP_REJECTED_FORM
: 
1042                         return errSecRejectedForm
; 
1043                 case CSSMERR_TP_REQUEST_LOST
: 
1044                         return errSecRequestLost
; 
1045                 case CSSMERR_TP_REQUEST_REJECTED
: 
1046                         return errSecRequestRejected
; 
1047                 case CSSMERR_TP_UNSUPPORTED_ADDR_TYPE
: 
1048                         return errSecUnsupportedAddressType
; 
1049                 case CSSMERR_TP_UNSUPPORTED_SERVICE
: 
1050                         return errSecUnsupportedService
; 
1051                 case CSSMERR_TP_INVALID_TUPLEGROUP
: 
1052                         return errSecInvalidTupleGroup
; 
1053                 case CSSMERR_AC_INVALID_BASE_ACLS
: 
1054                         return errSecInvalidBaseACLs
; 
1055                 case CSSMERR_AC_INVALID_TUPLE_CREDENTIALS
: 
1056                         return errSecInvalidTupleCredendtials
; 
1057                 case CSSMERR_AC_INVALID_ENCODING
: 
1058                         return errSecInvalidEncoding
; 
1059                 case CSSMERR_AC_INVALID_VALIDITY_PERIOD
: 
1060                         return errSecInvalidValidityPeriod
; 
1061                 case CSSMERR_AC_INVALID_REQUESTOR
: 
1062                         return errSecInvalidRequestor
; 
1063                 case CSSMERR_AC_INVALID_REQUEST_DESCRIPTOR
: 
1064                         return errSecRequestDescriptor
; 
1065                 case CSSMERR_CL_INVALID_BUNDLE_INFO
: 
1066                         return errSecInvalidBundleInfo
; 
1067                 case CSSMERR_CL_INVALID_CRL_INDEX
: 
1068                         return errSecInvalidCRLIndex
; 
1069                 case CSSMERR_CL_NO_FIELD_VALUES
: 
1070                         return errSecNoFieldValues
; 
1071                 case CSSMERR_DL_UNSUPPORTED_FIELD_FORMAT
: 
1072                         return errSecUnsupportedFieldFormat
; 
1073                 case CSSMERR_DL_UNSUPPORTED_INDEX_INFO
: 
1074                         return errSecUnsupportedIndexInfo
; 
1075                 case CSSMERR_DL_UNSUPPORTED_LOCALITY
: 
1076                         return errSecUnsupportedLocality
; 
1077                 case CSSMERR_DL_UNSUPPORTED_NUM_ATTRIBUTES
: 
1078                         return errSecUnsupportedNumAttributes
; 
1079                 case CSSMERR_DL_UNSUPPORTED_NUM_INDEXES
: 
1080                         return errSecUnsupportedNumIndexes
; 
1081                 case CSSMERR_DL_UNSUPPORTED_NUM_RECORDTYPES
: 
1082                         return errSecUnsupportedNumRecordTypes
; 
1083                 case CSSMERR_DL_FIELD_SPECIFIED_MULTIPLE
: 
1084                         return errSecFieldSpecifiedMultiple
; 
1085                 case CSSMERR_DL_INCOMPATIBLE_FIELD_FORMAT
: 
1086                         return errSecIncompatibleFieldFormat
; 
1087                 case CSSMERR_DL_INVALID_PARSING_MODULE
: 
1088                         return errSecInvalidParsingModule
; 
1089                 case CSSMERR_DL_DB_LOCKED
: 
1090                         return errSecDatabaseLocked
; 
1091                 case CSSMERR_DL_DATASTORE_IS_OPEN
: 
1092                         return errSecDatastoreIsOpen
; 
1093                 case CSSMERR_DL_MISSING_VALUE
: 
1094                         return errSecMissingValue
; 
1095                 case CSSMERR_DL_UNSUPPORTED_QUERY_LIMITS
: 
1096                         return errSecUnsupportedQueryLimits
; 
1097                 case CSSMERR_DL_UNSUPPORTED_NUM_SELECTION_PREDS
: 
1098                         return errSecUnsupportedNumSelectionPreds
; 
1099                 case CSSMERR_DL_UNSUPPORTED_OPERATOR
: 
1100                         return errSecUnsupportedOperator
; 
1101                 case CSSMERR_DL_INVALID_DB_LOCATION
: 
1102                         return errSecInvalidDBLocation
; 
1103                 case CSSMERR_DL_INVALID_ACCESS_REQUEST
: 
1104                         return errSecInvalidAccessRequest
; 
1105                 case CSSMERR_DL_INVALID_INDEX_INFO
: 
1106                         return errSecInvalidIndexInfo
; 
1107                 case CSSMERR_DL_INVALID_NEW_OWNER
: 
1108                         return errSecInvalidNewOwner
; 
1109                 case CSSMERR_DL_INVALID_MODIFY_MODE
: 
1110                         return errSecInvalidModifyMode
; 
1111                 case CSSMERR_DL_RECORD_MODIFIED
: 
1112                         return errSecRecordModified
; 
1113                 case CSSMERR_DL_ENDOFDATA
: 
1114                         return errSecEndOfData
; 
1115                 case CSSMERR_DL_INVALID_VALUE
: 
1116                         return errSecInvalidValue
; 
1117                 case CSSMERR_DL_MULTIPLE_VALUES_UNSUPPORTED
: 
1118                         return errSecMultipleValuesUnsupported
;