我试图使用CryptImportKey函数将PFX导入到Gemalto .NET IDPrime智能购物车中,但我得到了一个"无效类型指定" (2148073482)错误。我怀疑RSACryptoServiceProvider.ExportCspBlob(true)调用以错误的格式返回密钥。我使用了来自http://www.idrix.fr/Root/Samples/PfxImporter.cs的示例代码。注意:我已经设置了AllowPrivateExchangeKeyImport&对于Microsoft Base智能卡加密提供程序,AllowPrivateSignatureKeyImport为0x1,但仍然没有更改。我正在运行Windows Server 2012,但不要认为这是问题所在。
有人可以告诉我这个代码示例有什么问题吗?
答案 0 :(得分:1)
您的问题肯定是由于您的应用程序在64位Windows上运行32位并且未更改位于 Wow6432Node 下的Microsoft Base CSP 32位注册表项这一事实引起的
要解决您的问题,请更改AllowPrivateExchangeKeyImport& AllowPrivateSignatureKeyImport也位于“HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Cryptography \ Defaults \ Provider \ Microsoft Base Smart Card Crypto Provider”下。
我已更新PfxImporter.cs标题中的评论以包含此评论。