【问题标题】:Microsoft Key Storage Provider get keysMicrosoft 密钥存储提供程序获取密钥
【发布时间】:2022-07-23 05:13:58
【问题描述】:

我正在尝试获取 Microsoft 密钥存储提供程序中密钥的详细信息。 为此,我使用以下 API 调用打开存储提供程序: NCryptOpenStorageProvider(&prov, MS_KEY_STORAGE_PROVIDER, 0); 然后我在 while 循环中调用 NCryptEnumKeys 以获取密钥详细信息。 但是我只能从 KSP 获得一个密钥。 在循环的第二次迭代中,NCryptEnumKeys 返回 NTE_NO_MORE_ITEMS。 但是我的本地机器存储中至少有 3 个证书,它们将 Microsoft 密钥存储提供程序作为提供程序。 我已经通过 certutil -store my command 确认了这一点。
可能有什么问题?

【问题讨论】:

    标签: c++ cng microsoft-key-storage-provider


    【解决方案1】:

    经过几天的分析和讨论,我终于能够找出根本原因。它与特权有关。如果我以管理员权限运行,我也可以从本地计算机证书存储中提取 ECDSA 证书的密钥。 如果您不打算使用管理员权限,只需使用证书管理器或 mmc 并选择证书,然后按所有任务 > 管理私钥授予权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2022-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      相关资源
      最近更新 更多