Xamarin iOS:无法在iOS钥匙串中保存PKCS12数据

5

使用案例:

该应用程序导入 PKCS 12 文件(包含证书和私钥),并保存以便日后使用。

当前状态:

我已经成功使用 SecImportExport.ImportPkcs12 获取 SecIdentity 和 SecTrust 对象。但是,我无法将 SecIdentity 和 SecTrust 对象分配给 SecRecord。

代码:

SecIdentity identityObject = ...;
SecTrust trustObject = ...;

SecRecord record = new SecRecord(SecKind.Identity);
record.Account = "Identity";
record.ValueData = ?   //HOW TO CONVERT SecIdentity to NSData?

var res = SecKeyChain.Add(record);

可能是重复的问题:将.p12证书存储在钥匙串中以供将来使用 - Krumelur
@Krumelur:这个问题是关于原生iOS应用程序的,而不是Xamarin应用程序。 - kmalmur
1个回答

1
你可以使用SecRecord.SetValueRef (identityObject)来存储密钥(SecKey)、证书(SecCertificate)或身份信息。

是的,这是预期的使用方式。不幸的是,在Xamarin iOS中存在一个错误,导致稍后检索身份时出现问题。这里是一个bugtracker链接: https://bugzilla.xamarin.com/show_bug.cgi?id=24972 - kmalmur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接