]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_keychain/lib/IdentityCursor.cpp
Security-59754.80.3.tar.gz
[apple/security.git] / OSX / libsecurity_keychain / lib / IdentityCursor.cpp
index e7f24d82279c1ceb667cc0d5b6d7eba77d1399ed..773800c888d1f9da8fa548d17a86964e57da658f 100644 (file)
@@ -1,15 +1,15 @@
 /*
  * Copyright (c) 2002-2008,2011-2012 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@
  *
  * IdentityCursor.cpp -- Working with IdentityCursor
@@ -47,20 +47,22 @@ IdentityCursorPolicyAndID::IdentityCursorPolicyAndID(const StorageManager::Keych
        mPreferredIdentityChecked(false),
        mPreferredIdentity(nil)
 {
-    if (mPolicy)
-        CFRetain(mPolicy);
-
-    if (mIDString)
-        CFRetain(mIDString);
+       if (mPolicy) {
+               CFRetain(mPolicy);
+       }
+       if (mIDString) {
+               CFRetain(mIDString);
+       }
 }
 
-IdentityCursorPolicyAndID::~IdentityCursorPolicyAndID() throw()
+IdentityCursorPolicyAndID::~IdentityCursorPolicyAndID() _NOEXCEPT
 {
-    if (mPolicy)
-        CFRelease(mPolicy);
-
-    if (mIDString)
-        CFRelease(mIDString);
+       if (mPolicy) {
+               CFRelease(mPolicy);
+       }
+       if (mIDString) {
+               CFRelease(mIDString);
+       }
 }
 
 void
@@ -105,7 +107,7 @@ IdentityCursorPolicyAndID::findPreferredIdentity()
        SecPointer<Identity> identity(new Identity(mSearchList /*keychains*/, certificate));
 
        mPreferredIdentity = identity;
-       
+
        if (certItemRef)
                CFRelease(certItemRef);
 }
@@ -221,7 +223,7 @@ IdentityCursorPolicyAndID::next(SecPointer<Identity> &identity)
                        break;
                }
        }   // for(;;)
-       
+
        if ( identityOK )
        {
                identity = currIdentity; // caller will release the identity
@@ -236,7 +238,7 @@ IdentityCursorPolicyAndID::next(SecPointer<Identity> &identity)
 
 IdentityCursor::IdentityCursor(const StorageManager::KeychainList &searchList, CSSM_KEYUSE keyUsage) :
        mSearchList(searchList),
-       mKeyCursor(mSearchList, CSSM_DL_DB_RECORD_PRIVATE_KEY, NULL),
+       mKeyCursor(mSearchList, (SecItemClass) CSSM_DL_DB_RECORD_PRIVATE_KEY, NULL),
        mMutex(Mutex::recursive)
 {
        StLock<Mutex>_(mMutex);
@@ -269,17 +271,17 @@ IdentityCursor::IdentityCursor(const StorageManager::KeychainList &searchList, C
                mKeyCursor->add(CSSM_DB_EQUAL, KeySchema::Unwrap, true);
 }
 
-IdentityCursor::~IdentityCursor() throw()
+IdentityCursor::~IdentityCursor() _NOEXCEPT
 {
 }
 
-CFDataRef
+CFDataRef CF_RETURNS_RETAINED
 IdentityCursor::pubKeyHashForSystemIdentity(CFStringRef domain)
 {
        StLock<Mutex>_(mMutex);
 
     CFDataRef entryValue = nil;
-       auto_ptr<Dictionary> identDict;
+       unique_ptr<Dictionary> identDict;
        Dictionary* d = Dictionary::CreateDictionary("com.apple.security.systemidentities", Dictionary::US_System);
        if (d)
        {
@@ -311,7 +313,7 @@ IdentityCursor::next(SecPointer<Identity> &identity)
                        Item key;
                        if (!mKeyCursor->next(key))
                                return false;
-       
+
                        mCurrentKey = static_cast<KeyItem *>(key.get());
 
                        CssmClient::DbUniqueRecord uniqueId = mCurrentKey->dbUniqueRecord();
@@ -319,8 +321,8 @@ IdentityCursor::next(SecPointer<Identity> &identity)
                        dbAttributes.add(KeySchema::Label);
                        uniqueId->get(&dbAttributes, NULL);
                        const CssmData &keyHash = dbAttributes[0];
-            
-                       mCertificateCursor = KCCursor(mSearchList, CSSM_DL_DB_RECORD_X509_CERTIFICATE, NULL);
+
+                       mCertificateCursor = KCCursor(mSearchList, (SecItemClass) CSSM_DL_DB_RECORD_X509_CERTIFICATE, NULL);
                        mCertificateCursor->add(CSSM_DB_EQUAL, Schema::kX509CertificatePublicKeyHash, keyHash);
 
             // if we have entries for the system identities, exclude their public key hashes in the search
@@ -337,7 +339,7 @@ IdentityCursor::next(SecPointer<Identity> &identity)
                 CFRelease(kerbKDCCertPubKeyHash);
             }
                }
-       
+
                Item cert;
                if (mCertificateCursor->next(cert))
                {