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