使用AllowPlaintextExport标志将C#X509Certificate2添加到X509Store?

时间:2017-10-02 19:48:07

标签: c# .net x509certificate x509certificate2 cng

当我使用CertUtil将证书导入商店时,例如certutil -f -v -user -privatekey -importPFX my mycert.p12,然后在C#中读取它,我发现其导出政策为AllowExport | AllowPlaintextExport

但是,使用X509Store.Add()方法将同一证书导入同一商店,然后将其重新读入时,导出策略仅为AllowExport;将证书导入商店时,我使用X509KeyStorageFlags.Exportable标志,例如:

...
X509Certificate2Collection x509cert2Collection = new X509Certificate2Collection();
x509cert2Collection.Import(myp12bytes, passwd, X509KeyStorageFlags.Exportable);
foreach (X509Certificate2 x509cert2 in x509cert2Collection) {
    X509Store myStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
    myStore.Add(x509cert2);                          
    myStore.Close();
}
...

我的问题是:有没有办法在C#中将X509Certificate2添加到X509Store,以便证书的导出策略包括AllowExportAllowPlaintextExport? X509KeyStorageFlags似乎没有定义AllowPlaintextExport标志;只有CngExportPolicies

仅供参考,我使用.NET Framework 4.6.1作为目标。

感谢。

0 个答案:

没有答案