2017-02-20 16 views
0

我想補充一個項目有以下訪問控制kSecUseAuthenticationUISkip如何使用它

SecAccessControlRef sacObject = SecAccessControlCreateWithFlags(kCFAllocatorDefault, 
                  kSecAttrAccessibleAfterFirstUnlock, 
                  /*kecAccessControlTouchIDAny | */kSecAccessControlApplicationPassword, &error); 

因此,它基本上問密碼添加項目到鑰匙串到secItemAdd,這是完美的,但是當我要訪問這個項目我想要跳過用戶界面身份驗證,並希望通過使用kSecUseAuthenticationUISkip手動提供密碼。

回答

0

按照蘋果對kSecUseAuthenticationUISkip不變文檔(https://developer.apple.com/reference/security/ksecuseauthenticationuiskip?language=objc

自動跳過需要用戶認證的任何項目。僅在SecItemCopyMatching函數中使用此值。

所以它不是選擇性地略過認證,而是跳過當你想安全地訪問鑰匙扣一個應用程序提供的密碼,稱SecItemAdd你什麼時候需要驗證的

現在對於你的情況的項目必須使用kSecUseAuthenticationContext鍵設置爲類型爲LACredentialTypeApplicationPasswordLAContext實例,該實例持有您向用戶請求的密碼以及與傳遞給kSecAttrAccessControl密鑰的對象中的kSecAccessControlApplicationPassword相關聯的密碼。

這是一篇文章,它解釋了一個例子,我認爲它適合您的用例很好:http://collinbstuart.github.io/lessons/2015/11/04/keychain_entropy