为了账号安全,请及时绑定邮箱和手机立即绑定

X509Certificate2.使用 NCRYPT_ALLOW_PLAINTEXT

X509Certificate2.使用 NCRYPT_ALLOW_PLAINTEXT

C#
慕码人8056858 2023-07-23 16:47:16
我有一个 PFX 证书,里面有 CNG 密钥(KSP 提供商信息在 PFX 中指定)。我找不到在 .NET 中导入证书的方法,以允许以纯文本(MS-CAPI 格式)导出私钥。var cert = new X509Certificate2(pfxBytes,password,X509KeyStorageFlags.Exportable);然后我使用此句柄通过调用带有启用标志以允许 CNG 密钥的CryptAcquireCertificatePrivateKey函数来获取私钥上下文。调用成功。当我调用NCryptExportKey时,调用失败并出现 0x8009000b 错误:密钥在指定状态下无效。为了调试这个问题,我调用了NCryptGetProperty函数来获取导出策略,实际上,NCRYPT_ALLOW_EXPORT_FLAG标志已启用,但NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG没有启用。尝试调用NCryptSetProperty函数以在导出策略属性中启用此标志,但调用失败并出现相同的 0x8009000b 错误。问题:如何从文件导入 .NET 中的 pfx 文件而不保留NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAGCNG 密钥的密钥和启用标志?ps 由于某些原因,我仅限于 .NET 4.0/4.5。
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信