次の方法で共有


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

次の一般的なプロセスでは、 符号付きデータ 型をデコードします。

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

  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. メッセージに含まれる証明書から署名者のCERT_INFOを取得するには、CertGetSubjectCertificateFromStore を呼び出します。
  4. CryptMsgControl を呼び出し、CMSG_CTRL_VERIFY_SIGNATUREを渡して署名を確認します。
  5. メッセージを閉じるには 、CryptMsgClose を呼び出します。

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

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