【问题标题】:C# PInvoke CryptImportKey Fails with "Invalid type specified"C# PInvoke CryptImportKey 因“指定的类型无效”而失败
【发布时间】:2015-03-23 06:25:57
【问题描述】:

我正在尝试使用 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,但不认为这是问题所在。

谁能告诉我这个代码示例有什么问题?

【问题讨论】:

    标签: c# certificate smartcard advapi32 gemalto


    【解决方案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 标头中的评论以包含此评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-27
      • 2021-09-22
      • 2017-03-25
      • 2014-12-31
      • 2021-01-30
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多