CCTL を使用した署名付きメッセージの確認
証明書信頼リスト (CCTL) を使用する利点の 1 つは、ダイアログ ボックスでユーザーを気にすることなく、信頼された証明書に対して署名済みメッセージを自動的に検証できるアプリケーションを設計できることです。 また、ネットワーク管理者の制御ソースを信頼することもできます。
次の手順を使用して、CTL を使用して署名されたメッセージの署名を確認できます。
CTL を使用して署名されたメッセージを確認するには
次のようにメッセージをデコードします。
- 受信したメッセージ (エンコードされた BLOB) へのポインターを取得します。
- CryptMsgOpenToDecode を呼び出し、必要な引数を渡します。
- CryptMsgUpdate を 1 回呼び出し、ステップ b で取得したハンドルと、デコードするデータへのポインターを渡します。 これにより、メッセージの種類に応じて、メッセージに対して適切なアクションが実行されます。
デコードされた署名されたメッセージの署名を確認し、署名者の CERT_CONTEXTへのポインターを取得します。
これを行うには、 CryptMsgGetAndVerifySigner を呼び出し、手順 1c で取得したメッセージ ハンドルを hCryptMsg パラメーターとして渡します。 関数呼び出しで TRUE が返された場合、署名が検証され、署名者の PCCERT_CONTEXT へのポインターが ppSigner パラメーターで返されます。
署名者が信頼できるソースであることを次のように確認します。
- 適切な CTL を含む証明書ストアを開きます。
- CertFindCTLInStore を呼び出して、CTL_CONTEXTへのポインターを取得します。
- 署名者が信頼できるソースであることを確認するには、CertFindSubjectInCTL を呼び出し、pCtlContext パラメーターで前の手順で取得したポインターを渡し、dwSubjectType パラメーターにCTL_CERT_SUBJECT_TYPEし、手順 2 で pvSubject パラメーターで取得したCERT_CONTEXTへのポインターを渡します。 関数呼び出しで TRUE が返された場合、関数に渡される CERT_CONTEXT は CTL の信頼されたソースです。