次の方法で共有


署名されたデータのデコード

次の一般的なプロセスでは、署名されたデータ 型をデコードします。

署名されたメッセージ をデコードするには

  1. エンコードされた BLOB へのポインターを取得します。
  2. CryptMsgOpenToDecode呼び出し、必要な引数を渡します。
  3. CryptMsgUpdate を 1 回呼び出し、手順 2 で取得したハンドルとデコードするデータへのポインターを渡します。 これにより、メッセージの種類に応じて、メッセージに対して適切なアクションが実行されます。
  4. CryptMsgGetParam呼び出し、手順 2 で取得したハンドルと、デコードされたデータにアクセスするための適切なパラメーター型を渡します。 たとえば、デコードされたコンテンツへのポインターを取得するには、CMSG_CONTENT_PARAMを渡します。

次の一般的なプロセスは、デコードされた署名付きメッセージの署名を検証します。

デコードされた署名付きメッセージ の署名を確認するには

  1. CryptMsgGetParam呼び出し、メッセージ ハンドルとCMSG_SIGNER_CERT_INFO_PARAMを渡して、署名者の CERT_INFO をメッセージから取得します。
  2. CertOpenStore呼び出して、メッセージの証明書で初期化された一時ストアを開きます。
  3. CertGetSubjectCertificateFromStore呼び出して、メッセージに含まれる証明書から署名者の CERT_INFO を取得します。
  4. CryptMsgControl呼び出し、CMSG_CTRL_VERIFY_SIGNATUREを渡して署名を確認します。
  5. メッセージを閉じるには、CryptMsgCloseを呼び出します。

これらのプロシージャの結果は、署名が検証され、署名されたメッセージをデコードするための手順 4 で取得したデコードされたメッセージ コンテンツへのポインターが取得されます。

C コーディングの詳細については、「例 C プログラム: メッセージの署名、エンコード、デコード、検証」を参照してください。