Iphone SecItemAdd创建两个标识

Iphone SecItemAdd创建两个标识,iphone,certificate,identity,keychain,Iphone,Certificate,Identity,Keychain,我正在为IPhone开发一个需要证书才能调用某些服务的应用程序,因此我正在向我的密钥链添加一个证书,这样做: SecCertificateRef cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef) certificadoData); NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; [dictionary setObject:(

我正在为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);
SecCertificateRef cert=SecCertificateCreateWithData(NULL,(uu桥CFDataRef)CertificateAdoData);
NSMutableDictionary*dictionary=[[NSMutableDictionary alloc]init];
[dictionary setObject:(uu桥id)kSecClassCertificate forKey:(uu桥id)kSecClass];
[字典设置对象:(uu桥id)(证书)forKey:(u桥id)(kSecValueRef)];
OSStatus status=SecItemAdd((_桥CFDictionaryRef)字典,NULL);
当我在此代码之前列出所有kSecClassIdentity时,结果为none,在此代码之后,返回的是两个标识和一个证书。
当我尝试使用身份时,一个工作正常,而另一个工作不正常。为什么SecItemAdd为一个kSecClassCertificate创建两个kSecClassIdentity?如何识别正确的身份?

我必须解决这个问题,根据我的研究,问题是其中一个身份包含私钥,另一个包含公钥

因此,当您试图检索身份时,必须添加

value: kSecAttrKeyClassPrivate / kSecAttrKeyClassPublic
key: kSecAttrKeyClass
SecItemCopyMatching
中用作筛选器的词典,例如:

NSMutableDictionary *filterDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                             (__bridge id)kSecClassIdentity, kSecClass,
                                             kSecMatchLimitAll,              kSecMatchLimit,
                                             kCFBooleanTrue,                 kSecReturnRef,
                                             kSecAttrKeyClassPrivate,        kSecAttrKeyClass,
                                             nil];

这一定是一个密钥链错误,因为每个证书都有多个标识,或者没有与私钥关联的标识都没有意义。你有没有向苹果公司提交错误报告?