SuperAPI AI 工具集

axiom-keychain-ref

通用与其它

查看项目

更新于 10-15 20:11

技能介绍

用途:为 iOS/macOS 开发者提供 Keychain Services 的 API 速查参考,用于安全存储密码、令牌与密钥。

主要能力:

  • SecItem 函数:SecItemAdd、SecItemCopyMatching、SecItemUpdate、SecItemDelete 的签名与字典参数规则。
  • 条目类别:kSecClassGenericPassword、kSecClassInternetPassword、kSecClassCertificate、kSecClassKey、kSecClassIdentity 及其属性键与类型。
  • 唯一性约束:各类别的主键属性组合,重复添加返回 errSecDuplicateItem (-25299)。
  • 搜索与返回属性:kSecMatchLimit、kSecMatchCaseInsensitive、kSecReturnData/Attributes/Ref/PersistentRef。
  • 可访问性常量:WhenUnlocked、AfterFirstUnlock、ThisDeviceOnly 变体及备份/同步行为。
  • 访问控制:SecAccessControlCreateFlags 标志(.userPresence、.biometryAny、.biometryCurrentSet、.devicePasscode、.privateKeyUsage、.applicationPassword、.watch、.or、.and)与组合方式。
  • LocalAuthentication 集成:用 LAContext 预评估生物识别后传入查询,避免二次提示。

使用方式:以 Swift 字典构造查询,调用对应 SecItem 函数并检查 OSStatus。示例:SecItemAdd(addQuery as CFDictionary, nil)。

限制:kSecAttrAccessible 与 kSecAttrAccessControl 互斥;SecItemAdd 不接受 kSecMatch* 搜索属性;SecItemCopyMatching 不接受 kSecValueData 作为搜索条件;SecItemDelete 默认删除全部匹配项且无确认;kSecClassIdentity 为证书与密钥的虚拟组合,不能直接添加。kSecAttrAccessibleAlways 等已废弃。

适用场景:需要查阅钥匙串 API 细节、设计安全存储或排查重复项与可访问性问题的开发工作。

其他:具体平台版本要求、错误码完整列表及官方文档链接暂未提供。