确定,是证书。存储系统或实体,只有 HCERTSTORE 句柄

determine, is cert. store system or physical, having HCERTSTORE handle only

让我们假设,我们有一个打开的证书存储的有效 HCERTSTORE 句柄。我们如何确定 - 是实体店还是系统店?

限制 1 - 我们应该只使用 CryptoAPI (C++)。

限制 2 - 我们已经成功地忘记了 CertOpenStore() 调用中使用了哪种存储。

我没有看到使用 CryptoAPI 解决此问题的方法,并且由于约束 2 是人为的,所以不要认为它旨在解决此问题。可关闭的句柄不能在进程之间传递,因此除非故意 "forget" 否则无法知道它是什么:知识就在那里,在获得句柄的代码中。

通过查看 CertOpenStore - MSDN, I see CertGetStoreProperty() 左窗格中的函数列表,但只有一个预定义的 属性、CERT_STORE_LOCALIZED_NAME_PROP_ID,这是不可靠的。