Microsoft Key Storage Provider 获取密钥

Microsoft Key Storage Provider get keys

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

提前致谢。

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