我有一個應用程序也可以配置並運行一個守護進程。我試圖給守護進程和應用程序訪問權限的鑰匙串項目。基本代碼:SecTrustedApplicationCreateFromPath太聰明瞭嗎?
SecKeychainItemRef item; // create a generic password item SecTrustedApplicationRef appRef[2]; SecAccessRef ref; SecTrustedApplicationCreateFromPath(NULL, &appRef[0]); SecTrustedApplicationCreateFromPath(DAEMON_PATH, &appRef[1]); CFArrayRef trustList = CFArrayCreate(NULL, (void *)appRef, sizeof(appRef)/sizeof(*appRef), NULL); SecAccessCreate(descriptor, trustList, &ref); SecKeychainItemSetAccess(item, ref);
鑰匙串項創建,但因爲總是有訪問在鑰匙串訪問工具中列出的唯一應用程序是主要的應用。我們稱之爲FOO.app。 DAEMON_PATH指向應用程序包中的守護進程的絕對路徑 - 將其稱爲FOO.daemon
。
如果我手動進入Keychain Access並選擇守護程序,它會被添加到列表中。
關於如何讓SecTrustedApplicationCreateFromPath
兌現完整/絕對路徑的想法?
我目前正面臨類似的問題。我使用了這個解決方案,並將應用程序可執行文件添加到ACL中,但是,我不能在未提示用戶的情況下訪問該對象。你解決了這個問題嗎?我的問題:http://stackoverflow.com/questions/24345870/accessing-os-x-keychain-item-from-trusted-application – 2014-06-23 18:31:41