无法将证书/密钥添加到Xamarin iOS密钥链中
我正在尝试使用SecKeyChain将我的证书和私钥添加到iOS密钥链中。我尝试了SecKeyChain.Add和SecKeyChain.AddIdentity,但第一个返回我SecStatusCode参数,另一个抛出System.InvalidOperationException:Param。有人能帮我解决这个问题吗?从Xamarin网站上很难找到这些方法的详细文档无法将证书/密钥添加到Xamarin iOS密钥链中,xamarin,xamarin.ios,keychain,Xamarin,Xamarin.ios,Keychain,我正在尝试使用SecKeyChain将我的证书和私钥添加到iOS密钥链中。我尝试了SecKeyChain.Add和SecKeyChain.AddIdentity,但第一个返回我SecStatusCode参数,另一个抛出System.InvalidOperationException:Param。有人能帮我解决这个问题吗?从Xamarin网站上很难找到这些方法的详细文档 using(NSData crt = NSData.FromFile("client1.p12")) { X509Cer
using(NSData crt = NSData.FromFile("client1.p12"))
{
X509Certificate2 certificate = new X509Certificate2(crt.ToArray(), password);
var identity = SecIdentity.Import(certificate.Export(X509ContentType.Pkcs12, password), password);
var record = new SecRecord(SecKind.Certificate);
record.Label = "client1_crt";
record.SetValueRef(identity.Certificate);
SecStatusCode secStatus = SecKeyChain.Add(record);
SecKeyChain.AddIdentity(identity)
}
我也试过这样做:
using (NSData crt = NSData.FromFile("client1-crt.der")
{
SecStatusCode secStatus = SecKeyChain.Add(new SecRecord(SecKind.Certificate)
{
ApplicationLabel = "client1_crt",
KeySizeInBits = 512,
KeyClass = SecKeyClass.Public,
ValueData = NSData.FromString(crt)
});
}
但secStatus仍显示参数。问题已解决。事实证明,我们需要在authentications.plist文件中启用keychain。详细步骤: