我需要获取有关私人kSecAttrKeyType
,kSecAttrApplicationLabel
,kSecAttrCanSign
,kSecAttrCanDecrypt
,kSecAttrCanUnwrap
,kSecAttrIsExtractable
但我在SecKeyCopyAttributes
上使用
有没有办法在没有系统密码对话框的情况下获取此公开信息?
我试图从公钥中获取一些公开信息。但我在SecKeyCopyPublicKey
答案 0 :(得分:0)
可以通过kSecReturnAttributes
函数
SecItemCopyMatching
参数进行操作
这是C ++示例,它返回keychain中每个键的属性
CFMutableDictionaryRef matchAttr = CFDictionaryCreateMutable(kCFAllocatorDefault,
0,
&kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
CFDictionaryAddValue(matchAttr, kSecClass, kSecClassKey);
CFDictionaryAddValue(matchAttr, kSecMatchLimit, kSecMatchLimitAll);
CFDictionaryAddValue(matchAttr, kSecReturnAttributes, kCFBooleanTrue);
CFArrayRef result;
OSStatus status = SecItemCopyMatching(matchAttr, (CFTypeRef*)&result);
if (status == kCCSuccess) {
CFIndex arrayCount = CFArrayGetCount(result);
for (CFIndex index = 0; index < arrayCount; index++) {
CFShow(CFArrayGetValueAtIndex(result, index));
}
}