Microsoft の AD RMS SDK を使用して、ドキュメントの暗号化とユーザー権限の取り消しを実行しています。
失効を実行するには、メソッドDRMSetRevocationPointを使用する必要があります。XML 取り消しリストの署名に使用した公開鍵を渡す必要があります (リストは作成され、署名されています)。引数は PWSTR なので、XML に表示されている公開鍵の値を渡そうとしましたが、間違っていると思います (Office からリストを呼び出すとエラーが発生します)。私が求めているのは、このメソッドにキーを渡す正しい方法です。SDK の (同様の) メソッドのドキュメントでは、この引数が次のようにドキュメント化されていることがわかりました。
DRMGetRevocationPoint の wszPublicKey:
コンテンツの信頼チェーン外の失効リストを識別するためのオプションの公開鍵を受け取る、null で終わる Unicode 文字列へのポインター。このバッファーのサイズは、puPublicKeyLength パラメーターによって指定されます。
DRMSetUsagePolicy の wszPublicKey:
*権利の行使が必要または禁止されているアプリケーションのダイジェストに署名するために使用される公開鍵を含む、null で終わる Unicode 文字列へのポインター。この文字列は、整形式の XrML ノードである必要があります。このパラメーターは、eUsagePolicyType に DRM_USAGEPOLICY_TYPE_BYPUBLICKEY が含まれている場合に必要です。他のすべての eUsagePolicyType 値では無視されます。*
これらのメソッドについては、このフィールドのドキュメントを参照しています。私が求めているのは、私が持っているキーを取得してメソッドにプッシュする正しい方法です-どんなアドバイスも素晴らしいでしょう。署名付き失効リストの公開鍵は次のとおりです。
<PUBLICKEY>
<ALGORITHM>RSA</ALGORITHM>
<PARAMETER name="public-exponent">
<VALUE encoding="integer32">65537</VALUE>
</PARAMETER>
<PARAMETER name="modulus">
<VALUE encoding="base64" size="1024">8Rk8Gx2bG6ML5y/RDjyHpFwhU0g/JYNOpewEsAMw+SndTaWCAPRDZr+NVzOorrBcycVenJd9XupQndStvDN0dID+nVAL8ZwCaFtzcW74g9YRDlHWnld1SOo7VysXKC3mkLvl64CPQMzM1MlmLZ3J9vkCpiOYV/8Xu0lAcpbRdLg=</VALUE>
</PARAMETER>
</PUBLICKEY>