我想通过以下访问控制向 secItemAdd 添加一个项目
SecAccessControlRef sacObject = SecAccessControlCreateWithFlags(kCFAllocatorDefault,
kSecAttrAccessibleAfterFirstUnlock,
/*kecAccessControlTouchIDAny | */kSecAccessControlApplicationPassword, &error);
所以它基本上要求密码将项目添加到钥匙串(keychain),这是完美的,但是当我想访问这个项目时,我想跳过 UI 身份验证,并且我想使用 kSecUseAuthenticationUISkip 手动提供密码。
Best Answer-推荐答案 strong>
根据 Apple 关于 kSecUseAuthenticationUISkip 常量 (https://developer.apple.com/reference/security/ksecuseauthenticationuiskip?language=objc) 的文档
Silently skip any items that require user authentication. Only use this value with the SecItemCopyMatching function.
所以不是选择性地跳过身份验证,而是跳过需要身份验证的项目
现在,当您想使用应用程序提供的密码保护对钥匙串(keychain)的访问时,在调用 SecItemAdd 时,您必须使用 kSecUseAuthenticationContext 键设置为LAContext 类型为 LACredentialTypeApplicationPassword 的实例,其中包含您向用户询问的密码以及您传递给 的对象中的 kSecAccessControlApplicationPassword >kSecAttrAccessControl 键。
这是一篇文章,它通过一个示例对其进行了解释,我认为它非常适合您的用例:http://collinbstuart.github.io/lessons/2015/11/04/keychain_entropy
关于ios - kSecUseAuthenticationUISkip 使用方法,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/42339000/
|