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 |