次の方法で共有


データの署名手順

1 つの関数 CryptSignMessage は、「 署名付きメッセージの作成」に記載されているすべてのタスクを実行します。 ただし、構造体やその他のデータの初期化は依然として必要です。 次の図は、構造体または配列を指す関数パラメーターとその初期化されたデータの関係を示しています。 この図は、他の構造体または関数から派生した関数パラメーターと構造体メンバーのみを示しています。 残りのパラメーターは簡単な初期化です。

cryptsignmessage の呼び出しの初期化マップ

CryptSignMessage を使用してデータに署名するには

  1. 署名するデータへのポインターを取得します。
  2. "署名するデータ" 配列のインデックス 0 にデータへのポインターを割り当てます。
  3. 暗号化プロバイダーへのハンドルを取得します。
  4. 署名者の証明書を含む証明書 ストア を開きます。
  5. 署名者の証明書のアドレスを取得します。
  6. 証明書のアドレスを MsgCert 配列のゼロ インデックスに割り当てます。
  7. メッセージに含める他の証明書のアドレスを MsgCert 配列に割り当てます。
  8. 必要に応じて、pszObjId メンバーを目的のハッシュ アルゴリズムとその他のメンバーに初期化して、CRYPT_ALGORITHM_IDENTIFIER構造体を初期化します。
  9. CRYPT_SIGN_MESSAGE_PARA構造体を初期化し、署名者の証明書のアドレスに pSigningCert メンバーを初期化し、署名者とその他の証明書のアドレスに MsgCert 配列メンバー、CRYPT_ALGORITHM_IDENTIFIER構造体のアドレスに対する HashAlgorithm メンバー、および必要に応じて他のメンバーを初期化します。
  10. CryptSignMessage 関数を呼び出し、pSignPara パラメーターのCRYPT_SIGN_MESSAGE_PARA構造体、rgpbToBeSigned パラメーターの "署名するデータ" 配列のアドレス、pbSignedBlob 出力パラメーターのアドレス、および必要に応じて他のパラメーターの値を渡します。