次の方法で共有


CryptSignMessageWithKey 関数 (wincrypt.h)

CryptSignMessageWithKey 関数は、パラメーターで指定された CSP の秘密キーを使用してメッセージに署名します。 プレースホルダー SignerId が作成され、メッセージに格納されます。

構文

BOOL CryptSignMessageWithKey(
  [in]      PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara,
  [in]      const BYTE                   *pbToBeSigned,
  [in]      DWORD                        cbToBeSigned,
  [out]     BYTE                         *pbSignedBlob,
  [in, out] DWORD                        *pcbSignedBlob
);

パラメーター

[in] pSignPara

シグネチャ パラメーターを含む CRYPT_KEY_SIGN_MESSAGE_PARA 構造体へのポインター。

[in] pbToBeSigned

署名するメッセージを含むバッファー配列へのポインター。

[in] cbToBeSigned

pbToBeSigned バッファー配列内の配列要素の数。

[out] pbSignedBlob

エンコードされた署名付きメッセージを受信するバッファーへのポインター。

このパラメーターは、メモリ割り当てのためにこの情報のサイズを設定するために NULL にすることができます 。 詳細については、「 不明な長さのデータの取得」を参照してください。

[in, out] pcbSignedBlob

pbSignedBlob バッファーのサイズ (バイト単位) を示す DWORD 値へのポインター。 関数が戻るとき、この変数には、署名されたメッセージとエンコードされたメッセージのサイズ (バイト単位) が含まれます。

メモ 返されるデータを処理する場合、アプリケーションは返されるデータの実際のサイズを使用する必要があります。 実際のサイズは、入力時に指定されたバッファーのサイズよりも少し小さくすることができます。 (入力では、バッファー サイズは通常、可能な最大の出力データがバッファーに収まるように十分な大きさで指定されます)。出力時に、このパラメーターが指す変数が更新され、バッファーにコピーされたデータの実際のサイズが反映されます。
 

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) になります。

関数が失敗した場合、戻り値は 0 (FALSE) になります。

拡張エラー情報については、 GetLastError を呼び出します。

GetLastError 関数によって最も一般的に返されるエラー コードを次に示します。

リターン コード 説明
ERROR_MORE_DATA
pbSignedBlob パラメーターで指定されたバッファーが、返されるデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbSignedBlob が指す変数に格納します。
E_INVALIDARG
メッセージ エンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGのみがサポートされています。 *pSignParacbSize が無効です。
CRYPT_E_NO_KEY_PROPERTY
*pSignParapSigningCert には、CERT_KEY_PROV_INFO_PROP_ID または CERT_KEY_CONTEXT_PROP_ID プロパティがありません。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll