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_ */