我想将与一个标记文件关联的所有加密证书复制到一组其他文件中。
当然,有QueryUsersOnEncryptedFile
一个返回 aPENCRYPTION_CERTIFICATE_HASH_LIST
的函数,还有AddUsersToEncryptedFile
一个接受 a的函数PENCRYPTION_CERTIFICATE_LIST
。
因此,据我了解,要复制证书,这些哈希需要转换回证书列表。
为了进行这种转变,我一直在搞乱CertFindCertificateInStore
. 这在某种程度上起作用了,但不是所有证书,我什至不知道我应该查询哪些证书存储......我确实尝试了一些:CA
,,,,,,,(甚至ROOT
,这似乎包含过期的证书缓存,因为其中一些已经过期)但它们都没有让我访问我拥有哈希值的所有证书。MY
SPC
Trust
TrustedPeople
AuthRoot
AddressBook
那么,我怎样才能可靠地将证书哈希映射回证书本身呢? (一些示例代码会很好。)
提前致谢!
作为旁注:
我还想从这些相同的目标文件中删除所有其他证书。为此,有一个可用的函数,称为RemoveUsersFromEncryptedFile
,它也需要一个PENCRYPTION_CERTIFICATE_HASH_LIST
.
我想这个列表可以通过首先调用QueryUsersOnEncryptedFile
每个文件来收集,然后将生成的证书哈希列表传递给RemoveUsersFromEncryptedFile
(在同一个文件上)。
但是有一个警告:我不想丢失所有证书,否则任何人都无法访问这些文件!我可以从这个中间哈希列表中安全地将我自己的(以及任何其他允许的)证书哈希清零吗?(鉴于还有一个专用FreeEncryptionCertificateHashList
功能。)