2 * Copyright (c) 2000-2014 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@
26 SecBase contains common declarations for the Security functions.
29 #ifndef _SECURITY_SECBASE_H_
30 #define _SECURITY_SECBASE_H_
32 #include <CoreFoundation/CFBase.h>
33 #include <AvailabilityMacros.h>
35 #if defined(__clang__)
36 #define SEC_DEPRECATED_ATTRIBUTE DEPRECATED_ATTRIBUTE
38 #define SEC_DEPRECATED_ATTRIBUTE
41 #if defined(__cplusplus)
45 CF_ASSUME_NONNULL_BEGIN
46 CF_IMPLICIT_BRIDGING_ENABLED
52 @typedef SecKeychainRef
53 @abstract Contains information about a keychain.
55 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecKeychainRef
*SecKeychainRef
;
58 @typedef SecKeychainItemRef
59 @abstract Contains information about a keychain item.
61 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecKeychainItemRef
*SecKeychainItemRef
;
64 @typedef SecKeychainSearchRef
65 @abstract Contains information about a keychain search.
67 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecKeychainSearchRef
*SecKeychainSearchRef
;
70 @typedef SecKeychainAttrType
71 @abstract Represents a keychain attribute type.
73 typedef OSType SecKeychainAttrType
;
76 @struct SecKeychainAttribute
77 @abstract Contains keychain attributes.
78 @field tag A 4-byte attribute tag.
79 @field length The length of the buffer pointed to by data.
80 @field data A pointer to the attribute data.
82 struct SecKeychainAttribute
84 SecKeychainAttrType tag
;
88 typedef struct SecKeychainAttribute SecKeychainAttribute
;
91 @typedef SecKeychainAttributePtr
92 @abstract Represents a pointer to a keychain attribute structure.
94 typedef SecKeychainAttribute
*SecKeychainAttributePtr
;
97 @typedef SecKeychainAttributeList
98 @abstract Represents a list of keychain attributes.
99 @field count An unsigned 32-bit integer that represents the number of keychain attributes in the array.
100 @field attr A pointer to the first keychain attribute in the array.
102 struct SecKeychainAttributeList
105 SecKeychainAttribute
*attr
;
107 typedef struct SecKeychainAttributeList SecKeychainAttributeList
;
110 @typedef SecKeychainStatus
111 @abstract Represents the status of a keychain.
113 typedef UInt32 SecKeychainStatus
;
117 @typedef SecTrustedApplicationRef
118 @abstract Contains information about a trusted application.
120 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecTrustedApplicationRef
*SecTrustedApplicationRef
;
123 @typedef SecPolicyRef
124 @abstract Contains information about a policy.
126 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecPolicyRef
*SecPolicyRef
;
129 @typedef SecCertificateRef
130 @abstract Contains information about a certificate.
132 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecCertificateRef
*SecCertificateRef
;
135 @typedef SecAccessRef
136 @abstract Contains information about an access.
138 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecAccessRef
*SecAccessRef
;
141 @typedef SecIdentityRef
142 @abstract Contains information about an identity.
144 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecIdentityRef
*SecIdentityRef
;
148 @abstract Contains information about a key.
150 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecKeyRef
*SecKeyRef
;
154 @abstract Contains information about an access control list (ACL) entry.
156 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecTrustRef
*SecACLRef
;
159 @typedef SecAccessControlRef
160 @abstract CFType representing access control for an item.
162 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecAccessControl
*SecAccessControlRef
;
165 @typedef SecPasswordRef
166 @abstract Contains information about a password.
168 typedef struct CF_BRIDGED_TYPE(id
) OpaqueSecPasswordRef
*SecPasswordRef
;
171 @typedef SecKeychainAttributeInfo
172 @abstract Represents an attribute.
173 @field count The number of tag-format pairs in the respective arrays.
174 @field tag A pointer to the first attribute tag in the array.
175 @field format A pointer to the first CSSM_DB_ATTRIBUTE_FORMAT in the array.
176 @discussion Each tag and format item form a pair.
178 struct SecKeychainAttributeInfo
184 typedef struct SecKeychainAttributeInfo SecKeychainAttributeInfo
;
187 @function SecCopyErrorMessageString
188 @abstract Returns a string describing the specified error result code.
189 @param status An error result code of type OSStatus or CSSM_RETURN, as returned by a Security or CSSM function.
190 @reserved Reserved for future use. Your code should pass NULL in this parameter.
191 @result A reference to an error string, or NULL if no error string is available for the specified result code. Your code must release this reference by calling the CFRelease function.
194 CFStringRef
SecCopyErrorMessageString(OSStatus status
, void * __nullable reserved
)
195 __OSX_AVAILABLE_STARTING(__MAC_10_3
, __IPHONE_NA
);
197 @enum Security Error Codes
198 @abstract Result codes returned from Security framework functions.
199 @constant errSecSuccess No error.
200 @constant errSecUnimplemented Function or operation not implemented.
201 @constant errSecDskFull Disk Full error.
202 @constant errSecIO I/O error.
203 @constant errSecParam One or more parameters passed to a function were not valid.
204 @constant errSecWrPerm Write permissions error.
205 @constant errSecAllocate Failed to allocate memory.
206 @constant errSecUserCanceled User canceled the operation.
207 @constant errSecBadReq Bad parameter or invalid state for operation.
208 @constant errSecInternalComponent
209 @constant errSecCoreFoundationUnknown
210 @constant errSecNotAvailable No keychain is available.
211 @constant errSecReadOnly Read only error.
212 @constant errSecAuthFailed Authorization/Authentication failed.
213 @constant errSecNoSuchKeychain The keychain does not exist.
214 @constant errSecInvalidKeychain The keychain is not valid.
215 @constant errSecDuplicateKeychain A keychain with the same name already exists.
216 @constant errSecDuplicateCallback The specified callback is already installed.
217 @constant errSecInvalidCallback The specified callback is not valid.
218 @constant errSecDuplicateItem The item already exists.
219 @constant errSecItemNotFound The item cannot be found.
220 @constant errSecBufferTooSmall The buffer is too small.
221 @constant errSecDataTooLarge The data is too large.
222 @constant errSecNoSuchAttr The attribute does not exist.
223 @constant errSecInvalidItemRef The item reference is invalid.
224 @constant errSecInvalidSearchRef The search reference is invalid.
225 @constant errSecNoSuchClass The keychain item class does not exist.
226 @constant errSecNoDefaultKeychain A default keychain does not exist.
227 @constant errSecInteractionNotAllowed User interaction is not allowed.
228 @constant errSecReadOnlyAttr The attribute is read only.
229 @constant errSecWrongSecVersion The version is incorrect.
230 @constant errSecKeySizeNotAllowed The key size is not allowed.
231 @constant errSecNoStorageModule There is no storage module available.
232 @constant errSecNoCertificateModule There is no certificate module available.
233 @constant errSecNoPolicyModule There is no policy module available.
234 @constant errSecInteractionRequired User interaction is required.
235 @constant errSecDataNotAvailable The data is not available.
236 @constant errSecDataNotModifiable The data is not modifiable.
237 @constant errSecCreateChainFailed The attempt to create a certificate chain failed.
238 @constant errSecACLNotSimple The access control list is not in standard simple form.
239 @constant errSecPolicyNotFound The policy specified cannot be found.
240 @constant errSecInvalidTrustSetting The specified trust setting is invalid.
241 @constant errSecNoAccessForItem The specified item has no access control.
242 @constant errSecInvalidOwnerEdit Invalid attempt to change the owner of this item.
243 @constant errSecTrustNotAvailable No trust results are available.
244 @constant errSecUnsupportedFormat Import/Export format unsupported.
245 @constant errSecUnknownFormat Unknown format in import.
246 @constant errSecKeyIsSensitive Key material must be wrapped for export.
247 @constant errSecMultiplePrivKeys An attempt was made to import multiple private keys.
248 @constant errSecPassphraseRequired Passphrase is required for import/export.
249 @constant errSecInvalidPasswordRef The password reference was invalid.
250 @constant errSecInvalidTrustSettings The Trust Settings Record was corrupted.
251 @constant errSecNoTrustSettings No Trust Settings were found.
252 @constant errSecPkcs12VerifyFailure MAC verification failed during PKCS12 Import.
253 @constant errSecDecode Unable to decode the provided data.
255 @discussion The assigned error space is discontinuous: e.g. -25240..-25279, -25290..-25329, -68608..-67585, and so on.
259 Note: the comments that appear after these errors are used to create SecErrorMessages.strings.
260 The comments must not be multi-line, and should be in a form meaningful to an end user. If
261 a different or additional comment is needed, it can be put in the header doc format, or on a
262 line that does not start with errZZZ.
267 errSecSuccess
= 0, /* No error. */
268 errSecUnimplemented
= -4, /* Function or operation not implemented. */
270 errSecIO
= -36, /*I/O error (bummers)*/
272 errSecParam
= -50, /* One or more parameters passed to a function were not valid. */
273 errSecWrPerm
= -61, /* write permissions error*/
274 errSecAllocate
= -108, /* Failed to allocate memory. */
275 errSecUserCanceled
= -128, /* User canceled the operation. */
276 errSecBadReq
= -909, /* Bad parameter or invalid state for operation. */
278 errSecInternalComponent
= -2070,
279 errSecCoreFoundationUnknown
= -4960,
281 errSecNotAvailable
= -25291, /* No keychain is available. You may need to restart your computer. */
282 errSecReadOnly
= -25292, /* This keychain cannot be modified. */
283 errSecAuthFailed
= -25293, /* The user name or passphrase you entered is not correct. */
284 errSecNoSuchKeychain
= -25294, /* The specified keychain could not be found. */
285 errSecInvalidKeychain
= -25295, /* The specified keychain is not a valid keychain file. */
286 errSecDuplicateKeychain
= -25296, /* A keychain with the same name already exists. */
287 errSecDuplicateCallback
= -25297, /* The specified callback function is already installed. */
288 errSecInvalidCallback
= -25298, /* The specified callback function is not valid. */
289 errSecDuplicateItem
= -25299, /* The specified item already exists in the keychain. */
290 errSecItemNotFound
= -25300, /* The specified item could not be found in the keychain. */
291 errSecBufferTooSmall
= -25301, /* There is not enough memory available to use the specified item. */
292 errSecDataTooLarge
= -25302, /* This item contains information which is too large or in a format that cannot be displayed. */
293 errSecNoSuchAttr
= -25303, /* The specified attribute does not exist. */
294 errSecInvalidItemRef
= -25304, /* The specified item is no longer valid. It may have been deleted from the keychain. */
295 errSecInvalidSearchRef
= -25305, /* Unable to search the current keychain. */
296 errSecNoSuchClass
= -25306, /* The specified item does not appear to be a valid keychain item. */
297 errSecNoDefaultKeychain
= -25307, /* A default keychain could not be found. */
298 errSecInteractionNotAllowed
= -25308, /* User interaction is not allowed. */
299 errSecReadOnlyAttr
= -25309, /* The specified attribute could not be modified. */
300 errSecWrongSecVersion
= -25310, /* This keychain was created by a different version of the system software and cannot be opened. */
301 errSecKeySizeNotAllowed
= -25311, /* This item specifies a key size which is too large. */
302 errSecNoStorageModule
= -25312, /* A required component (data storage module) could not be loaded. You may need to restart your computer. */
303 errSecNoCertificateModule
= -25313, /* A required component (certificate module) could not be loaded. You may need to restart your computer. */
304 errSecNoPolicyModule
= -25314, /* A required component (policy module) could not be loaded. You may need to restart your computer. */
305 errSecInteractionRequired
= -25315, /* User interaction is required, but is currently not allowed. */
306 errSecDataNotAvailable
= -25316, /* The contents of this item cannot be retrieved. */
307 errSecDataNotModifiable
= -25317, /* The contents of this item cannot be modified. */
308 errSecCreateChainFailed
= -25318, /* One or more certificates required to validate this certificate cannot be found. */
309 errSecInvalidPrefsDomain
= -25319, /* The specified preferences domain is not valid. */
310 errSecInDarkWake
= -25320, /* In dark wake, no UI possible */
312 errSecACLNotSimple
= -25240, /* The specified access control list is not in standard (simple) form. */
313 errSecPolicyNotFound
= -25241, /* The specified policy cannot be found. */
314 errSecInvalidTrustSetting
= -25242, /* The specified trust setting is invalid. */
315 errSecNoAccessForItem
= -25243, /* The specified item has no access control. */
316 errSecInvalidOwnerEdit
= -25244, /* Invalid attempt to change the owner of this item. */
317 errSecTrustNotAvailable
= -25245, /* No trust results are available. */
318 errSecUnsupportedFormat
= -25256, /* Import/Export format unsupported. */
319 errSecUnknownFormat
= -25257, /* Unknown format in import. */
320 errSecKeyIsSensitive
= -25258, /* Key material must be wrapped for export. */
321 errSecMultiplePrivKeys
= -25259, /* An attempt was made to import multiple private keys. */
322 errSecPassphraseRequired
= -25260, /* Passphrase is required for import/export. */
323 errSecInvalidPasswordRef
= -25261, /* The password reference was invalid. */
324 errSecInvalidTrustSettings
= -25262, /* The Trust Settings Record was corrupted. */
325 errSecNoTrustSettings
= -25263, /* No Trust Settings were found. */
326 errSecPkcs12VerifyFailure
= -25264, /* MAC verification failed during PKCS12 import (wrong password?) */
327 errSecNotSigner
= -26267, /* A certificate was not signed by its proposed parent. */
329 errSecDecode
= -26275, /* Unable to decode the provided data. */
331 errSecServiceNotAvailable
= -67585, /* The required service is not available. */
332 errSecInsufficientClientID
= -67586, /* The client ID is not correct. */
333 errSecDeviceReset
= -67587, /* A device reset has occurred. */
334 errSecDeviceFailed
= -67588, /* A device failure has occurred. */
335 errSecAppleAddAppACLSubject
= -67589, /* Adding an application ACL subject failed. */
336 errSecApplePublicKeyIncomplete
= -67590, /* The public key is incomplete. */
337 errSecAppleSignatureMismatch
= -67591, /* A signature mismatch has occurred. */
338 errSecAppleInvalidKeyStartDate
= -67592, /* The specified key has an invalid start date. */
339 errSecAppleInvalidKeyEndDate
= -67593, /* The specified key has an invalid end date. */
340 errSecConversionError
= -67594, /* A conversion error has occurred. */
341 errSecAppleSSLv2Rollback
= -67595, /* A SSLv2 rollback error has occurred. */
342 errSecDiskFull
= -34, /* The disk is full. */
343 errSecQuotaExceeded
= -67596, /* The quota was exceeded. */
344 errSecFileTooBig
= -67597, /* The file is too big. */
345 errSecInvalidDatabaseBlob
= -67598, /* The specified database has an invalid blob. */
346 errSecInvalidKeyBlob
= -67599, /* The specified database has an invalid key blob. */
347 errSecIncompatibleDatabaseBlob
= -67600, /* The specified database has an incompatible blob. */
348 errSecIncompatibleKeyBlob
= -67601, /* The specified database has an incompatible key blob. */
349 errSecHostNameMismatch
= -67602, /* A host name mismatch has occurred. */
350 errSecUnknownCriticalExtensionFlag
= -67603, /* There is an unknown critical extension flag. */
351 errSecNoBasicConstraints
= -67604, /* No basic constraints were found. */
352 errSecNoBasicConstraintsCA
= -67605, /* No basic CA constraints were found. */
353 errSecInvalidAuthorityKeyID
= -67606, /* The authority key ID is not valid. */
354 errSecInvalidSubjectKeyID
= -67607, /* The subject key ID is not valid. */
355 errSecInvalidKeyUsageForPolicy
= -67608, /* The key usage is not valid for the specified policy. */
356 errSecInvalidExtendedKeyUsage
= -67609, /* The extended key usage is not valid. */
357 errSecInvalidIDLinkage
= -67610, /* The ID linkage is not valid. */
358 errSecPathLengthConstraintExceeded
= -67611, /* The path length constraint was exceeded. */
359 errSecInvalidRoot
= -67612, /* The root or anchor certificate is not valid. */
360 errSecCRLExpired
= -67613, /* The CRL has expired. */
361 errSecCRLNotValidYet
= -67614, /* The CRL is not yet valid. */
362 errSecCRLNotFound
= -67615, /* The CRL was not found. */
363 errSecCRLServerDown
= -67616, /* The CRL server is down. */
364 errSecCRLBadURI
= -67617, /* The CRL has a bad Uniform Resource Identifier. */
365 errSecUnknownCertExtension
= -67618, /* An unknown certificate extension was encountered. */
366 errSecUnknownCRLExtension
= -67619, /* An unknown CRL extension was encountered. */
367 errSecCRLNotTrusted
= -67620, /* The CRL is not trusted. */
368 errSecCRLPolicyFailed
= -67621, /* The CRL policy failed. */
369 errSecIDPFailure
= -67622, /* The issuing distribution point was not valid. */
370 errSecSMIMEEmailAddressesNotFound
= -67623, /* An email address mismatch was encountered. */
371 errSecSMIMEBadExtendedKeyUsage
= -67624, /* The appropriate extended key usage for SMIME was not found. */
372 errSecSMIMEBadKeyUsage
= -67625, /* The key usage is not compatible with SMIME. */
373 errSecSMIMEKeyUsageNotCritical
= -67626, /* The key usage extension is not marked as critical. */
374 errSecSMIMENoEmailAddress
= -67627, /* No email address was found in the certificate. */
375 errSecSMIMESubjAltNameNotCritical
= -67628, /* The subject alternative name extension is not marked as critical. */
376 errSecSSLBadExtendedKeyUsage
= -67629, /* The appropriate extended key usage for SSL was not found. */
377 errSecOCSPBadResponse
= -67630, /* The OCSP response was incorrect or could not be parsed. */
378 errSecOCSPBadRequest
= -67631, /* The OCSP request was incorrect or could not be parsed. */
379 errSecOCSPUnavailable
= -67632, /* OCSP service is unavailable. */
380 errSecOCSPStatusUnrecognized
= -67633, /* The OCSP server did not recognize this certificate. */
381 errSecEndOfData
= -67634, /* An end-of-data was detected. */
382 errSecIncompleteCertRevocationCheck
= -67635, /* An incomplete certificate revocation check occurred. */
383 errSecNetworkFailure
= -67636, /* A network failure occurred. */
384 errSecOCSPNotTrustedToAnchor
= -67637, /* The OCSP response was not trusted to a root or anchor certificate. */
385 errSecRecordModified
= -67638, /* The record was modified. */
386 errSecOCSPSignatureError
= -67639, /* The OCSP response had an invalid signature. */
387 errSecOCSPNoSigner
= -67640, /* The OCSP response had no signer. */
388 errSecOCSPResponderMalformedReq
= -67641, /* The OCSP responder was given a malformed request. */
389 errSecOCSPResponderInternalError
= -67642, /* The OCSP responder encountered an internal error. */
390 errSecOCSPResponderTryLater
= -67643, /* The OCSP responder is busy, try again later. */
391 errSecOCSPResponderSignatureRequired
= -67644, /* The OCSP responder requires a signature. */
392 errSecOCSPResponderUnauthorized
= -67645, /* The OCSP responder rejected this request as unauthorized. */
393 errSecOCSPResponseNonceMismatch
= -67646, /* The OCSP response nonce did not match the request. */
394 errSecCodeSigningBadCertChainLength
= -67647, /* Code signing encountered an incorrect certificate chain length. */
395 errSecCodeSigningNoBasicConstraints
= -67648, /* Code signing found no basic constraints. */
396 errSecCodeSigningBadPathLengthConstraint
= -67649, /* Code signing encountered an incorrect path length constraint. */
397 errSecCodeSigningNoExtendedKeyUsage
= -67650, /* Code signing found no extended key usage. */
398 errSecCodeSigningDevelopment
= -67651, /* Code signing indicated use of a development-only certificate. */
399 errSecResourceSignBadCertChainLength
= -67652, /* Resource signing has encountered an incorrect certificate chain length. */
400 errSecResourceSignBadExtKeyUsage
= -67653, /* Resource signing has encountered an error in the extended key usage. */
401 errSecTrustSettingDeny
= -67654, /* The trust setting for this policy was set to Deny. */
402 errSecInvalidSubjectName
= -67655, /* An invalid certificate subject name was encountered. */
403 errSecUnknownQualifiedCertStatement
= -67656, /* An unknown qualified certificate statement was encountered. */
404 errSecMobileMeRequestQueued
= -67657, /* The MobileMe request will be sent during the next connection. */
405 errSecMobileMeRequestRedirected
= -67658, /* The MobileMe request was redirected. */
406 errSecMobileMeServerError
= -67659, /* A MobileMe server error occurred. */
407 errSecMobileMeServerNotAvailable
= -67660, /* The MobileMe server is not available. */
408 errSecMobileMeServerAlreadyExists
= -67661, /* The MobileMe server reported that the item already exists. */
409 errSecMobileMeServerServiceErr
= -67662, /* A MobileMe service error has occurred. */
410 errSecMobileMeRequestAlreadyPending
= -67663, /* A MobileMe request is already pending. */
411 errSecMobileMeNoRequestPending
= -67664, /* MobileMe has no request pending. */
412 errSecMobileMeCSRVerifyFailure
= -67665, /* A MobileMe CSR verification failure has occurred. */
413 errSecMobileMeFailedConsistencyCheck
= -67666, /* MobileMe has found a failed consistency check. */
414 errSecNotInitialized
= -67667, /* A function was called without initializing CSSM. */
415 errSecInvalidHandleUsage
= -67668, /* The CSSM handle does not match with the service type. */
416 errSecPVCReferentNotFound
= -67669, /* A reference to the calling module was not found in the list of authorized callers. */
417 errSecFunctionIntegrityFail
= -67670, /* A function address was not within the verified module. */
418 errSecInternalError
= -67671, /* An internal error has occurred. */
419 errSecMemoryError
= -67672, /* A memory error has occurred. */
420 errSecInvalidData
= -67673, /* Invalid data was encountered. */
421 errSecMDSError
= -67674, /* A Module Directory Service error has occurred. */
422 errSecInvalidPointer
= -67675, /* An invalid pointer was encountered. */
423 errSecSelfCheckFailed
= -67676, /* Self-check has failed. */
424 errSecFunctionFailed
= -67677, /* A function has failed. */
425 errSecModuleManifestVerifyFailed
= -67678, /* A module manifest verification failure has occurred. */
426 errSecInvalidGUID
= -67679, /* An invalid GUID was encountered. */
427 errSecInvalidHandle
= -67680, /* An invalid handle was encountered. */
428 errSecInvalidDBList
= -67681, /* An invalid DB list was encountered. */
429 errSecInvalidPassthroughID
= -67682, /* An invalid passthrough ID was encountered. */
430 errSecInvalidNetworkAddress
= -67683, /* An invalid network address was encountered. */
431 errSecCRLAlreadySigned
= -67684, /* The certificate revocation list is already signed. */
432 errSecInvalidNumberOfFields
= -67685, /* An invalid number of fields were encountered. */
433 errSecVerificationFailure
= -67686, /* A verification failure occurred. */
434 errSecUnknownTag
= -67687, /* An unknown tag was encountered. */
435 errSecInvalidSignature
= -67688, /* An invalid signature was encountered. */
436 errSecInvalidName
= -67689, /* An invalid name was encountered. */
437 errSecInvalidCertificateRef
= -67690, /* An invalid certificate reference was encountered. */
438 errSecInvalidCertificateGroup
= -67691, /* An invalid certificate group was encountered. */
439 errSecTagNotFound
= -67692, /* The specified tag was not found. */
440 errSecInvalidQuery
= -67693, /* The specified query was not valid. */
441 errSecInvalidValue
= -67694, /* An invalid value was detected. */
442 errSecCallbackFailed
= -67695, /* A callback has failed. */
443 errSecACLDeleteFailed
= -67696, /* An ACL delete operation has failed. */
444 errSecACLReplaceFailed
= -67697, /* An ACL replace operation has failed. */
445 errSecACLAddFailed
= -67698, /* An ACL add operation has failed. */
446 errSecACLChangeFailed
= -67699, /* An ACL change operation has failed. */
447 errSecInvalidAccessCredentials
= -67700, /* Invalid access credentials were encountered. */
448 errSecInvalidRecord
= -67701, /* An invalid record was encountered. */
449 errSecInvalidACL
= -67702, /* An invalid ACL was encountered. */
450 errSecInvalidSampleValue
= -67703, /* An invalid sample value was encountered. */
451 errSecIncompatibleVersion
= -67704, /* An incompatible version was encountered. */
452 errSecPrivilegeNotGranted
= -67705, /* The privilege was not granted. */
453 errSecInvalidScope
= -67706, /* An invalid scope was encountered. */
454 errSecPVCAlreadyConfigured
= -67707, /* The PVC is already configured. */
455 errSecInvalidPVC
= -67708, /* An invalid PVC was encountered. */
456 errSecEMMLoadFailed
= -67709, /* The EMM load has failed. */
457 errSecEMMUnloadFailed
= -67710, /* The EMM unload has failed. */
458 errSecAddinLoadFailed
= -67711, /* The add-in load operation has failed. */
459 errSecInvalidKeyRef
= -67712, /* An invalid key was encountered. */
460 errSecInvalidKeyHierarchy
= -67713, /* An invalid key hierarchy was encountered. */
461 errSecAddinUnloadFailed
= -67714, /* The add-in unload operation has failed. */
462 errSecLibraryReferenceNotFound
= -67715, /* A library reference was not found. */
463 errSecInvalidAddinFunctionTable
= -67716, /* An invalid add-in function table was encountered. */
464 errSecInvalidServiceMask
= -67717, /* An invalid service mask was encountered. */
465 errSecModuleNotLoaded
= -67718, /* A module was not loaded. */
466 errSecInvalidSubServiceID
= -67719, /* An invalid subservice ID was encountered. */
467 errSecAttributeNotInContext
= -67720, /* An attribute was not in the context. */
468 errSecModuleManagerInitializeFailed
= -67721, /* A module failed to initialize. */
469 errSecModuleManagerNotFound
= -67722, /* A module was not found. */
470 errSecEventNotificationCallbackNotFound
= -67723, /* An event notification callback was not found. */
471 errSecInputLengthError
= -67724, /* An input length error was encountered. */
472 errSecOutputLengthError
= -67725, /* An output length error was encountered. */
473 errSecPrivilegeNotSupported
= -67726, /* The privilege is not supported. */
474 errSecDeviceError
= -67727, /* A device error was encountered. */
475 errSecAttachHandleBusy
= -67728, /* The CSP handle was busy. */
476 errSecNotLoggedIn
= -67729, /* You are not logged in. */
477 errSecAlgorithmMismatch
= -67730, /* An algorithm mismatch was encountered. */
478 errSecKeyUsageIncorrect
= -67731, /* The key usage is incorrect. */
479 errSecKeyBlobTypeIncorrect
= -67732, /* The key blob type is incorrect. */
480 errSecKeyHeaderInconsistent
= -67733, /* The key header is inconsistent. */
481 errSecUnsupportedKeyFormat
= -67734, /* The key header format is not supported. */
482 errSecUnsupportedKeySize
= -67735, /* The key size is not supported. */
483 errSecInvalidKeyUsageMask
= -67736, /* The key usage mask is not valid. */
484 errSecUnsupportedKeyUsageMask
= -67737, /* The key usage mask is not supported. */
485 errSecInvalidKeyAttributeMask
= -67738, /* The key attribute mask is not valid. */
486 errSecUnsupportedKeyAttributeMask
= -67739, /* The key attribute mask is not supported. */
487 errSecInvalidKeyLabel
= -67740, /* The key label is not valid. */
488 errSecUnsupportedKeyLabel
= -67741, /* The key label is not supported. */
489 errSecInvalidKeyFormat
= -67742, /* The key format is not valid. */
490 errSecUnsupportedVectorOfBuffers
= -67743, /* The vector of buffers is not supported. */
491 errSecInvalidInputVector
= -67744, /* The input vector is not valid. */
492 errSecInvalidOutputVector
= -67745, /* The output vector is not valid. */
493 errSecInvalidContext
= -67746, /* An invalid context was encountered. */
494 errSecInvalidAlgorithm
= -67747, /* An invalid algorithm was encountered. */
495 errSecInvalidAttributeKey
= -67748, /* A key attribute was not valid. */
496 errSecMissingAttributeKey
= -67749, /* A key attribute was missing. */
497 errSecInvalidAttributeInitVector
= -67750, /* An init vector attribute was not valid. */
498 errSecMissingAttributeInitVector
= -67751, /* An init vector attribute was missing. */
499 errSecInvalidAttributeSalt
= -67752, /* A salt attribute was not valid. */
500 errSecMissingAttributeSalt
= -67753, /* A salt attribute was missing. */
501 errSecInvalidAttributePadding
= -67754, /* A padding attribute was not valid. */
502 errSecMissingAttributePadding
= -67755, /* A padding attribute was missing. */
503 errSecInvalidAttributeRandom
= -67756, /* A random number attribute was not valid. */
504 errSecMissingAttributeRandom
= -67757, /* A random number attribute was missing. */
505 errSecInvalidAttributeSeed
= -67758, /* A seed attribute was not valid. */
506 errSecMissingAttributeSeed
= -67759, /* A seed attribute was missing. */
507 errSecInvalidAttributePassphrase
= -67760, /* A passphrase attribute was not valid. */
508 errSecMissingAttributePassphrase
= -67761, /* A passphrase attribute was missing. */
509 errSecInvalidAttributeKeyLength
= -67762, /* A key length attribute was not valid. */
510 errSecMissingAttributeKeyLength
= -67763, /* A key length attribute was missing. */
511 errSecInvalidAttributeBlockSize
= -67764, /* A block size attribute was not valid. */
512 errSecMissingAttributeBlockSize
= -67765, /* A block size attribute was missing. */
513 errSecInvalidAttributeOutputSize
= -67766, /* An output size attribute was not valid. */
514 errSecMissingAttributeOutputSize
= -67767, /* An output size attribute was missing. */
515 errSecInvalidAttributeRounds
= -67768, /* The number of rounds attribute was not valid. */
516 errSecMissingAttributeRounds
= -67769, /* The number of rounds attribute was missing. */
517 errSecInvalidAlgorithmParms
= -67770, /* An algorithm parameters attribute was not valid. */
518 errSecMissingAlgorithmParms
= -67771, /* An algorithm parameters attribute was missing. */
519 errSecInvalidAttributeLabel
= -67772, /* A label attribute was not valid. */
520 errSecMissingAttributeLabel
= -67773, /* A label attribute was missing. */
521 errSecInvalidAttributeKeyType
= -67774, /* A key type attribute was not valid. */
522 errSecMissingAttributeKeyType
= -67775, /* A key type attribute was missing. */
523 errSecInvalidAttributeMode
= -67776, /* A mode attribute was not valid. */
524 errSecMissingAttributeMode
= -67777, /* A mode attribute was missing. */
525 errSecInvalidAttributeEffectiveBits
= -67778, /* An effective bits attribute was not valid. */
526 errSecMissingAttributeEffectiveBits
= -67779, /* An effective bits attribute was missing. */
527 errSecInvalidAttributeStartDate
= -67780, /* A start date attribute was not valid. */
528 errSecMissingAttributeStartDate
= -67781, /* A start date attribute was missing. */
529 errSecInvalidAttributeEndDate
= -67782, /* An end date attribute was not valid. */
530 errSecMissingAttributeEndDate
= -67783, /* An end date attribute was missing. */
531 errSecInvalidAttributeVersion
= -67784, /* A version attribute was not valid. */
532 errSecMissingAttributeVersion
= -67785, /* A version attribute was missing. */
533 errSecInvalidAttributePrime
= -67786, /* A prime attribute was not valid. */
534 errSecMissingAttributePrime
= -67787, /* A prime attribute was missing. */
535 errSecInvalidAttributeBase
= -67788, /* A base attribute was not valid. */
536 errSecMissingAttributeBase
= -67789, /* A base attribute was missing. */
537 errSecInvalidAttributeSubprime
= -67790, /* A subprime attribute was not valid. */
538 errSecMissingAttributeSubprime
= -67791, /* A subprime attribute was missing. */
539 errSecInvalidAttributeIterationCount
= -67792, /* An iteration count attribute was not valid. */
540 errSecMissingAttributeIterationCount
= -67793, /* An iteration count attribute was missing. */
541 errSecInvalidAttributeDLDBHandle
= -67794, /* A database handle attribute was not valid. */
542 errSecMissingAttributeDLDBHandle
= -67795, /* A database handle attribute was missing. */
543 errSecInvalidAttributeAccessCredentials
= -67796, /* An access credentials attribute was not valid. */
544 errSecMissingAttributeAccessCredentials
= -67797, /* An access credentials attribute was missing. */
545 errSecInvalidAttributePublicKeyFormat
= -67798, /* A public key format attribute was not valid. */
546 errSecMissingAttributePublicKeyFormat
= -67799, /* A public key format attribute was missing. */
547 errSecInvalidAttributePrivateKeyFormat
= -67800, /* A private key format attribute was not valid. */
548 errSecMissingAttributePrivateKeyFormat
= -67801, /* A private key format attribute was missing. */
549 errSecInvalidAttributeSymmetricKeyFormat
= -67802, /* A symmetric key format attribute was not valid. */
550 errSecMissingAttributeSymmetricKeyFormat
= -67803, /* A symmetric key format attribute was missing. */
551 errSecInvalidAttributeWrappedKeyFormat
= -67804, /* A wrapped key format attribute was not valid. */
552 errSecMissingAttributeWrappedKeyFormat
= -67805, /* A wrapped key format attribute was missing. */
553 errSecStagedOperationInProgress
= -67806, /* A staged operation is in progress. */
554 errSecStagedOperationNotStarted
= -67807, /* A staged operation was not started. */
555 errSecVerifyFailed
= -67808, /* A cryptographic verification failure has occurred. */
556 errSecQuerySizeUnknown
= -67809, /* The query size is unknown. */
557 errSecBlockSizeMismatch
= -67810, /* A block size mismatch occurred. */
558 errSecPublicKeyInconsistent
= -67811, /* The public key was inconsistent. */
559 errSecDeviceVerifyFailed
= -67812, /* A device verification failure has occurred. */
560 errSecInvalidLoginName
= -67813, /* An invalid login name was detected. */
561 errSecAlreadyLoggedIn
= -67814, /* The user is already logged in. */
562 errSecInvalidDigestAlgorithm
= -67815, /* An invalid digest algorithm was detected. */
563 errSecInvalidCRLGroup
= -67816, /* An invalid CRL group was detected. */
564 errSecCertificateCannotOperate
= -67817, /* The certificate cannot operate. */
565 errSecCertificateExpired
= -67818, /* An expired certificate was detected. */
566 errSecCertificateNotValidYet
= -67819, /* The certificate is not yet valid. */
567 errSecCertificateRevoked
= -67820, /* The certificate was revoked. */
568 errSecCertificateSuspended
= -67821, /* The certificate was suspended. */
569 errSecInsufficientCredentials
= -67822, /* Insufficient credentials were detected. */
570 errSecInvalidAction
= -67823, /* The action was not valid. */
571 errSecInvalidAuthority
= -67824, /* The authority was not valid. */
572 errSecVerifyActionFailed
= -67825, /* A verify action has failed. */
573 errSecInvalidCertAuthority
= -67826, /* The certificate authority was not valid. */
574 errSecInvaldCRLAuthority
= -67827, /* The CRL authority was not valid. */
575 errSecInvalidCRLEncoding
= -67828, /* The CRL encoding was not valid. */
576 errSecInvalidCRLType
= -67829, /* The CRL type was not valid. */
577 errSecInvalidCRL
= -67830, /* The CRL was not valid. */
578 errSecInvalidFormType
= -67831, /* The form type was not valid. */
579 errSecInvalidID
= -67832, /* The ID was not valid. */
580 errSecInvalidIdentifier
= -67833, /* The identifier was not valid. */
581 errSecInvalidIndex
= -67834, /* The index was not valid. */
582 errSecInvalidPolicyIdentifiers
= -67835, /* The policy identifiers are not valid. */
583 errSecInvalidTimeString
= -67836, /* The time specified was not valid. */
584 errSecInvalidReason
= -67837, /* The trust policy reason was not valid. */
585 errSecInvalidRequestInputs
= -67838, /* The request inputs are not valid. */
586 errSecInvalidResponseVector
= -67839, /* The response vector was not valid. */
587 errSecInvalidStopOnPolicy
= -67840, /* The stop-on policy was not valid. */
588 errSecInvalidTuple
= -67841, /* The tuple was not valid. */
589 errSecMultipleValuesUnsupported
= -67842, /* Multiple values are not supported. */
590 errSecNotTrusted
= -67843, /* The trust policy was not trusted. */
591 errSecNoDefaultAuthority
= -67844, /* No default authority was detected. */
592 errSecRejectedForm
= -67845, /* The trust policy had a rejected form. */
593 errSecRequestLost
= -67846, /* The request was lost. */
594 errSecRequestRejected
= -67847, /* The request was rejected. */
595 errSecUnsupportedAddressType
= -67848, /* The address type is not supported. */
596 errSecUnsupportedService
= -67849, /* The service is not supported. */
597 errSecInvalidTupleGroup
= -67850, /* The tuple group was not valid. */
598 errSecInvalidBaseACLs
= -67851, /* The base ACLs are not valid. */
599 errSecInvalidTupleCredendtials
= -67852, /* The tuple credentials are not valid. */
600 errSecInvalidEncoding
= -67853, /* The encoding was not valid. */
601 errSecInvalidValidityPeriod
= -67854, /* The validity period was not valid. */
602 errSecInvalidRequestor
= -67855, /* The requestor was not valid. */
603 errSecRequestDescriptor
= -67856, /* The request descriptor was not valid. */
604 errSecInvalidBundleInfo
= -67857, /* The bundle information was not valid. */
605 errSecInvalidCRLIndex
= -67858, /* The CRL index was not valid. */
606 errSecNoFieldValues
= -67859, /* No field values were detected. */
607 errSecUnsupportedFieldFormat
= -67860, /* The field format is not supported. */
608 errSecUnsupportedIndexInfo
= -67861, /* The index information is not supported. */
609 errSecUnsupportedLocality
= -67862, /* The locality is not supported. */
610 errSecUnsupportedNumAttributes
= -67863, /* The number of attributes is not supported. */
611 errSecUnsupportedNumIndexes
= -67864, /* The number of indexes is not supported. */
612 errSecUnsupportedNumRecordTypes
= -67865, /* The number of record types is not supported. */
613 errSecFieldSpecifiedMultiple
= -67866, /* Too many fields were specified. */
614 errSecIncompatibleFieldFormat
= -67867, /* The field format was incompatible. */
615 errSecInvalidParsingModule
= -67868, /* The parsing module was not valid. */
616 errSecDatabaseLocked
= -67869, /* The database is locked. */
617 errSecDatastoreIsOpen
= -67870, /* The data store is open. */
618 errSecMissingValue
= -67871, /* A missing value was detected. */
619 errSecUnsupportedQueryLimits
= -67872, /* The query limits are not supported. */
620 errSecUnsupportedNumSelectionPreds
= -67873, /* The number of selection predicates is not supported. */
621 errSecUnsupportedOperator
= -67874, /* The operator is not supported. */
622 errSecInvalidDBLocation
= -67875, /* The database location is not valid. */
623 errSecInvalidAccessRequest
= -67876, /* The access request is not valid. */
624 errSecInvalidIndexInfo
= -67877, /* The index information is not valid. */
625 errSecInvalidNewOwner
= -67878, /* The new owner is not valid. */
626 errSecInvalidModifyMode
= -67879, /* The modify mode is not valid. */
627 errSecMissingRequiredExtension
= -67880, /* A required certificate extension is missing. */
628 errSecExtendedKeyUsageNotCritical
= -67881, /* The extended key usage extension was not marked critical. */
629 errSecTimestampMissing
= -67882, /* A timestamp was expected but was not found. */
630 errSecTimestampInvalid
= -67883, /* The timestamp was not valid. */
631 errSecTimestampNotTrusted
= -67884, /* The timestamp was not trusted. */
632 errSecTimestampServiceNotAvailable
= -67885, /* The timestamp service is not available. */
633 errSecTimestampBadAlg
= -67886, /* An unrecognized or unsupported Algorithm Identifier in timestamp. */
634 errSecTimestampBadRequest
= -67887, /* The timestamp transaction is not permitted or supported. */
635 errSecTimestampBadDataFormat
= -67888, /* The timestamp data submitted has the wrong format. */
636 errSecTimestampTimeNotAvailable
= -67889, /* The time source for the Timestamp Authority is not available. */
637 errSecTimestampUnacceptedPolicy
= -67890, /* The requested policy is not supported by the Timestamp Authority. */
638 errSecTimestampUnacceptedExtension
= -67891, /* The requested extension is not supported by the Timestamp Authority. */
639 errSecTimestampAddInfoNotAvailable
= -67892, /* The additional information requested is not available. */
640 errSecTimestampSystemFailure
= -67893, /* The timestamp request cannot be handled due to system failure. */
641 errSecSigningTimeMissing
= -67894, /* A signing time was expected but was not found. */
642 errSecTimestampRejection
= -67895, /* A timestamp transaction was rejected. */
643 errSecTimestampWaiting
= -67896, /* A timestamp transaction is waiting. */
644 errSecTimestampRevocationWarning
= -67897, /* A timestamp authority revocation warning was issued. */
645 errSecTimestampRevocationNotification
= -67898, /* A timestamp authority revocation notification was issued. */
648 CF_IMPLICIT_BRIDGING_DISABLED
649 CF_ASSUME_NONNULL_END
651 #if defined(__cplusplus)
655 #endif /* !_SECURITY_SECBASE_H_ */