このトピックでは、XPS デジタル署名 API を使用して XPS ドキュメントにデジタル署名を追加する際の考慮事項を示します。
XPS デジタル署名 API を使用すると、アプリケーションはユーザーに XPS ドキュメントへの署名を要求し、XPS ドキュメントに含まれる署名を確認できます。 XPS デジタル署名 API は、XPS OM に読み込まずに XPS ドキュメントに適用でき、XPS OM からシリアル化された XPS ドキュメント ストリームで使用できます。
「XPS デジタル署名 API プログラミング タスク」セクションには、XPS デジタル署名 API を使用してプログラミングする方法について説明するトピックが含まれています。 このトピックでは、アプリケーションにデジタル署名のサポートを追加するときに XPS デジタル署名 API を使用する場合の、次のような考慮事項を示します。
XPS デジタル署名 API プログラミング タスク
このセクションには、XPS デジタル署名 API を使用してプログラミング タスクを実行する方法について説明するトピックが含まれています。
署名マネージャーを初期化する
ドキュメントに署名する
XPS ドキュメントに署名要求を追加する
ドキュメント署名の確認
ファイルから証明書を読み込む
証明書が署名メソッドをサポートしていることを確認する
システムでダイジェスト メソッドがサポートされていることを確認する
ドキュメントに証明書チェーンを埋め込む
XPS デジタル署名 API プログラミングに関する特別な注意事項
次のトピックでは、XPS デジタル署名 API を使用する場合、特別な考慮事項が必要です。
XPS ドキュメントでのデジタル署名の検証
IXpsSignature::Verify は、署名されたコンテンツのみをチェックして、署名されてから変更されていないことを確認します。 IXpsSignature::Verify では、ドキュメントコンテンツの署名に使用された証明書は検証されません。
証明書と暗号化の詳細については、「暗号化について」を参照してください。
プログラムでドキュメント署名を確認する方法の例については、「ドキュメント署名と証明書の検証」を参照してください。
デジタル署名ポリシー
デジタル署名署名ポリシーは、XPS ドキュメントのどの部分に署名するかを決定します。 署名ポリシー オプションの 1 つは、署名元部分から始まる署名リレーションシップに署名することです。 追加される署名ごとに署名の関係が変わるため、このポリシーで作成された署名は、新しい署名が追加されると中断されます。 このポリシーを設定することの影響と効果を明確に理解しておいてください。そうしないと、予期しない動作や望ましくない動作が発生する可能性があります。
署名ポリシーの詳細については、「XPS_SIGN_POLICY」を参照してください。
証明書チェーンの埋め込み
特定の証明書の信頼チェーンを構成する証明書は、XPS ドキュメントに追加できます。 これらの証明書を埋め込むと、アプリケーションがデジタル署名で使用する証明書を検証する作業が、オフライン シナリオで簡単に行える場合があります。
XPS ドキュメントに証明書を埋め込む方法の詳細については、「ドキュメントに証明書チェーンを埋め込む」を参照してください。
CERT_CONTEXT 構造体の使用
CERT_CONTEXT および CERT_INFO 構造は、証明書情報を保持する主要なデータ構造です。 これらの構造体の使用方法の詳細については、「CERT_INFOデータ構造の使用」を参照してください。
Crypto API 関数によって返される CERT_CONTEXT 構造体は、不要になったら解放する必要があります。 CERT_CONTEXT 構造体を解放するには、CertFreeCertificateContext 関数を呼び出します。
関連トピック