+++ /dev/null
-/*
- * Copyright (c) 2003-2013 Apple Inc. All Rights Reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-
-#include <Security/SecBase.h>
-#include <Security/SecBasePriv.h>
-#include <Security/SecKeychainPriv.h>
-#include <security_utilities/threading.h>
-#include "SecBridge.h"
-
-static CFStringRef copyErrorMessageFromBundle(OSStatus status,CFStringRef tableName);
-
-// caller MUST release the string, since it is gotten with "CFCopyLocalizedStringFromTableInBundle"
-// intended use of reserved param is to pass in CFStringRef with name of the Table for lookup
-// Will look by default in "SecErrorMessages.strings" in the resources of Security.framework.
-
-
-CFStringRef
-SecCopyErrorMessageString(OSStatus status, void *reserved)
-{
- try
- {
- CFStringRef result = copyErrorMessageFromBundle(status,CFSTR("SecErrorMessages"));
- if (result == NULL)
- result = copyErrorMessageFromBundle(status,CFSTR("SecDebugErrorMessages"));
-
- if (result == NULL)
- {
- if (status >= errSecErrnoBase && status <= errSecErrnoLimit)
- {
- result = CFStringCreateWithFormat (NULL, NULL, CFSTR("UNIX[%s]"), strerror(status-errSecErrnoBase));
- }
- else
- {
- // no error message found, so format a faked-up error message from the status
- result = CFStringCreateWithFormat(NULL, NULL, CFSTR("OSStatus %d"), (int)status);
- }
- }
-
- return result;
- }
- catch (...)
- {
- return NULL;
- }
-}
-
-
-void
-cssmPerror(const char *how, CSSM_RETURN error)
-{
- try
- {
- const char* errMsg = cssmErrorString(error);
- fprintf(stderr, "%s: %s\n", how ? how : "error", errMsg);
- }
- catch (...)
- {
- fprintf(stderr, "failed to print error: %lu\n", (unsigned long)error);
- }
-}
-
-
-const char *
-cssmErrorString(CSSM_RETURN error)
-{
- static ThreadNexus<string> lastError;
-
- try {
- string err;
-
- if (error >= errSecErrnoBase && error <= errSecErrnoLimit)
- {
- err = string ("UNIX[") + strerror(error - errSecErrnoBase) + "]";
- }
- else
- {
- CFStringRef result = copyErrorMessageFromBundle(error,CFSTR("SecErrorMessages"));
- if (result == NULL)
- result = copyErrorMessageFromBundle(error,CFSTR("SecDebugErrorMessages"));
- err = cfString(result, true);
- }
-
- if (err.empty())
- {
- char buf[200];
- snprintf(buf, sizeof(buf), "unknown error %ld=%lx", (long) error, (long) error);
- err = buf;
- }
-
- lastError() = err;
- return lastError().c_str();
- }
- catch (...)
- {
- char buf[256];
- snprintf (buf, sizeof (buf), "unknown error %ld=%lx", (long) error, (long) error);
- lastError() = buf;
- return lastError().c_str();
- }
-}
-
-
-static ModuleNexus<Mutex> gBundleLock;
-
-CFStringRef
-copyErrorMessageFromBundle(OSStatus status,CFStringRef tableName)
-{
- StLock<Mutex> _lock(gBundleLock());
-
- CFStringRef errorString = nil;
- CFStringRef keyString = nil;
- CFBundleRef secBundle = NULL;
-
- // Make a bundle instance using the URLRef.
- secBundle = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.security"));
- if (!secBundle)
- goto xit;
-
- // Convert status to Int32 string representation, e.g. "-25924"
- keyString = CFStringCreateWithFormat (kCFAllocatorDefault,NULL,CFSTR("%d"),(int)status);
- if (!keyString)
- goto xit;
-
- errorString = CFCopyLocalizedStringFromTableInBundle(keyString,tableName,secBundle,NULL);
- if (CFStringCompare(errorString, keyString, 0)==kCFCompareEqualTo) // no real error message
- {
- if (errorString)
- CFRelease(errorString);
- errorString = nil;
- }
-xit:
- if (keyString)
- CFRelease(keyString);
-
- return errorString;
-}
-
-/* Convert a possible CSSM type osStatus error to a more Keychain friendly OSStatus. */
-OSStatus SecKeychainErrFromOSStatus(OSStatus osStatus)
-{
- if (CSSM_ERR_IS_CONVERTIBLE(osStatus))
- {
- switch (CSSM_ERRCODE(osStatus))
- {
- // CONVERTIBLE ERROR CODES.
- case CSSM_ERRCODE_SERVICE_NOT_AVAILABLE:
- return errSecNotAvailable;
- case CSSM_ERRCODE_USER_CANCELED:
- return errSecUserCanceled;
- case CSSM_ERRCODE_OPERATION_AUTH_DENIED:
- return errSecAuthFailed;
- case CSSM_ERRCODE_NO_USER_INTERACTION:
- return errSecInteractionNotAllowed;
- case CSSM_ERRCODE_IN_DARK_WAKE:
- return errSecInDarkWake;
- case CSSM_ERRCODE_OS_ACCESS_DENIED:
- return errSecWrPerm;
- case CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION:
- return errSecInsufficientClientID;
- case CSSM_ERRCODE_DEVICE_RESET:
- return errSecDeviceReset;
- case CSSM_ERRCODE_DEVICE_FAILED:
- return errSecDeviceFailed;
- case CSSM_ERRCODE_INTERNAL_ERROR:
- return errSecInternalError;
- case CSSM_ERRCODE_MEMORY_ERROR:
- return errSecMemoryError;
- case CSSM_ERRCODE_MDS_ERROR:
- return errSecMDSError;
- case CSSM_ERRCODE_INVALID_POINTER:
- case CSSM_ERRCODE_INVALID_INPUT_POINTER:
- case CSSM_ERRCODE_INVALID_OUTPUT_POINTER:
- case CSSM_ERRCODE_INVALID_CERTGROUP_POINTER:
- case CSSM_ERRCODE_INVALID_CERT_POINTER:
- case CSSM_ERRCODE_INVALID_CRL_POINTER:
- case CSSM_ERRCODE_INVALID_FIELD_POINTER:
- case CSSM_ERRCODE_INVALID_DB_LIST_POINTER:
- return errSecInvalidPointer;
- case CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED:
- return errSecUnimplemented;
- case CSSM_ERRCODE_SELF_CHECK_FAILED:
- case CSSMERR_CL_SELF_CHECK_FAILED:
- case CSSMERR_DL_SELF_CHECK_FAILED:
- return errSecSelfCheckFailed;
- case CSSM_ERRCODE_FUNCTION_FAILED:
- return errSecFunctionFailed;
- case CSSM_ERRCODE_MODULE_MANIFEST_VERIFY_FAILED:
- return errSecModuleManifestVerifyFailed;
- case CSSM_ERRCODE_INVALID_GUID:
- return errSecInvalidGUID;
- case CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED:
- case CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED:
- return errAuthorizationDenied;
- case CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED:
- case CSSM_ERRCODE_OBJECT_ACL_REQUIRED:
- case CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE:
- case CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED:
- case CSSM_ERRCODE_INVALID_ACL_EDIT_MODE:
- case CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY:
- case CSSM_ERRCODE_INVALID_NEW_ACL_OWNER:
- return errSecInvalidACL;
- case CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS:
- return errSecInvalidAccessCredentials;
- case CSSM_ERRCODE_INVALID_ACL_BASE_CERTS:
- case CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED:
- return errSecInvalidCertificateGroup;
- case CSSM_ERRCODE_INVALID_SAMPLE_VALUE:
- return errSecInvalidSampleValue;
- case CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED:
- return errSecInvalidSampleValue;
- case CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK:
- return errSecInvalidCallback;
- case CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED:
- return errSecCallbackFailed;
- case CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG:
- case CSSM_ERRCODE_UNKNOWN_TAG:
- return errSecUnknownTag;
- case CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND:
- return errSecTagNotFound;
- case CSSM_ERRCODE_ACL_CHANGE_FAILED:
- return errSecACLChangeFailed;
- case CSSM_ERRCODE_ACL_DELETE_FAILED:
- return errSecACLDeleteFailed;
- case CSSM_ERRCODE_ACL_REPLACE_FAILED:
- return errSecACLReplaceFailed;
- case CSSM_ERRCODE_ACL_ADD_FAILED:
- return errSecACLAddFailed;
- case CSSM_ERRCODE_INVALID_CONTEXT_HANDLE:
- case CSSM_ERRCODE_INVALID_DB_HANDLE:
- case CSSM_ERRCODE_INVALID_CSP_HANDLE:
- case CSSM_ERRCODE_INVALID_DL_HANDLE:
- case CSSM_ERRCODE_INVALID_CL_HANDLE:
- case CSSM_ERRCODE_INVALID_TP_HANDLE:
- case CSSM_ERRCODE_INVALID_KR_HANDLE:
- case CSSM_ERRCODE_INVALID_AC_HANDLE:
- return errSecInvalidHandle;
- case CSSM_ERRCODE_INCOMPATIBLE_VERSION:
- return errSecIncompatibleVersion;
- case CSSM_ERRCODE_INVALID_DATA:
- return errSecInvalidData;
- case CSSM_ERRCODE_CRL_ALREADY_SIGNED:
- return errSecCRLAlreadySigned;
- case CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS:
- return errSecInvalidNumberOfFields;
- case CSSM_ERRCODE_VERIFICATION_FAILURE:
- return errSecVerificationFailure;
- case CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED:
- return errSecPrivilegeNotGranted;
- case CSSM_ERRCODE_INVALID_DB_LIST:
- return errSecInvalidDBList;
- case CSSM_ERRCODE_UNKNOWN_FORMAT:
- return errSecUnknownFormat;
- case CSSM_ERRCODE_INVALID_PASSTHROUGH_ID:
- return errSecInvalidPassthroughID;
- case CSSM_ERRCODE_INVALID_NETWORK_ADDR:
- return errSecInvalidNetworkAddress;
- case CSSM_ERRCODE_INVALID_CRYPTO_DATA:
- return errSecInvalidData;
- }
- }
- switch (osStatus)
- {
- // Some CSSM errors mapped to OSStatus-type (SnowLeopard and earlier).
- //
- case CSSMERR_DL_RECORD_NOT_FOUND:
- case CSSMERR_APPLETP_CERT_NOT_FOUND_FROM_ISSUER:
- case CSSMERR_CSP_PRIVATE_KEY_NOT_FOUND:
- return errSecItemNotFound;
- case CSSMERR_DL_INVALID_UNIQUE_INDEX_DATA:
- case CSSMERR_CSP_PRIVATE_KEY_ALREADY_EXISTS:
- case CSSMERR_CSP_KEY_LABEL_ALREADY_EXISTS:
- return errSecDuplicateItem;
- case CSSMERR_DL_DATABASE_CORRUPT:
- return errSecInvalidKeychain;
- case CSSMERR_DL_DATASTORE_DOESNOT_EXIST:
- return errSecNoSuchKeychain;
- case CSSMERR_DL_DATASTORE_ALREADY_EXISTS:
- return errSecDuplicateKeychain;
- case CSSMERR_APPLEDL_DISK_FULL:
- return errSecDskFull;
- case CSSMERR_DL_INVALID_OPEN_PARAMETERS:
- case CSSMERR_APPLEDL_INVALID_OPEN_PARAMETERS:
- case CSSMERR_APPLE_DOTMAC_REQ_SERVER_PARAM:
- return errSecParam;
- case CSSMERR_DL_INVALID_FIELD_NAME:
- case CSSMERR_CSSM_INVALID_ATTRIBUTE:
- return errSecNoSuchAttr;
- case CSSMERR_DL_OS_ACCESS_DENIED:
- case CSSMERR_CSP_OS_ACCESS_DENIED:
- case CSSMERR_TP_OS_ACCESS_DENIED:
- case CSSMERR_AC_OS_ACCESS_DENIED:
- case CSSMERR_CL_OS_ACCESS_DENIED:
- return errSecWrPerm;
- case CSSMERR_CSSM_BUFFER_TOO_SMALL:
- return errSecBufferTooSmall;
- case CSSMERR_CSSM_FUNCTION_NOT_IMPLEMENTED:
- case CSSMERR_CSP_FUNCTION_NOT_IMPLEMENTED:
- case CSSMERR_TP_FUNCTION_NOT_IMPLEMENTED:
- case CSSMERR_AC_FUNCTION_NOT_IMPLEMENTED:
- case CSSMERR_CL_FUNCTION_NOT_IMPLEMENTED:
- case CSSMERR_DL_FUNCTION_NOT_IMPLEMENTED:
- case CSSMERR_APPLE_DOTMAC_REQ_SERVER_UNIMPL:
- return errSecUnimplemented;
- case CSSMERR_CSSM_INTERNAL_ERROR:
- case CSSMERR_CSP_INTERNAL_ERROR:
- case CSSMERR_TP_INTERNAL_ERROR:
- case CSSMERR_AC_INTERNAL_ERROR:
- case CSSMERR_CL_INTERNAL_ERROR:
- case CSSMERR_DL_INTERNAL_ERROR:
- return errSecInternalError;
- case CSSMERR_CSSM_MEMORY_ERROR:
- case CSSMERR_CSP_MEMORY_ERROR:
- case CSSMERR_TP_MEMORY_ERROR:
- case CSSMERR_AC_MEMORY_ERROR:
- case CSSMERR_CSP_DEVICE_MEMORY_ERROR:
- case CSSMERR_CL_MEMORY_ERROR:
- case CSSMERR_DL_MEMORY_ERROR:
- return errSecMemoryError;
- case CSSMERR_CSSM_MDS_ERROR:
- case CSSMERR_CSP_MDS_ERROR:
- case CSSMERR_TP_MDS_ERROR:
- case CSSMERR_AC_MDS_ERROR:
- case CSSMERR_CL_MDS_ERROR:
- case CSSMERR_DL_MDS_ERROR:
- return errSecMDSError;
- case CSSMERR_CSSM_INVALID_POINTER:
- case CSSMERR_CSP_INVALID_POINTER:
- case CSSMERR_TP_INVALID_POINTER:
- case CSSMERR_AC_INVALID_POINTER:
- case CSSMERR_CL_INVALID_POINTER:
- case CSSMERR_DL_INVALID_POINTER:
- case CSSMERR_CSSM_INVALID_INPUT_POINTER:
- case CSSMERR_CSP_INVALID_INPUT_POINTER:
- case CSSMERR_TP_INVALID_INPUT_POINTER:
- case CSSMERR_AC_INVALID_INPUT_POINTER:
- case CSSMERR_CL_INVALID_INPUT_POINTER:
- case CSSMERR_DL_INVALID_INPUT_POINTER:
- case CSSMERR_TP_INVALID_DB_LIST_POINTER:
- case CSSMERR_AC_INVALID_DB_LIST_POINTER:
- case CSSMERR_DL_INVALID_DB_LIST_POINTER:
- case CSSMERR_TP_INVALID_CERTGROUP_POINTER:
- case CSSMERR_TP_INVALID_CERT_POINTER:
- case CSSMERR_TP_INVALID_CRL_POINTER:
- case CSSMERR_TP_INVALID_FIELD_POINTER:
- case CSSMERR_CSP_INVALID_KEY_POINTER:
- case CSSMERR_TP_INVALID_CALLERAUTH_CONTEXT_POINTER:
- case CSSMERR_TP_INVALID_IDENTIFIER_POINTER:
- case CSSMERR_TP_INVALID_CRLGROUP_POINTER:
- case CSSMERR_TP_INVALID_TUPLEGROUP_POINTER:
- case CSSMERR_CL_INVALID_CERTGROUP_POINTER:
- case CSSMERR_CL_INVALID_CERT_POINTER:
- case CSSMERR_CL_INVALID_CRL_POINTER:
- case CSSMERR_CL_INVALID_FIELD_POINTER:
- case CSSMERR_CL_INVALID_BUNDLE_POINTER:
- case CSSMERR_CSSM_INVALID_OUTPUT_POINTER:
- case CSSMERR_CSP_INVALID_OUTPUT_POINTER:
- case CSSMERR_TP_INVALID_OUTPUT_POINTER:
- case CSSMERR_AC_INVALID_OUTPUT_POINTER:
- case CSSMERR_CL_INVALID_OUTPUT_POINTER:
- case CSSMERR_DL_INVALID_OUTPUT_POINTER:
- return errSecInvalidPointer;
- case CSSMERR_CSSM_FUNCTION_FAILED:
- case CSSMERR_CSP_FUNCTION_FAILED:
- case CSSMERR_TP_FUNCTION_FAILED:
- case CSSMERR_AC_FUNCTION_FAILED:
- case CSSMERR_CL_FUNCTION_FAILED:
- case CSSMERR_DL_FUNCTION_FAILED:
- return errSecFunctionFailed;
- case CSSMERR_CSP_INVALID_DATA:
- case CSSMERR_TP_INVALID_DATA:
- case CSSMERR_AC_INVALID_DATA:
- case CSSMERR_CL_INVALID_DATA:
- case CSSMERR_CSP_INVALID_CRYPTO_DATA:
- case CSSMERR_CSP_INVALID_DATA_COUNT:
- case CSSMERR_TP_INVALID_ACTION_DATA:
- return errSecInvalidData;
- case CSSMERR_TP_INVALID_DB_LIST:
- case CSSMERR_AC_INVALID_DB_LIST:
- return errSecInvalidDBList;
- case CSSMERR_CSP_INVALID_PASSTHROUGH_ID:
- case CSSMERR_TP_INVALID_PASSTHROUGH_ID:
- case CSSMERR_AC_INVALID_PASSTHROUGH_ID:
- case CSSMERR_CL_INVALID_PASSTHROUGH_ID:
- case CSSMERR_DL_INVALID_PASSTHROUGH_ID:
- return errSecInvalidPassthroughID;
- case CSSMERR_TP_INVALID_CSP_HANDLE:
- case CSSMERR_TP_INVALID_CL_HANDLE:
- case CSSMERR_TP_INVALID_DL_HANDLE:
- case CSSMERR_AC_INVALID_TP_HANDLE:
- case CSSMERR_AC_INVALID_DL_HANDLE:
- case CSSMERR_DL_INVALID_DL_HANDLE:
- case CSSMERR_AC_INVALID_CL_HANDLE:
- case CSSMERR_DL_INVALID_CL_HANDLE:
- case CSSMERR_DL_INVALID_CSP_HANDLE:
- case CSSMERR_TP_INVALID_DB_HANDLE:
- case CSSMERR_CSSM_INVALID_ADDIN_HANDLE:
- case CSSMERR_CSSM_INVALID_CONTEXT_HANDLE:
- case CSSMERR_CL_INVALID_CACHE_HANDLE:
- case CSSMERR_CL_INVALID_RESULTS_HANDLE:
- case CSSMERR_DL_INVALID_RESULTS_HANDLE:
- case CSSMERR_TP_INVALID_KEYCACHE_HANDLE:
- case CSSMERR_CSP_INVALID_CONTEXT_HANDLE:
- case CSSMERR_TP_INVALID_CONTEXT_HANDLE:
- case CSSMERR_AC_INVALID_CONTEXT_HANDLE:
- case CSSMERR_CL_INVALID_CONTEXT_HANDLE:
- return errSecInvalidHandle;
- case CSSMERR_TP_CRL_ALREADY_SIGNED:
- case CSSMERR_CL_CRL_ALREADY_SIGNED:
- return errSecCRLAlreadySigned;
- case CSSMERR_TP_INVALID_NUMBER_OF_FIELDS:
- case CSSMERR_CL_INVALID_NUMBER_OF_FIELDS:
- return errSecInvalidNumberOfFields;
- case CSSMERR_TP_VERIFICATION_FAILURE:
- case CSSMERR_CL_VERIFICATION_FAILURE:
- return errSecVerificationFailure;
- case CSSMERR_TP_INVALID_NETWORK_ADDR:
- case CSSMERR_DL_INVALID_NETWORK_ADDR:
- return errSecInvalidNetworkAddress;
- case CSSMERR_TP_UNKNOWN_TAG:
- case CSSMERR_CL_UNKNOWN_TAG:
- case CSSMERR_CSP_INVALID_ACL_ENTRY_TAG:
- case CSSMERR_DL_INVALID_ACL_ENTRY_TAG:
- case CSSMERR_DL_INVALID_SELECTION_TAG:
- return errSecUnknownTag;
- case CSSMERR_CSP_INVALID_SIGNATURE:
- case CSSMERR_TP_INVALID_SIGNATURE:
- return errSecInvalidSignature;
- case CSSMERR_CSSM_USER_CANCELED:
- case CSSMERR_CSP_USER_CANCELED:
- case CSSMERR_TP_USER_CANCELED:
- case CSSMERR_AC_USER_CANCELED:
- case CSSMERR_CL_USER_CANCELED:
- case CSSMERR_DL_USER_CANCELED:
- return errSecUserCanceled;
- case CSSMERR_CSSM_NO_USER_INTERACTION:
- case CSSMERR_CSP_NO_USER_INTERACTION:
- case CSSMERR_TP_NO_USER_INTERACTION:
- case CSSMERR_AC_NO_USER_INTERACTION:
- case CSSMERR_CL_NO_USER_INTERACTION:
- case CSSMERR_DL_NO_USER_INTERACTION:
- return errSecInteractionNotAllowed;
- case CSSMERR_CSSM_IN_DARK_WAKE:
- case CSSMERR_CSP_IN_DARK_WAKE:
- case CSSMERR_TP_IN_DARK_WAKE:
- case CSSMERR_AC_IN_DARK_WAKE:
- case CSSMERR_CL_IN_DARK_WAKE:
- case CSSMERR_DL_IN_DARK_WAKE:
- return errSecInDarkWake;
- case CSSMERR_CSSM_SERVICE_NOT_AVAILABLE:
- case CSSMERR_CSP_SERVICE_NOT_AVAILABLE:
- case CSSMERR_TP_SERVICE_NOT_AVAILABLE:
- case CSSMERR_AC_SERVICE_NOT_AVAILABLE:
- case CSSMERR_CL_SERVICE_NOT_AVAILABLE:
- case CSSMERR_DL_SERVICE_NOT_AVAILABLE:
- return errSecServiceNotAvailable;
- case CSSMERR_CSSM_INSUFFICIENT_CLIENT_IDENTIFICATION:
- case CSSMERR_CSP_INSUFFICIENT_CLIENT_IDENTIFICATION:
- case CSSMERR_TP_INSUFFICIENT_CLIENT_IDENTIFICATION:
- case CSSMERR_AC_INSUFFICIENT_CLIENT_IDENTIFICATION:
- case CSSMERR_CL_INSUFFICIENT_CLIENT_IDENTIFICATION:
- case CSSMERR_DL_INSUFFICIENT_CLIENT_IDENTIFICATION:
- return errSecInsufficientClientID;
- case CSSMERR_CSSM_DEVICE_RESET:
- case CSSMERR_CSP_DEVICE_RESET:
- case CSSMERR_TP_DEVICE_RESET:
- case CSSMERR_AC_DEVICE_RESET:
- case CSSMERR_CL_DEVICE_RESET:
- case CSSMERR_DL_DEVICE_RESET:
- return errSecDeviceReset;
- case CSSMERR_CSSM_DEVICE_FAILED:
- case CSSMERR_CSP_DEVICE_FAILED:
- case CSSMERR_TP_DEVICE_FAILED:
- case CSSMERR_AC_DEVICE_FAILED:
- case CSSMERR_CL_DEVICE_FAILED:
- case CSSMERR_DL_DEVICE_FAILED:
- return errSecDeviceFailed;
- case CSSMERR_APPLE_DOTMAC_REQ_SERVER_AUTH:
- case CSSMERR_CSSM_EMM_AUTHENTICATE_FAILED:
- case CSSMERR_CSSM_ADDIN_AUTHENTICATE_FAILED:
- case CSSMERR_CSP_OPERATION_AUTH_DENIED:
- case CSSMERR_CSP_OBJECT_USE_AUTH_DENIED:
- case CSSMERR_CSP_OBJECT_MANIP_AUTH_DENIED:
- case CSSMERR_TP_AUTHENTICATION_FAILED:
- case CSSMERR_DL_OPERATION_AUTH_DENIED:
- case CSSMERR_DL_OBJECT_USE_AUTH_DENIED:
- case CSSMERR_DL_OBJECT_MANIP_AUTH_DENIED:
- return errAuthorizationDenied;
- case CSSMERR_CSSM_SCOPE_NOT_SUPPORTED:
- case CSSMERR_CL_SCOPE_NOT_SUPPORTED:
- case CSSMERR_CL_INVALID_SCOPE:
- return errSecInvalidScope;
- case CSSMERR_TP_INVALID_NAME:
- case CSSMERR_DL_INVALID_DB_NAME:
- return errSecInvalidName;
- case CSSMERR_APPLETP_BAD_CERT_FROM_ISSUER:
- case CSSMERR_TP_INVALID_CERTIFICATE:
- case CSSMERR_TP_INVALID_ANCHOR_CERT:
- case CSSMERR_APPLETP_CRL_INVALID_ANCHOR_CERT:
- case CSSMERR_APPLETP_OCSP_INVALID_ANCHOR_CERT:
- return errSecInvalidCertificateRef;
- case CSSMERR_CSP_ACL_ENTRY_TAG_NOT_FOUND:
- case CSSMERR_DL_ACL_ENTRY_TAG_NOT_FOUND:
- return errSecTagNotFound;
- case CSSMERR_DL_UNSUPPORTED_QUERY:
- case CSSMERR_DL_INVALID_QUERY:
- return errSecInvalidQuery;
- case CSSMERR_CSP_INVALID_ACL_CHALLENGE_CALLBACK:
- case CSSMERR_TP_INVALID_CALLBACK:
- case CSSMERR_DL_INVALID_ACL_CHALLENGE_CALLBACK:
- return errSecInvalidCallback;
- case CSSMERR_CSP_ACL_CHALLENGE_CALLBACK_FAILED:
- case CSSMERR_CSP_CRYPTO_DATA_CALLBACK_FAILED:
- case CSSMERR_DL_ACL_CHALLENGE_CALLBACK_FAILED:
- return errSecCallbackFailed;
- case CSSMERR_TP_INVALID_CERTGROUP:
- case CSSMERR_TP_CERTGROUP_INCOMPLETE:
- case CSSMERR_DL_INVALID_ACL_BASE_CERTS:
- case CSSMERR_DL_ACL_BASE_CERTS_NOT_SUPPORTED:
- case CSSMERR_CSP_INVALID_ACL_BASE_CERTS:
- return errSecInvalidCertificateGroup;
- case CSSMERR_CSP_ACL_DELETE_FAILED:
- case CSSMERR_DL_ACL_DELETE_FAILED:
- return errSecACLDeleteFailed;
- case CSSMERR_CSP_ACL_REPLACE_FAILED:
- case CSSMERR_DL_ACL_REPLACE_FAILED:
- return errSecACLReplaceFailed;
- case CSSMERR_CSP_ACL_ADD_FAILED:
- case CSSMERR_DL_ACL_ADD_FAILED:
- return errSecACLAddFailed;
- case CSSMERR_DL_ACL_CHANGE_FAILED:
- case CSSMERR_CSP_ACL_CHANGE_FAILED:
- return errSecACLChangeFailed;
- case CSSMERR_CSSM_PRIVILEGE_NOT_GRANTED:
- case CSSMERR_CSP_PRIVILEGE_NOT_GRANTED:
- return errSecPrivilegeNotGranted;
- case CSSMERR_CSP_INVALID_ACCESS_CREDENTIALS:
- case CSSMERR_DL_INVALID_ACCESS_CREDENTIALS:
- return errSecInvalidAccessCredentials;
- case CSSMERR_DL_INVALID_RECORD_INDEX:
- case CSSMERR_DL_INVALID_RECORDTYPE:
- case CSSMERR_DL_UNSUPPORTED_RECORDTYPE:
- case CSSMERR_DL_INVALID_RECORD_UID:
- case CSSMERR_DL_STALE_UNIQUE_RECORD:
- return errSecInvalidRecord;
- case CSSMERR_CSP_INVALID_KEY:
- case CSSMERR_CSP_INVALID_KEY_REFERENCE:
- case CSSMERR_CSP_INVALID_KEY_CLASS:
- return errSecInvalidKeyRef;
- case CSSMERR_CSP_OBJECT_ACL_NOT_SUPPORTED:
- case CSSMERR_CSP_OBJECT_ACL_REQUIRED:
- case CSSMERR_CSP_ACL_BASE_CERTS_NOT_SUPPORTED:
- case CSSMERR_CSP_INVALID_ACL_SUBJECT_VALUE:
- case CSSMERR_CSP_ACL_SUBJECT_TYPE_NOT_SUPPORTED:
- case CSSMERR_DL_OBJECT_ACL_NOT_SUPPORTED:
- case CSSMERR_DL_OBJECT_ACL_REQUIRED:
- case CSSMERR_DL_INVALID_ACL_SUBJECT_VALUE:
- case CSSMERR_DL_ACL_SUBJECT_TYPE_NOT_SUPPORTED:
- case CSSMERR_DL_INVALID_NEW_ACL_ENTRY:
- case CSSMERR_DL_INVALID_NEW_ACL_OWNER:
- case CSSMERR_DL_INVALID_ACL_EDIT_MODE:
- case CSSMERR_CSP_INVALID_ACL_EDIT_MODE:
- case CSSMERR_CSP_INVALID_NEW_ACL_ENTRY:
- case CSSMERR_CSP_INVALID_NEW_ACL_OWNER:
- return errSecInvalidACL;
- case CSSMERR_CSP_INVALID_SAMPLE_VALUE:
- case CSSMERR_DL_INVALID_SAMPLE_VALUE:
- case CSSMERR_CSP_SAMPLE_VALUE_NOT_SUPPORTED:
- case CSSMERR_DL_SAMPLE_VALUE_NOT_SUPPORTED:
- return errSecInvalidSampleValue;
- case CSSMERR_TP_UNKNOWN_FORMAT:
- case CSSMERR_CL_UNKNOWN_FORMAT:
- return errSecUnknownFormat;
- case CSSMERR_CSP_APPLE_ADD_APPLICATION_ACL_SUBJECT:
- return errSecAppleAddAppACLSubject;
- case CSSMERR_CSP_APPLE_PUBLIC_KEY_INCOMPLETE:
- return errSecApplePublicKeyIncomplete;
- case CSSMERR_CSP_APPLE_SIGNATURE_MISMATCH:
- return errSecAppleSignatureMismatch;
- case CSSMERR_CSP_APPLE_INVALID_KEY_START_DATE:
- return errSecAppleInvalidKeyStartDate;
- case CSSMERR_CSP_APPLE_INVALID_KEY_END_DATE:
- return errSecAppleInvalidKeyEndDate;
- case CSSMERR_CSPDL_APPLE_DL_CONVERSION_ERROR:
- return errSecConversionError;
- case CSSMERR_CSP_APPLE_SSLv2_ROLLBACK:
- return errSecAppleSSLv2Rollback;
- case CSSMERR_APPLEDL_QUOTA_EXCEEDED:
- return errSecQuotaExceeded;
- case CSSMERR_APPLEDL_FILE_TOO_BIG:
- return errSecFileTooBig;
- case CSSMERR_APPLEDL_INVALID_DATABASE_BLOB:
- return errSecInvalidDatabaseBlob;
- case CSSMERR_APPLEDL_INVALID_KEY_BLOB:
- return errSecInvalidKeyBlob;
- case CSSMERR_APPLEDL_INCOMPATIBLE_DATABASE_BLOB:
- return errSecIncompatibleDatabaseBlob;
- case CSSMERR_APPLEDL_INCOMPATIBLE_KEY_BLOB:
- return errSecIncompatibleKeyBlob;
- case CSSMERR_APPLETP_HOSTNAME_MISMATCH:
- return errSecHostNameMismatch;
- case CSSMERR_APPLETP_UNKNOWN_CRITICAL_EXTEN:
- return errSecUnknownCriticalExtensionFlag;
- case CSSMERR_APPLETP_NO_BASIC_CONSTRAINTS:
- return errSecNoBasicConstraints;
- case CSSMERR_APPLETP_INVALID_AUTHORITY_ID:
- return errSecInvalidAuthorityKeyID;
- case CSSMERR_APPLETP_INVALID_SUBJECT_ID:
- return errSecInvalidSubjectKeyID;
- case CSSMERR_APPLETP_INVALID_KEY_USAGE:
- return errSecInvalidKeyUsageForPolicy;
- case CSSMERR_APPLETP_INVALID_EXTENDED_KEY_USAGE:
- return errSecInvalidExtendedKeyUsage;
- case CSSMERR_APPLETP_INVALID_ID_LINKAGE:
- return errSecInvalidIDLinkage;
- case CSSMERR_APPLETP_PATH_LEN_CONSTRAINT:
- return errSecPathLengthConstraintExceeded;
- case CSSMERR_APPLETP_INVALID_ROOT:
- return errSecInvalidRoot;
- case CSSMERR_APPLETP_CRL_EXPIRED:
- return errSecCRLExpired;
- case CSSMERR_APPLETP_CRL_NOT_VALID_YET:
- return errSecCRLNotValidYet;
- case CSSMERR_APPLETP_CRL_NOT_FOUND:
- return errSecCRLNotFound;
- case CSSMERR_APPLETP_CRL_SERVER_DOWN:
- return errSecCRLServerDown;
- case CSSMERR_APPLETP_CRL_BAD_URI:
- return errSecCRLBadURI;
- case CSSMERR_APPLETP_UNKNOWN_CERT_EXTEN:
- return errSecUnknownCertExtension;
- case CSSMERR_APPLETP_UNKNOWN_CRL_EXTEN:
- return errSecUnknownCRLExtension;
- case CSSMERR_APPLETP_CRL_NOT_TRUSTED:
- return errSecCRLNotTrusted;
- case CSSMERR_APPLETP_CRL_POLICY_FAIL:
- return errSecCRLPolicyFailed;
- case CSSMERR_APPLETP_IDP_FAIL:
- return errSecIDPFailure;
- case CSSMERR_APPLETP_SMIME_EMAIL_ADDRS_NOT_FOUND:
- return errSecSMIMEEmailAddressesNotFound;
- case CSSMERR_APPLETP_SMIME_BAD_EXT_KEY_USE:
- return errSecSMIMEBadExtendedKeyUsage;
- case CSSMERR_APPLETP_SMIME_BAD_KEY_USE:
- return errSecSMIMEBadKeyUsage;
- case CSSMERR_APPLETP_SMIME_KEYUSAGE_NOT_CRITICAL:
- return errSecSMIMEKeyUsageNotCritical;
- case CSSMERR_APPLETP_SMIME_NO_EMAIL_ADDRS:
- return errSecSMIMENoEmailAddress;
- case CSSMERR_APPLETP_SMIME_SUBJ_ALT_NAME_NOT_CRIT:
- return errSecSMIMESubjAltNameNotCritical;
- case CSSMERR_APPLETP_SSL_BAD_EXT_KEY_USE:
- return errSecSSLBadExtendedKeyUsage;
- case CSSMERR_APPLETP_OCSP_BAD_RESPONSE:
- return errSecOCSPBadResponse;
- case CSSMERR_APPLETP_OCSP_BAD_REQUEST:
- return errSecOCSPBadRequest;
- case CSSMERR_APPLETP_OCSP_UNAVAILABLE:
- return errSecOCSPUnavailable;
- case CSSMERR_APPLETP_OCSP_STATUS_UNRECOGNIZED:
- return errSecOCSPStatusUnrecognized;
- case CSSMERR_APPLETP_INCOMPLETE_REVOCATION_CHECK:
- return errSecIncompleteCertRevocationCheck;
- case CSSMERR_APPLETP_NETWORK_FAILURE:
- return errSecNetworkFailure;
- case CSSMERR_APPLETP_OCSP_NOT_TRUSTED:
- return errSecOCSPNotTrustedToAnchor;
- case CSSMERR_APPLETP_OCSP_SIG_ERROR:
- return errSecOCSPSignatureError;
- case CSSMERR_APPLETP_OCSP_NO_SIGNER:
- return errSecOCSPNoSigner;
- case CSSMERR_APPLETP_OCSP_RESP_MALFORMED_REQ:
- return errSecOCSPResponderMalformedReq;
- case CSSMERR_APPLETP_OCSP_RESP_INTERNAL_ERR:
- return errSecOCSPResponderInternalError;
- case CSSMERR_APPLETP_OCSP_RESP_TRY_LATER:
- return errSecOCSPResponderTryLater;
- case CSSMERR_APPLETP_OCSP_RESP_SIG_REQUIRED:
- return errSecOCSPResponderSignatureRequired;
- case CSSMERR_APPLETP_OCSP_RESP_UNAUTHORIZED:
- return errSecOCSPResponderUnauthorized;
- case CSSMERR_APPLETP_OCSP_NONCE_MISMATCH:
- return errSecOCSPResponseNonceMismatch;
- case CSSMERR_APPLETP_CS_BAD_CERT_CHAIN_LENGTH:
- return errSecCodeSigningBadCertChainLength;
- case CSSMERR_APPLETP_CS_NO_BASIC_CONSTRAINTS:
- return errSecCodeSigningNoBasicConstraints;
- case CSSMERR_APPLETP_CS_BAD_PATH_LENGTH:
- return errSecCodeSigningBadPathLengthConstraint;
- case CSSMERR_APPLETP_CS_NO_EXTENDED_KEY_USAGE:
- return errSecCodeSigningNoExtendedKeyUsage;
- case CSSMERR_APPLETP_CODE_SIGN_DEVELOPMENT:
- return errSecCodeSigningDevelopment;
- case CSSMERR_APPLETP_RS_BAD_CERT_CHAIN_LENGTH:
- return errSecResourceSignBadCertChainLength;
- case CSSMERR_APPLETP_RS_BAD_EXTENDED_KEY_USAGE:
- return errSecResourceSignBadExtKeyUsage;
- case CSSMERR_APPLETP_TRUST_SETTING_DENY:
- return errSecTrustSettingDeny;
- case CSSMERR_APPLETP_INVALID_EMPTY_SUBJECT:
- return errSecInvalidSubjectName;
- case CSSMERR_APPLETP_UNKNOWN_QUAL_CERT_STATEMENT:
- return errSecUnknownQualifiedCertStatement;
- case CSSMERR_APPLETP_MISSING_REQUIRED_EXTENSION:
- return errSecMissingRequiredExtension;
- case CSSMERR_APPLETP_EXT_KEYUSAGE_NOT_CRITICAL:
- return errSecExtendedKeyUsageNotCritical;
- case CSSMERR_APPLE_DOTMAC_REQ_QUEUED:
- return errSecMobileMeRequestQueued;
- case CSSMERR_APPLE_DOTMAC_REQ_REDIRECT:
- return errSecMobileMeRequestRedirected;
- case CSSMERR_APPLE_DOTMAC_REQ_SERVER_ERR:
- return errSecMobileMeServerError;
- case CSSMERR_APPLE_DOTMAC_REQ_SERVER_NOT_AVAIL:
- return errSecMobileMeServerNotAvailable;
- case CSSMERR_APPLE_DOTMAC_REQ_SERVER_ALREADY_EXIST:
- return errSecMobileMeServerAlreadyExists;
- case CSSMERR_APPLE_DOTMAC_REQ_SERVER_SERVICE_ERROR:
- return errSecMobileMeServerServiceErr;
- case CSSMERR_APPLE_DOTMAC_REQ_IS_PENDING:
- return errSecMobileMeRequestAlreadyPending;
- case CSSMERR_APPLE_DOTMAC_NO_REQ_PENDING:
- return errSecMobileMeNoRequestPending;
- case CSSMERR_APPLE_DOTMAC_CSR_VERIFY_FAIL:
- return errSecMobileMeCSRVerifyFailure;
- case CSSMERR_APPLE_DOTMAC_FAILED_CONSISTENCY_CHECK:
- return errSecMobileMeFailedConsistencyCheck;
- case CSSMERR_CSSM_NOT_INITIALIZED:
- return errSecNotInitialized;
- case CSSMERR_CSSM_INVALID_HANDLE_USAGE:
- return errSecInvalidHandleUsage;
- case CSSMERR_CSSM_PVC_REFERENT_NOT_FOUND:
- return errSecPVCReferentNotFound;
- case CSSMERR_CSSM_FUNCTION_INTEGRITY_FAIL:
- return errSecFunctionIntegrityFail;
- case CSSMERR_CSSM_SELF_CHECK_FAILED:
- case CSSMERR_CSP_SELF_CHECK_FAILED:
- return errSecSelfCheckFailed;
- case CSSMERR_CSSM_MODULE_MANIFEST_VERIFY_FAILED:
- return errSecModuleManifestVerifyFailed;
- case CSSMERR_CSSM_INVALID_GUID:
- return errSecInvalidGUID;
- case CSSMERR_CSSM_INCOMPATIBLE_VERSION:
- return errSecIncompatibleVersion;
- case CSSMERR_CSSM_PVC_ALREADY_CONFIGURED:
- return errSecPVCAlreadyConfigured;
- case CSSMERR_CSSM_INVALID_PVC:
- return errSecInvalidPVC;
- case CSSMERR_CSSM_EMM_LOAD_FAILED:
- return errSecEMMLoadFailed;
- case CSSMERR_CSSM_EMM_UNLOAD_FAILED:
- return errSecEMMUnloadFailed;
- case CSSMERR_CSSM_ADDIN_LOAD_FAILED:
- return errSecAddinLoadFailed;
- case CSSMERR_CSSM_INVALID_KEY_HIERARCHY:
- return errSecInvalidKeyHierarchy;
- case CSSMERR_CSSM_ADDIN_UNLOAD_FAILED:
- return errSecAddinUnloadFailed;
- case CSSMERR_CSSM_LIB_REF_NOT_FOUND:
- return errSecLibraryReferenceNotFound;
- case CSSMERR_CSSM_INVALID_ADDIN_FUNCTION_TABLE:
- return errSecInvalidAddinFunctionTable;
- case CSSMERR_CSSM_INVALID_SERVICE_MASK:
- return errSecInvalidServiceMask;
- case CSSMERR_CSSM_MODULE_NOT_LOADED:
- return errSecModuleNotLoaded;
- case CSSMERR_CSSM_INVALID_SUBSERVICEID:
- return errSecInvalidSubServiceID;
- case CSSMERR_CSSM_ATTRIBUTE_NOT_IN_CONTEXT:
- return errSecAttributeNotInContext;
- case CSSMERR_CSSM_MODULE_MANAGER_INITIALIZE_FAIL:
- return errSecModuleManagerInitializeFailed;
- case CSSMERR_CSSM_MODULE_MANAGER_NOT_FOUND:
- return errSecModuleManagerNotFound;
- case CSSMERR_CSSM_EVENT_NOTIFICATION_CALLBACK_NOT_FOUND:
- return errSecEventNotificationCallbackNotFound;
- case CSSMERR_CSP_INPUT_LENGTH_ERROR:
- return errSecInputLengthError;
- case CSSMERR_CSP_OUTPUT_LENGTH_ERROR:
- return errSecOutputLengthError;
- case CSSMERR_CSP_PRIVILEGE_NOT_SUPPORTED:
- return errSecPrivilegeNotSupported;
- case CSSMERR_CSP_DEVICE_ERROR:
- return errSecDeviceError;
- case CSSMERR_CSP_ATTACH_HANDLE_BUSY:
- return errSecAttachHandleBusy;
- case CSSMERR_CSP_NOT_LOGGED_IN:
- return errSecNotLoggedIn;
- case CSSMERR_CSP_ALGID_MISMATCH:
- return errSecAlgorithmMismatch;
- case CSSMERR_CSP_KEY_USAGE_INCORRECT:
- return errSecKeyUsageIncorrect;
- case CSSMERR_CSP_KEY_BLOB_TYPE_INCORRECT:
- return errSecKeyBlobTypeIncorrect;
- case CSSMERR_CSP_KEY_HEADER_INCONSISTENT:
- return errSecKeyHeaderInconsistent;
- case CSSMERR_CSP_UNSUPPORTED_KEY_FORMAT:
- return errSecUnsupportedKeyFormat;
- case CSSMERR_CSP_UNSUPPORTED_KEY_SIZE:
- return errSecUnsupportedKeySize;
- case CSSMERR_CSP_INVALID_KEYUSAGE_MASK:
- return errSecInvalidKeyUsageMask;
- case CSSMERR_CSP_UNSUPPORTED_KEYUSAGE_MASK:
- return errSecUnsupportedKeyUsageMask;
- case CSSMERR_CSP_INVALID_KEYATTR_MASK:
- return errSecInvalidKeyAttributeMask;
- case CSSMERR_CSP_UNSUPPORTED_KEYATTR_MASK:
- return errSecUnsupportedKeyAttributeMask;
- case CSSMERR_CSP_INVALID_KEY_LABEL:
- return errSecInvalidKeyLabel;
- case CSSMERR_CSP_UNSUPPORTED_KEY_LABEL:
- return errSecUnsupportedKeyLabel;
- case CSSMERR_CSP_INVALID_KEY_FORMAT:
- return errSecInvalidKeyFormat;
- case CSSMERR_CSP_VECTOR_OF_BUFS_UNSUPPORTED:
- return errSecUnsupportedVectorOfBuffers;
- case CSSMERR_CSP_INVALID_INPUT_VECTOR:
- return errSecInvalidInputVector;
- case CSSMERR_CSP_INVALID_OUTPUT_VECTOR:
- return errSecInvalidOutputVector;
- case CSSMERR_CSP_INVALID_CONTEXT:
- return errSecInvalidContext;
- case CSSMERR_CSP_INVALID_ALGORITHM:
- return errSecInvalidAlgorithm;
- case CSSMERR_CSP_INVALID_ATTR_KEY:
- return errSecInvalidAttributeKey;
- case CSSMERR_CSP_MISSING_ATTR_KEY:
- return errSecMissingAttributeKey;
- case CSSMERR_CSP_INVALID_ATTR_INIT_VECTOR:
- return errSecInvalidAttributeInitVector;
- case CSSMERR_CSP_MISSING_ATTR_INIT_VECTOR:
- return errSecMissingAttributeInitVector;
- case CSSMERR_CSP_INVALID_ATTR_SALT:
- return errSecInvalidAttributeSalt;
- case CSSMERR_CSP_MISSING_ATTR_SALT:
- return errSecMissingAttributeSalt;
- case CSSMERR_CSP_INVALID_ATTR_PADDING:
- return errSecInvalidAttributePadding;
- case CSSMERR_CSP_MISSING_ATTR_PADDING:
- return errSecMissingAttributePadding;
- case CSSMERR_CSP_INVALID_ATTR_RANDOM:
- return errSecInvalidAttributeRandom;
- case CSSMERR_CSP_MISSING_ATTR_RANDOM:
- return errSecMissingAttributeRandom;
- case CSSMERR_CSP_INVALID_ATTR_SEED:
- return errSecInvalidAttributeSeed;
- case CSSMERR_CSP_MISSING_ATTR_SEED:
- return errSecMissingAttributeSeed;
- case CSSMERR_CSP_INVALID_ATTR_PASSPHRASE:
- return errSecInvalidAttributePassphrase;
- case CSSMERR_CSP_MISSING_ATTR_PASSPHRASE:
- return errSecMissingAttributePassphrase;
- case CSSMERR_CSP_INVALID_ATTR_KEY_LENGTH:
- return errSecInvalidAttributeKeyLength;
- case CSSMERR_CSP_MISSING_ATTR_KEY_LENGTH:
- return errSecMissingAttributeKeyLength;
- case CSSMERR_CSP_INVALID_ATTR_BLOCK_SIZE:
- return errSecInvalidAttributeBlockSize;
- case CSSMERR_CSP_MISSING_ATTR_BLOCK_SIZE:
- return errSecMissingAttributeBlockSize;
- case CSSMERR_CSP_INVALID_ATTR_OUTPUT_SIZE:
- return errSecInvalidAttributeOutputSize;
- case CSSMERR_CSP_MISSING_ATTR_OUTPUT_SIZE:
- return errSecMissingAttributeOutputSize;
- case CSSMERR_CSP_INVALID_ATTR_ROUNDS:
- return errSecInvalidAttributeRounds;
- case CSSMERR_CSP_MISSING_ATTR_ROUNDS:
- return errSecMissingAttributeRounds;
- case CSSMERR_CSP_INVALID_ATTR_ALG_PARAMS:
- return errSecInvalidAlgorithmParms;
- case CSSMERR_CSP_MISSING_ATTR_ALG_PARAMS:
- return errSecMissingAlgorithmParms;
- case CSSMERR_CSP_INVALID_ATTR_LABEL:
- return errSecInvalidAttributeLabel;
- case CSSMERR_CSP_MISSING_ATTR_LABEL:
- return errSecMissingAttributeLabel;
- case CSSMERR_CSP_INVALID_ATTR_KEY_TYPE:
- return errSecInvalidAttributeKeyType;
- case CSSMERR_CSP_MISSING_ATTR_KEY_TYPE:
- return errSecMissingAttributeKeyType;
- case CSSMERR_CSP_INVALID_ATTR_MODE:
- return errSecInvalidAttributeMode;
- case CSSMERR_CSP_MISSING_ATTR_MODE:
- return errSecMissingAttributeMode;
- case CSSMERR_CSP_INVALID_ATTR_EFFECTIVE_BITS:
- return errSecInvalidAttributeEffectiveBits;
- case CSSMERR_CSP_MISSING_ATTR_EFFECTIVE_BITS:
- return errSecMissingAttributeEffectiveBits;
- case CSSMERR_CSP_INVALID_ATTR_START_DATE:
- return errSecInvalidAttributeStartDate;
- case CSSMERR_CSP_MISSING_ATTR_START_DATE:
- return errSecMissingAttributeStartDate;
- case CSSMERR_CSP_INVALID_ATTR_END_DATE:
- return errSecInvalidAttributeEndDate;
- case CSSMERR_CSP_MISSING_ATTR_END_DATE:
- return errSecMissingAttributeEndDate;
- case CSSMERR_CSP_INVALID_ATTR_VERSION:
- return errSecInvalidAttributeVersion;
- case CSSMERR_CSP_MISSING_ATTR_VERSION:
- return errSecMissingAttributeVersion;
- case CSSMERR_CSP_INVALID_ATTR_PRIME:
- return errSecInvalidAttributePrime;
- case CSSMERR_CSP_MISSING_ATTR_PRIME:
- return errSecMissingAttributePrime;
- case CSSMERR_CSP_INVALID_ATTR_BASE:
- return errSecInvalidAttributeBase;
- case CSSMERR_CSP_MISSING_ATTR_BASE:
- return errSecMissingAttributeBase;
- case CSSMERR_CSP_INVALID_ATTR_SUBPRIME:
- return errSecInvalidAttributeSubprime;
- case CSSMERR_CSP_MISSING_ATTR_SUBPRIME:
- return errSecMissingAttributeSubprime;
- case CSSMERR_CSP_INVALID_ATTR_ITERATION_COUNT:
- return errSecInvalidAttributeIterationCount;
- case CSSMERR_CSP_MISSING_ATTR_ITERATION_COUNT:
- return errSecMissingAttributeIterationCount;
- case CSSMERR_CSP_INVALID_ATTR_DL_DB_HANDLE:
- return errSecInvalidAttributeDLDBHandle;
- case CSSMERR_CSP_MISSING_ATTR_DL_DB_HANDLE:
- return errSecMissingAttributeDLDBHandle;
- case CSSMERR_CSP_INVALID_ATTR_ACCESS_CREDENTIALS:
- return errSecInvalidAttributeAccessCredentials;
- case CSSMERR_CSP_MISSING_ATTR_ACCESS_CREDENTIALS:
- return errSecMissingAttributeAccessCredentials;
- case CSSMERR_CSP_INVALID_ATTR_PUBLIC_KEY_FORMAT:
- return errSecInvalidAttributePublicKeyFormat;
- case CSSMERR_CSP_MISSING_ATTR_PUBLIC_KEY_FORMAT:
- return errSecMissingAttributePublicKeyFormat;
- case CSSMERR_CSP_INVALID_ATTR_PRIVATE_KEY_FORMAT:
- return errSecInvalidAttributePrivateKeyFormat;
- case CSSMERR_CSP_MISSING_ATTR_PRIVATE_KEY_FORMAT:
- return errSecMissingAttributePrivateKeyFormat;
- case CSSMERR_CSP_INVALID_ATTR_SYMMETRIC_KEY_FORMAT:
- return errSecInvalidAttributeSymmetricKeyFormat;
- case CSSMERR_CSP_MISSING_ATTR_SYMMETRIC_KEY_FORMAT:
- return errSecMissingAttributeSymmetricKeyFormat;
- case CSSMERR_CSP_INVALID_ATTR_WRAPPED_KEY_FORMAT:
- return errSecInvalidAttributeWrappedKeyFormat;
- case CSSMERR_CSP_MISSING_ATTR_WRAPPED_KEY_FORMAT:
- return errSecMissingAttributeWrappedKeyFormat;
- case CSSMERR_CSP_STAGED_OPERATION_IN_PROGRESS:
- return errSecStagedOperationInProgress;
- case CSSMERR_CSP_STAGED_OPERATION_NOT_STARTED:
- return errSecStagedOperationNotStarted;
- case CSSMERR_CSP_VERIFY_FAILED:
- return errSecVerifyFailed;
- case CSSMERR_CSP_QUERY_SIZE_UNKNOWN:
- return errSecQuerySizeUnknown;
- case CSSMERR_CSP_BLOCK_SIZE_MISMATCH:
- return errSecBlockSizeMismatch;
- case CSSMERR_CSP_PUBLIC_KEY_INCONSISTENT:
- return errSecPublicKeyInconsistent;
- case CSSMERR_CSP_DEVICE_VERIFY_FAILED:
- return errSecDeviceVerifyFailed;
- case CSSMERR_CSP_INVALID_LOGIN_NAME:
- return errSecInvalidLoginName;
- case CSSMERR_CSP_ALREADY_LOGGED_IN:
- return errSecAlreadyLoggedIn;
- case CSSMERR_CSP_INVALID_DIGEST_ALGORITHM:
- return errSecInvalidDigestAlgorithm;
- case CSSMERR_TP_INVALID_CRLGROUP:
- return errSecInvalidCRLGroup;
- case CSSMERR_TP_CERTIFICATE_CANT_OPERATE:
- return errSecCertificateCannotOperate;
- case CSSMERR_TP_CERT_EXPIRED:
- return errSecCertificateExpired;
- case CSSMERR_TP_CERT_NOT_VALID_YET:
- return errSecCertificateNotValidYet;
- case CSSMERR_TP_CERT_REVOKED:
- return errSecCertificateRevoked;
- case CSSMERR_TP_CERT_SUSPENDED:
- return errSecCertificateSuspended;
- case CSSMERR_TP_INSUFFICIENT_CREDENTIALS:
- return errSecInsufficientCredentials;
- case CSSMERR_TP_INVALID_ACTION:
- return errSecInvalidAction;
- case CSSMERR_TP_INVALID_AUTHORITY:
- return errSecInvalidAuthority;
- case CSSMERR_TP_VERIFY_ACTION_FAILED:
- return errSecVerifyActionFailed;
- case CSSMERR_TP_INVALID_CERT_AUTHORITY:
- case CSSMERR_APPLETP_INVALID_CA:
- return errSecInvalidCertAuthority;
- case CSSMERR_TP_INVALID_CRL_AUTHORITY:
- return errSecInvaldCRLAuthority;
- case CSSMERR_TP_INVALID_CRL_ENCODING:
- return errSecInvalidCRLEncoding;
- case CSSMERR_TP_INVALID_CRL_TYPE:
- return errSecInvalidCRLType;
- case CSSMERR_TP_INVALID_CRL:
- return errSecInvalidCRL;
- case CSSMERR_TP_INVALID_FORM_TYPE:
- return errSecInvalidFormType;
- case CSSMERR_TP_INVALID_ID:
- return errSecInvalidID;
- case CSSMERR_TP_INVALID_IDENTIFIER:
- return errSecInvalidIdentifier;
- case CSSMERR_TP_INVALID_INDEX:
- return errSecInvalidIndex;
- case CSSMERR_TP_INVALID_POLICY_IDENTIFIERS:
- return errSecInvalidPolicyIdentifiers;
- case CSSMERR_TP_INVALID_TIMESTRING:
- return errSecInvalidTimeString;
- case CSSMERR_TP_INVALID_REASON:
- return errSecInvalidReason;
- case CSSMERR_TP_INVALID_REQUEST_INPUTS:
- return errSecInvalidRequestInputs;
- case CSSMERR_TP_INVALID_RESPONSE_VECTOR:
- return errSecInvalidResponseVector;
- case CSSMERR_TP_INVALID_STOP_ON_POLICY:
- return errSecInvalidStopOnPolicy;
- case CSSMERR_TP_INVALID_TUPLE:
- return errSecInvalidTuple;
- case CSSMERR_TP_NOT_SIGNER:
- return errSecNotSigner;
- case CSSMERR_TP_NOT_TRUSTED:
- return errSecNotTrusted;
- case CSSMERR_TP_NO_DEFAULT_AUTHORITY:
- return errSecNoDefaultAuthority;
- case CSSMERR_TP_REJECTED_FORM:
- return errSecRejectedForm;
- case CSSMERR_TP_REQUEST_LOST:
- return errSecRequestLost;
- case CSSMERR_TP_REQUEST_REJECTED:
- return errSecRequestRejected;
- case CSSMERR_TP_UNSUPPORTED_ADDR_TYPE:
- return errSecUnsupportedAddressType;
- case CSSMERR_TP_UNSUPPORTED_SERVICE:
- return errSecUnsupportedService;
- case CSSMERR_TP_INVALID_TUPLEGROUP:
- return errSecInvalidTupleGroup;
- case CSSMERR_AC_INVALID_BASE_ACLS:
- return errSecInvalidBaseACLs;
- case CSSMERR_AC_INVALID_TUPLE_CREDENTIALS:
- return errSecInvalidTupleCredendtials;
- case CSSMERR_AC_INVALID_ENCODING:
- return errSecInvalidEncoding;
- case CSSMERR_AC_INVALID_VALIDITY_PERIOD:
- return errSecInvalidValidityPeriod;
- case CSSMERR_AC_INVALID_REQUESTOR:
- return errSecInvalidRequestor;
- case CSSMERR_AC_INVALID_REQUEST_DESCRIPTOR:
- return errSecRequestDescriptor;
- case CSSMERR_CL_INVALID_BUNDLE_INFO:
- return errSecInvalidBundleInfo;
- case CSSMERR_CL_INVALID_CRL_INDEX:
- return errSecInvalidCRLIndex;
- case CSSMERR_CL_NO_FIELD_VALUES:
- return errSecNoFieldValues;
- case CSSMERR_DL_UNSUPPORTED_FIELD_FORMAT:
- return errSecUnsupportedFieldFormat;
- case CSSMERR_DL_UNSUPPORTED_INDEX_INFO:
- return errSecUnsupportedIndexInfo;
- case CSSMERR_DL_UNSUPPORTED_LOCALITY:
- return errSecUnsupportedLocality;
- case CSSMERR_DL_UNSUPPORTED_NUM_ATTRIBUTES:
- return errSecUnsupportedNumAttributes;
- case CSSMERR_DL_UNSUPPORTED_NUM_INDEXES:
- return errSecUnsupportedNumIndexes;
- case CSSMERR_DL_UNSUPPORTED_NUM_RECORDTYPES:
- return errSecUnsupportedNumRecordTypes;
- case CSSMERR_DL_FIELD_SPECIFIED_MULTIPLE:
- return errSecFieldSpecifiedMultiple;
- case CSSMERR_DL_INCOMPATIBLE_FIELD_FORMAT:
- return errSecIncompatibleFieldFormat;
- case CSSMERR_DL_INVALID_PARSING_MODULE:
- return errSecInvalidParsingModule;
- case CSSMERR_DL_DB_LOCKED:
- return errSecDatabaseLocked;
- case CSSMERR_DL_DATASTORE_IS_OPEN:
- return errSecDatastoreIsOpen;
- case CSSMERR_DL_MISSING_VALUE:
- return errSecMissingValue;
- case CSSMERR_DL_UNSUPPORTED_QUERY_LIMITS:
- return errSecUnsupportedQueryLimits;
- case CSSMERR_DL_UNSUPPORTED_NUM_SELECTION_PREDS:
- return errSecUnsupportedNumSelectionPreds;
- case CSSMERR_DL_UNSUPPORTED_OPERATOR:
- return errSecUnsupportedOperator;
- case CSSMERR_DL_INVALID_DB_LOCATION:
- return errSecInvalidDBLocation;
- case CSSMERR_DL_INVALID_ACCESS_REQUEST:
- return errSecInvalidAccessRequest;
- case CSSMERR_DL_INVALID_INDEX_INFO:
- return errSecInvalidIndexInfo;
- case CSSMERR_DL_INVALID_NEW_OWNER:
- return errSecInvalidNewOwner;
- case CSSMERR_DL_INVALID_MODIFY_MODE:
- return errSecInvalidModifyMode;
- case CSSMERR_DL_RECORD_MODIFIED:
- return errSecRecordModified;
- case CSSMERR_DL_ENDOFDATA:
- return errSecEndOfData;
- case CSSMERR_DL_INVALID_VALUE:
- return errSecInvalidValue;
- case CSSMERR_DL_MULTIPLE_VALUES_UNSUPPORTED:
- return errSecMultipleValuesUnsupported;
- default:
- return osStatus;
- }
-}