C#Xamarin;私钥 - 存储和检索

时间:2018-01-15 07:26:27

标签: xamarin private-key x509certificate2

我在重新启动应用程序后从X509Storage检索私钥时遇到问题。

我正在使用:

我的流程:

1创建存储空间

Storage = new X509Store(StoreName.TrustedPublisher, 
StoreLocation.CurrentUser);
Storage.Open(OpenFlags.ReadWrite);

2使用私钥创建证书

Cert = new X509Certificate2(
    Convert.FromBase64String("...my certificate..."),
    "",
    X509KeyStorageFlags.UserKeySet | 
    X509KeyStorageFlags.PersistKeySet |
    X509KeyStorageFlags.Exportable);
var privateKey = new RSACryptoServiceProvider();
privateKey.FromXmlString("...my private key relevant to certificate...");
privateKey.PersistKeyInCsp = true;
Cert.PrivateKey = privateKey;

3将证书插入存储空间

Storage.Add(Cert);

4验证具有私钥的证书是否存储

var certs = Storage.Certificates;
foreach (var cert in certs)
{
   CertsView.Append("Name: " + cert.Subject + "; Has PK: "+ cert.HasPrivateKey +  "\n");
}

5重新启动应用程序并再次验证

我可以检索已插入的证书。 但是,此时证书没有私钥。

我缺少什么?

0 个答案:

没有答案