我想將與一個標記文件關聯的所有加密證書複製到一組其他文件中。NTFS EFS:如何將加密證書從一個文件複製到(一個)其他文件中?
當然,還有的QueryUsersOnEncryptedFile
函數返回一個PENCRYPTION_CERTIFICATE_HASH_LIST
,而且也將AddUsersToEncryptedFile
功能,即需要一個PENCRYPTION_CERTIFICATE_LIST
。
所以,據我所知,要複製證書,這些散列需要轉換回證書列表。
爲了做到這一點,我一直在與CertFindCertificateInStore
搞混。這一直工作到一定程度上,但不是所有的證書,我甚至不知道哪個證書存儲區(S)我要查詢......我試過幾個:CA
,ROOT
,MY
,SPC
,Trust
,TrustedPeople
,AuthRoot
(甚至AddressBook
,它似乎包含過期的證書緩存,因爲有些已經過期)但他們都沒有給我訪問我有散列的所有證書。
那麼,如何可靠地將證書散列映射回證書本身? (一些示例代碼會很好。)
在此先感謝!
作爲一個側面說明:
我也想從這些相同的目標文件中刪除所有其他證書。爲此,有一個可用的功能,稱爲RemoveUsersFromEncryptedFile
,也需要一個PENCRYPTION_CERTIFICATE_HASH_LIST
。
我想這個列表可以通過首先在每個文件上調用QueryUsersOnEncryptedFile
來收集,並將生成的證書哈希列表傳遞給RemoveUsersFromEncryptedFile
(在同一個文件中)。
但有一點需要注意:我不想丟失所有證書,否則任何人都無法訪問這些文件! 我可以安全地從這個中間散列列表中清除我自己的(以及其他任何允許的)證書散列嗎?(鑑於還有專用的FreeEncryptionCertificateHashList
功能。)