1 つのマーカー ファイルに関連付けられているすべての暗号化証明書を、一連の他のファイルにコピーしたいと考えています。
確かに、QueryUsersOnEncryptedFilea を返す関数がPENCRYPTION_CERTIFICATE_HASH_LISTあり、AddUsersToEncryptedFilea を取る関数がありPENCRYPTION_CERTIFICATE_LISTます。
したがって、私が理解している限り、証明書をコピーするには、これらのハッシュを変換して証明書のリストに戻す必要があります。
この移行を行うために、私はCertFindCertificateInStore. それはある程度うまくいきましたが、すべての証明書ではなく、どの証明書ストアに問い合わせるべきかさえわかりません...いくつか試してみました: CA, ROOT, MY, SPC, Trust, TrustedPeople(AuthRootそしてAddressBookすでに期限切れになっているものなど、古い証明書のキャッシュが含まれていますが、ハッシュされているすべての証明書にアクセスできるものはありませんでした。
では、証明書ハッシュを証明書自体に確実にマップするにはどうすればよいでしょうか? (いくつかのサンプルコードはいいでしょう。)
前もって感謝します!
補足として:
これらの同じターゲット ファイルから他のすべての証明書も削除したいと思います。この目的のために、 と呼ばれる利用可能な関数がありRemoveUsersFromEncryptedFile、これもPENCRYPTION_CERTIFICATE_HASH_LIST.
このリストは、最初QueryUsersOnEncryptedFileに各ファイルを呼び出して収集し、結果の証明書ハッシュ リストをRemoveUsersFromEncryptedFile(同じファイルで) に渡すことができると思います。
ただし、注意点があります。すべての証明書を失いたくありません。そうしないと、ファイルに誰もアクセスできなくなります。この中間ハッシュ リストから、自分自身の (および拡張により他の許可された) 証明書ハッシュを安全に消去できますか? (専用機能もあると思いFreeEncryptionCertificateHashListます。)