PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC コールバック関数 (wincrypt.h)

PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNCコールバック関数は、計算されたハッシュに署名してエンコードするために呼び出されます。

構文

PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC PfnCryptSignAndEncodeHashFunc;

BOOL PfnCryptSignAndEncodeHashFunc(
  [in]      NCRYPT_KEY_HANDLE hKey,
  [in]      DWORD dwCertEncodingType,
  [in]      PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [in]      void *pvDecodedSignPara,
  [in]      LPCWSTR pwszCNGPubKeyAlgid,
  [in]      LPCWSTR pwszCNGHashAlgid,
  [in]      BYTE *pbComputedHash,
  [in]      DWORD cbComputedHash,
  [out]     BYTE *pbSignature,
  [in, out] DWORD *pcbSignature
)
{...}

パラメーター

[in] hKey

暗号化 API: ハッシュの署名に使用する次世代 (CNG) 秘密キー のハンドル。

[in] dwCertEncodingType

使用するエンコードの種類を指定します。 次の例に示すように、証明書と メッセージエンコードの両方の種類 をビットごとの OR 操作と組み合わせて指定することは、常に許容されます。

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING 現在定義されているエンコードの種類は次のとおりです。

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

署名オブジェクト識別子 (OID) とそのオプションのエンコードされたパラメーターを含むCRYPT_ALGORITHM_IDENTIFIER構造体へのポインター。

[in] pvDecodedSignPara

PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC関数によって以前に返されたデコードされたシグネチャ パラメーター データ構造への省略可能 ポインター。

[in] pwszCNGPubKeyAlgid

pSignatureAlgorithm-pszObjId> に対応する CNG 公開キー アルゴリズム識別子を含む Unicode 文字列。

[in] pwszCNGHashAlgid

pSignatureAlgorithm-pszObjId> または pvDecodedSignPara のハッシュ アルゴリズム識別子に対応する CNG ハッシュ アルゴリズム識別子を含む Unicode 文字列。

[in] pbComputedHash

pwszCNGHashAlgid に対応する BCryptFinishHash 関数によって返される計算されたハッシュ バイトへのポインター。

[in] cbComputedHash

計算されたハッシュの長さをバイト単位で表す 値。

[out] pbSignature

エンコードされた署名バイトへのポインター。

[in, out] pcbSignature

エンコードされた署名の長さをバイト単位で表す 値。

戻り値

関数が成功した場合、関数は 0 以外 (TRUE) を返します。

関数が失敗した場合は、0 (FALSE) を返します。 拡張エラー情報については、 GetLastError を呼び出します。

このコールバック関数がシグネチャ アルゴリズムをサポートしていない場合は、FALSE を返し、ERROR_NOT_SUPPORTEDを使用して SetLastError を呼び出す必要があります。

注釈

OID サポート関数を使用して、このコールバック関数を展開できます。 Wincrypt.h は、この目的のために次の定数を定義します。

常時 定義
CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC "CryptDllSignAndEncodeHash"

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wincrypt.h