我正在为需要证书来调用某些服务的 iPhone 开发一个应用程序,因此我正在向我的钥匙串添加一个证书:
SecCertificateRef cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef) certificadoData);
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:(__bridge id)kSecClassCertificate forKey:(__bridge id)kSecClass];
[dictionary setObject:(__bridge id)(cert) forKey:(__bridge id<NSCopying>)(kSecValueRef)];
OSStatus status = SecItemAdd((__bridge CFDictionaryRef)dictionary, NULL);
当我在此代码之前列出所有 kSecClassIdentity 时,结果为无,在此代码之后,返回的是两个身份和一个证书。当我尝试使用这些身份时,一个工作正常,而另一个工作不正常。为什么 SecItemAdd 为一个 kSecClassCertificate 创建两个 kSecClassIdentity?以及如何识别正确的?