繁体   English   中英

将 pfx/p12 文件导入智能卡 C#

[英]Importing pfx/p12 file into smartcard c#

有没有办法以编程方式将.p12/pfx文件导入智能卡? 我知道它通过certutil

certutil -user -p "pw" -csp "csp" -importpfx path

我正在使用“Microsoft Base Smart Card Crypto Provider”

通过 certutil 它正在工作,因此我确定它也应该使用 c#(也许是 CRYPTOAPI)......我只是不想使用那种(开始 cmd 添加“导入字符串”):

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;  
startInfo.FileName = "cmd.exe";            
startInfo.Arguments = strCmdText;           
process.StartInfo = startInfo;            
process.Start();

导入pfx!

但我不知道这如何在 c# 中以编程方式工作。 任何帮助将不胜感激。

通过结合使用 X509Certificate2 类(提供 PFX/P12 文件的解析和 P/Invoking CryptoAPI 函数以执行实际导入),您可以使用 C# 将 PFX/P12 文件导入智能卡。

我已经在复制 certutil 导入功能的 C# 控制台程序中实现了这一点。 您可以从http://www.idrix.fr/Root/Samples/PfxImporter.cs获取其源代码。

如果有人感兴趣,我也在 C++ 中实现了这个。 这是来源: http : //www.idrix.fr/Root/Samples/PfxImporter.cpp

最后一点:如智能卡微型驱动程序规范中所述,必须修改两个注册表项以允许使用 MS Base CSP 进行导入操作:

  1. HKLM\\SOFTWARE\\Microsoft\\Cryptography\\Defaults\\Provider\\Microsoft Base Smart Card Crypto Provider\\ AllowPrivateExchangeKeyImport = DWORD:0x01
  2. HKLM\\SOFTWARE\\Microsoft\\Cryptography\\Defaults\\Provider\\Microsoft Base Smart Card Crypto Provider\\ AllowPrivateSignatureKeyImport = DWORD:0x01

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM