]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_keychain/lib/SecKeychainItemExtendedAttributes.cpp
Security-58286.260.20.tar.gz
[apple/security.git] / OSX / libsecurity_keychain / lib / SecKeychainItemExtendedAttributes.cpp
index 0f34defea3e362a58d0392bc9ce17ac09a17575e..60c98f3133deb3e814a5599b62195a40c757a860 100644 (file)
  * @APPLE_LICENSE_HEADER_END@
  */
 
+#include <security_utilities/casts.h>
 #include "SecKeychainItemExtendedAttributes.h"
 #include "SecKeychainItemPriv.h"
 #include "ExtendedAttribute.h"
 #include "SecBridge.h"
 #include "StorageManager.h"
 #include "KCCursor.h"
+#include <os/activity.h>
 
 /* I'm not sure we need this */
 #if 0
@@ -122,7 +124,7 @@ static bool lookupExtendedAttr(
        StorageManager::KeychainList kcList;
        kcList.push_back(inItem->keychain());
        
-       KCCursor cursor(kcList, CSSM_DL_DB_RECORD_EXTENDED_ATTRIBUTE, &attrList);
+       KCCursor cursor(kcList, (SecItemClass) CSSM_DL_DB_RECORD_EXTENDED_ATTRIBUTE, &attrList);
        try {
                return cursor->next(foundItem);
        }
@@ -146,6 +148,9 @@ OSStatus SecKeychainItemSetExtendedAttribute(
     //%%% This needs to detect SecCertificateRef items, and when it does, SecKeychainItemDelete must be updated
 
     BEGIN_SECAPI
+    os_activity_t activity = os_activity_create("SecKeychainItemSetExtendedAttribute", OS_ACTIVITY_CURRENT, OS_ACTIVITY_FLAG_IF_NONE_PRESENT);
+    os_activity_scope(activity);
+    os_release(activity);
        
        if((itemRef == NULL) || (attrName == NULL)) {
                return errSecParam;
@@ -163,7 +168,7 @@ OSStatus SecKeychainItemSetExtendedAttribute(
                return errSecSuccess;
        }
 
-       CSSM_DATA attrCValue = {CFDataGetLength(attrValue), (uint8 *)CFDataGetBytePtr(attrValue)};
+       CSSM_DATA attrCValue = {int_cast<CFIndex, CSSM_SIZE>(CFDataGetLength(attrValue)), (uint8 *)CFDataGetBytePtr(attrValue)};
        
        if(haveMatch) {
                /* update existing extended attribute record */
@@ -196,6 +201,9 @@ OSStatus SecKeychainItemCopyExtendedAttribute(
     //%%% This needs to detect SecCertificateRef items
 
     BEGIN_SECAPI
+    os_activity_t activity = os_activity_create("SecKeychainItemCopyExtendedAttribute", OS_ACTIVITY_CURRENT, OS_ACTIVITY_FLAG_IF_NONE_PRESENT);
+    os_activity_scope(activity);
+    os_release(activity);
        
        if((itemRef == NULL) || (attrName == NULL) || (attrValue == NULL)) {
                return errSecParam;
@@ -237,6 +245,9 @@ OSStatus SecKeychainItemCopyAllExtendedAttributes(
     //%%% This needs to detect SecCertificateRef items, and when it does, SecKeychainItemDelete must be updated
 
     BEGIN_SECAPI
+    os_activity_t activity = os_activity_create("SecKeychainItemCopyAllExtendedAttributes", OS_ACTIVITY_CURRENT, OS_ACTIVITY_FLAG_IF_NONE_PRESENT);
+    os_activity_scope(activity);
+    os_release(activity);
        
        if((itemRef == NULL) || (attrNames == NULL)) {
                return errSecParam;
@@ -274,7 +285,7 @@ OSStatus SecKeychainItemCopyAllExtendedAttributes(
        CFMutableArrayRef outValues = NULL;
        OSStatus ourRtn = errSecSuccess;
        
-       KCCursor cursor(kcList, CSSM_DL_DB_RECORD_EXTENDED_ATTRIBUTE, &attrList);
+       KCCursor cursor(kcList, (SecItemClass) CSSM_DL_DB_RECORD_EXTENDED_ATTRIBUTE, &attrList);
        for(;;) {
                bool gotOne = false;
                Item foundItem;