我想将与一个标记文件关联的所有加密证书复制到一组其他文件中。
当然,QueryUsersOnEncryptedFile
函数返回PENCRYPTION_CERTIFICATE_HASH_LIST
,而AddUsersToEncryptedFile
函数需要PENCRYPTION_CERTIFICATE_LIST
。
因此,据我所知,要复制证书,需要将这些哈希值转换回证书列表。
为了实现这一转变,我一直在忙着CertFindCertificateInStore
。这在某种程度上起了作用,但不是所有证书,我甚至不知道我应该查询哪些证书存储...我确实尝试了一些:CA
,ROOT
,{ {1}},MY
,SPC
,Trust
,TrustedPeople
(甚至AuthRoot
,似乎包含过时的证书缓存,如一些已经过期的地方)但是他们都没有让我访问我哈希的所有证书。
那么,我如何可靠地将证书哈希映射回证书本身? (一些示例代码会很好。)
提前致谢!
作为旁注:
我还想从这些相同的目标文件中删除所有其他证书。为此,有一个名为AddressBook
的函数,它也需要RemoveUsersFromEncryptedFile
。
我想这个列表可以通过先在每个文件上调用PENCRYPTION_CERTIFICATE_HASH_LIST
来收集,然后将生成的证书哈希列表传递给QueryUsersOnEncryptedFile
(在同一个文件中)。
但有一点需要注意:我不想放弃所有证书,否则任何人都无法访问这些文件! 我是否可以安全地将我自己的(以及任何其他允许的任何其他允许的)证书哈希从此中间哈希列表中清零?(假设还有一个专用的RemoveUsersFromEncryptedFile
函数。)
答案 0 :(得分:1)
我自己找到了答案:有一个名为DuplicateEncryptionInfoFile
的API可以完全满足我的需求。我应该再搜索一下......
感谢阅读,但我希望有一天这个问题+答案可以帮助某人; - )