// // Stuff a CFArray-of-SecTrustedApplications into an ACL object // static void setApplications(ACL *acl, CFArrayRef applicationList) { ACL::ApplicationList &appList = acl->applications(); appList.clear(); //@@@ should really use STL iterator overlay on CFArray. By hand... CFIndex count = CFArrayGetCount(applicationList); for (CFIndex n = 0; n < count; n++) appList.push_back(TrustedApplication::required( SecTrustedApplicationRef(CFArrayGetValueAtIndex(applicationList, n)))); }
/*! * Create a new SecAccessRef that is set to the default configuration * of a (newly created) security object. */ OSStatus SecAccessCreate(CFStringRef descriptor, CFArrayRef trustedList, SecAccessRef *accessRef) { BEGIN_SECAPI Required(descriptor); SecPointer<Access> access; if (trustedList) { CFIndex length = CFArrayGetCount(trustedList); ACL::ApplicationList trusted; for (CFIndex n = 0; n < length; n++) trusted.push_back(TrustedApplication::required( SecTrustedApplicationRef(CFArrayGetValueAtIndex(trustedList, n)))); access = new Access(cfString(descriptor), trusted); } else { access = new Access(cfString(descriptor)); } Required(accessRef) = access->handle(); END_SECAPI }