让我们假设,我们有一个有效的 HCERTSTORE 已打开证书存储句柄。我们如何确定——开店是实体店还是系统店?
限制 1 - 我们应该只使用 CryptoAPI (C++)。
限制 2 - 我们已经成功忘记了 CertOpenStore() 调用中使用了什么样的商店。
让我们假设,我们有一个有效的 HCERTSTORE 已打开证书存储句柄。我们如何确定——开店是实体店还是系统店?
限制 1 - 我们应该只使用 CryptoAPI (C++)。
限制 2 - 我们已经成功忘记了 CertOpenStore() 调用中使用了什么样的商店。
我没有看到用 CryptoAPI 解决这个问题的方法,并且由于约束 2 是人为的,所以不要认为它是为了解决这个问题而设计的。可关闭的句柄不能在进程之间传递,所以除非故意,否则不能“忘记”它是什么:知识就在那里,在获得句柄的代码中。
通过查看CertOpenStore - MSDN左侧窗格中的函数列表,我看到CertGetStoreProperty()
了 ,但只有一个预定义属性CERT_STORE_LOCALIZED_NAME_PROP_ID
,这是不可靠的。