/*
* 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,
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
* Please see the License for the specific language governing rights and
* limitations under the License.
- *
+ *
* @APPLE_LICENSE_HEADER_END@
*/
#include <Security/Security.h>
#include <Security/SecBasePriv.h>
+#include <Security/SecKeychain.h>
#include <CoreFoundation/CoreFoundation.h>
#if defined(__cplusplus)
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);
/* 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);
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 */
/* 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)
}