上SecPKCS12Import的documentation规定如下:为什么SecPKCS12Import会自动将SecIdentities添加到钥匙串?
[...]然后,您可以使用Keychain服务API(参见Keychain服务 参考)把身份和相关的证书,在 钥匙串。
这意味着在“items”参数(该函数的第三个参数)中返回的项目不应该自动添加到钥匙串中。但是,我发现这些项目在使用该功能时会自动添加到钥匙串中。如果我尝试使用SecItemAdd添加它们,我会得到errSecDuplicateItem。
这是一个错误还是应该这样?为什么会自动添加项目?
下面是一些示例代码:
NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys:@"password", (id)kSecImportExportPassphrase, nil];
CFArrayRef items_ = NULL;
OSStatus ret = SecPKCS12Import((CFDataRef)pkcs12data /* get this from somewhere … */, (CFDictionaryRef)options, &items_);
如果您使用的代码,然后打开钥匙串访问,您将看到证书和私钥已被添加到钥匙串。
Regards, David。
您可能要问了一个新问题,而不是在现有的一个张贴一个答案。 – JAL
编辑删除末尾的问题 – satishmaha