0

我正在尝试使用 CryptImportKey 函数将 PFX 导入 Gemalto .NET IDPrime 智能购物车,但我收到“指定的类型无效”(2148073482) 错误。我怀疑 RSACryptoServiceProvider.ExportCspBlob(true) 调用以错误的格式返回密钥。我正在使用来自http://www.idrix.fr/Root/Samples/PfxImporter.cs的示例代码。注意:我已经将 Microsoft Base Smart Card Crypto Provider 的 AllowPrivateExchangeKeyImport 和 AllowPrivateSignatureKeyImport 设置为 0x1,但仍然没有变化。我正在运行 Windows Server 2012,但不认为这是问题所在。

有人可以告诉我这个代码示例有什么问题吗?

4

1 回答 1

1

您的问题肯定是由于您的应用程序是在 64 位 Windows 上运行的 32 位,并且您没有更改位于Wow6432Node下的 Microsoft Base CSP 32 位注册表项。

要解决您的问题,请在“HKLM\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Defaults\Provider\Microsoft Base Smart Card Crypto Provider”下更改 AllowPrivateExchangeKeyImport 和 AllowPrivateSignatureKeyImport。

我已更新PfxImporter.cs标头中的注释以包含此注释。

于 2015-08-19T10:04:33.393 回答