0

我想将与一个标记文件关联的所有加密证书复制到一组其他文件中。

当然,有QueryUsersOnEncryptedFile一个返回 aPENCRYPTION_CERTIFICATE_HASH_LIST的函数,还有AddUsersToEncryptedFile一个接受 a的函数PENCRYPTION_CERTIFICATE_LIST

因此,据我了解,要复制证书,这些哈希需要转换回证书列表。

为了进行这种转变,我一直在搞乱CertFindCertificateInStore. 这在某种程度上起作用了,但不是所有证书,我什至不知道我应该查询哪些证书存储......我确实尝试了一些:CA,,,,,,,(甚至ROOT,这似乎包含过期的证书缓存,因为其中一些已经过期)但它们都没有让我访问我拥有哈希值的所有证书。MYSPCTrustTrustedPeopleAuthRootAddressBook

那么,我怎样才能可靠地将证书哈希映射回证书本身呢? (一些示例代码会很好。)

提前致谢!


作为旁注:

我还想从这些相同的目标文件中删除所有其他证书。为此,有一个可用的函数,称为RemoveUsersFromEncryptedFile,它也需要一个PENCRYPTION_CERTIFICATE_HASH_LIST.

我想这个列表可以通过首先调用QueryUsersOnEncryptedFile每个文件来收集,然后将生成的证书哈希列表传递给RemoveUsersFromEncryptedFile(在同一个文件上)。

但是有一个警告:我不想丢失所有证书,否则任何人都无法访问这些文件!我可以从这个中间哈希列表中安全地将我自己的(以及任何其他允许的)证书哈希清零吗?(鉴于还有一个专用FreeEncryptionCertificateHashList功能。)

4

1 回答 1

1

我自己找到了答案:有一个 APIDuplicateEncryptionInfoFile可以满足我的需要。我应该进一步搜索一下......

感谢您的阅读,我希望这个问题+答案有一天会帮助某人;-)

于 2012-02-02T08:31:22.877 回答