]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_keychain/lib/SecKeychainPriv.h
Security-59306.61.1.tar.gz
[apple/security.git] / OSX / libsecurity_keychain / lib / SecKeychainPriv.h
index e9650f9695bd8d1cdd4e2c0cd274908baefe12ec..2b035d948da2c61634d57a81387ff956bbfe6aab 100644 (file)
@@ -1,15 +1,15 @@
 /*
  * Copyright (c) 2003-2004,2011-2014 Apple Inc. All Rights Reserved.
- * 
+ *
  * @APPLE_LICENSE_HEADER_START@
- * 
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * compliance with the License. Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this
  * file.
- * 
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
@@ -17,7 +17,7 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
+ *
  * @APPLE_LICENSE_HEADER_END@
  */
 
@@ -26,6 +26,7 @@
 
 #include <Security/Security.h>
 #include <Security/SecBasePriv.h>
+#include <Security/SecKeychain.h>
 #include <CoreFoundation/CoreFoundation.h>
 
 #if defined(__cplusplus)
@@ -48,7 +49,7 @@ OSStatus SecKeychainIsValid(SecKeychainRef keychainRef, Boolean* isValid)
 OSStatus SecKeychainChangePassword(SecKeychainRef keychainRef, UInt32 oldPasswordLength, const void *oldPassword,  UInt32 newPasswordLength, const void *newPassword)
     __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_NA);
 OSStatus SecKeychainOpenWithGuid(const CSSM_GUID *guid, uint32 subserviceId, uint32 subserviceType, const char* dbName, const CSSM_NET_ADDRESS *dbLocation, SecKeychainRef *keychain)
-    __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
+    API_DEPRECATED("CSSM_GUID/CSSM_NET_ADDRESS is deprecated", macos(10.4,10.14)) API_UNAVAILABLE(ios, watchos, tvos, bridgeos, iosmac);
 OSStatus SecKeychainSetBatchMode (SecKeychainRef kcRef, Boolean mode, Boolean rollback)
     __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
 
@@ -65,9 +66,9 @@ OSStatus SecKeychainRemoveFromSearchList(SecKeychainRef keychainRef)
 /* Login keychain support */
 OSStatus SecKeychainLogin(UInt32 nameLength, const void* name, UInt32 passwordLength, const void* password)
     __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_NA);
-OSStatus SecKeychainStash()
+OSStatus SecKeychainStash(void)
     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);
-OSStatus SecKeychainLogout()
+OSStatus SecKeychainLogout(void)
     __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_NA);
 OSStatus SecKeychainCopyLogin(SecKeychainRef *keychainRef)
     __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_NA);
@@ -76,7 +77,7 @@ OSStatus SecKeychainResetLogin(UInt32 passwordLength, const void* password, Bool
 
 OSStatus SecKeychainVerifyKeyStorePassphrase(uint32_t retries)
     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);
-OSStatus SecKeychainChangeKeyStorePassphrase()
+OSStatus SecKeychainChangeKeyStorePassphrase(void)
     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);
 
 /* Keychain synchronization */
@@ -97,32 +98,46 @@ OSStatus SecKeychainCreateWithBlob(const char* fullPathName, CFDataRef dbBlob, S
 
 /* Keychain list manipulation */
 OSStatus SecKeychainAddDBToKeychainList (SecPreferencesDomain domain, const char* dbName, const CSSM_GUID *guid, uint32 subServiceType)
-    __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
+    API_DEPRECATED("CSSM_GUID is deprecated", macos(10.4,10.14)) API_UNAVAILABLE(ios, watchos, tvos, bridgeos, iosmac);
 OSStatus SecKeychainDBIsInKeychainList (SecPreferencesDomain domain, const char* dbName, const CSSM_GUID *guid, uint32 subServiceType)
-    __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
+    API_DEPRECATED("CSSM_GUID is deprecated", macos(10.4,10.14)) API_UNAVAILABLE(ios, watchos, tvos, bridgeos, iosmac);
 OSStatus SecKeychainRemoveDBFromKeychainList (SecPreferencesDomain domain, const char* dbName, const CSSM_GUID *guid, uint32 subServiceType)
-    __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
+    API_DEPRECATED("CSSM_GUID is deprecated", macos(10.4,10.14)) API_UNAVAILABLE(ios, watchos, tvos, bridgeos, iosmac);
 
 /* server operation (keychain inhibit) */
-void SecKeychainSetServerMode()
+void SecKeychainSetServerMode(void)
     __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
 
 /* special calls */
-OSStatus SecKeychainCleanupHandles()
+OSStatus SecKeychainCleanupHandles(void)
     __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
-OSStatus SecKeychainSystemKeychainCheckWouldDeadlock()
+OSStatus SecKeychainSystemKeychainCheckWouldDeadlock(void)
     __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);
 OSStatus SecKeychainStoreUnlockKey(SecKeychainRef userKeychainRef, SecKeychainRef systemKeychainRef, CFStringRef username, CFStringRef password)
     __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);
 
+/* Token login support */
+OSStatus SecKeychainStoreUnlockKeyWithPubKeyHash(CFDataRef pubKeyHash, CFStringRef tokenID, CFDataRef wrapPubKeyHash, SecKeychainRef userKeychain, CFStringRef password)
+    __OSX_AVAILABLE_STARTING(__MAC_10_12, __IPHONE_NA);
+OSStatus SecKeychainEraseUnlockKeyWithPubKeyHash(CFDataRef pubKeyHash)
+    __OSX_AVAILABLE_STARTING(__MAC_10_12, __IPHONE_NA);
+
+/* calls to interact with keychain versions */
 OSStatus SecKeychainGetKeychainVersion(SecKeychainRef keychain, UInt32* version)
     __OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_NA);
 
+OSStatus SecKeychainAttemptMigrationWithMasterKey(SecKeychainRef keychain, UInt32 version, const char* masterKeyFilename)
+    __OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_NA);
+
+/* calls for testing only */
+OSStatus SecKeychainGetUserPromptAttempts(uint32_t* attempts)
+    __OSX_AVAILABLE_STARTING(__MAC_10_12, __IPHONE_NA);
+
 /*!
  @function SecKeychainMDSInstall
  Set up MDS.
  */
-OSStatus SecKeychainMDSInstall();
+OSStatus SecKeychainMDSInstall(void);
 
 #if defined(__cplusplus)
 }