一部のサービスを呼び出すために証明書が必要な 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 をリストすると、結果はなしで、このコードの後には 2 つの ID と 1 つの証明書が返されます。ID を使用しようとしたとき、一方は正しく機能していますが、もう一方は機能していません。SecItemAdd が 1 つの kSecClassCertificate に対して 2 つの kSecClassIdentity を作成するのはなぜですか? そして、どうすれば正しいものを特定できますか?