我创建了一个自签名的.pfx文件,当我将其拖到仿真器上时,将出现导入屏幕,我可以单击并在仿真器钥匙串上使用select * from cert;
,然后看到导入的证书。
当我在代码中加载此证书并尝试添加它时,我从保存操作中返回了Success
,但是在随后尝试访问身份时,它返回了ItemNotFound
,进一步那就是,当我在导入后检查KeyChain时,表中也没有证书。
await certStream.CopyToAsync(ms);
var options = NSDictionary.FromObjectsAndKeys(new[]
{
NSObject.FromObject("CertPassword")
}, new[]
{
SecImportExport.Passphrase
});
var result = SecImportExport.ImportPkcs12(ms.ToArray(), options, out
NSDictionary[] imports);
if (result != SecStatusCode.Success)
throw new Exception("Failed importing certificate identity");
var identity = imports[0][SecImportExport.Identity];
certRecord.SetValueRef(new SecIdentity(identity.Handle));
var identityImportResult = SecKeyChain.Add(certRecord);
var savedIdentity = SecKeyChain.QueryAsRecord(new
SecRecord(SecKind.Identity)
{
Label = "ApplicationIdentityCertificate"
}, out SecStatusCode savedResult);
在阅读过程中,我确保有一个与模拟器关联的权利,并且它具有钥匙串共享权利,因为似乎有轶事证据表明这有时还会影响保存到钥匙串的能力。 / p>
答案 0 :(得分:0)
所以我终于设法解决了这个问题。事实证明,我错过了SecKeyChain类上可用的一个非常简单的方法。
writer = pd.ExcelWriter('output-in-percent.xlsx')
test.to_excel(writer, 'Sheet1')
writer.save()
以上代码段是我需要进行的更改,现在身份已以正确的捆绑包ID存储在钥匙串中,并且我们的应用程序可以加载证书和私钥,无论出于何种原因,都可以通过{{ 1}}方法不适用于身份。