Win32 API 日本語リファレンス
ホーム › Security.Cryptography › PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC

PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC

コールバック

シグネチャ

BOOL PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC(
    NCRYPT_KEY_HANDLE hKey,
    CERT_QUERY_ENCODING_TYPE dwCertEncodingType,
    CRYPT_ALGORITHM_IDENTIFIER* pSignatureAlgorithm,
    void* pvDecodedSignPara,
    LPWSTR pwszCNGPubKeyAlgid,
    LPWSTR pwszCNGHashAlgid,
    BYTE* pbComputedHash,
    DWORD cbComputedHash,
    BYTE* pbSignature,
    DWORD* pcbSignature
);

パラメーター

フィールド型説明
hKeyNCRYPT_KEY_HANDLEハッシュの署名に使用する Cryptography API: Next Generation (CNG) の秘密キーへのハンドル。
dwCertEncodingTypeCERT_QUERY_ENCODING_TYPE

使用するエンコードの種類を指定します。次の例のように、証明書とメッセージのエンコードの種類をビットごとの OR 演算で組み合わせて両方指定することも常に可能です。

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

pSignatureAlgorithmCRYPT_ALGORITHM_IDENTIFIER*署名のオブジェクト識別子 (OID) と、その省略可能なエンコード済みパラメーターを含む CRYPT_ALGORITHM_IDENTIFIER 構造体へのポインター。
pvDecodedSignParavoid*PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC 関数によって以前に返された、デコード済み署名パラメーターのデータ構造体への省略可能なポインター。
pwszCNGPubKeyAlgidLPWSTRpSignatureAlgorithm->pszObjId に対応する CNG の公開キーアルゴリズム識別子を含む Unicode 文字列。
pwszCNGHashAlgidLPWSTRpSignatureAlgorithm->pszObjId、または pvDecodedSignPara 内のハッシュアルゴリズム識別子に対応する CNG ハッシュアルゴリズム識別子を含む Unicode 文字列。
pbComputedHashBYTE*pwszCNGHashAlgid に対応する BCryptFinishHash 関数によって返された、計算されたハッシュのバイト列へのポインター。
cbComputedHashDWORD計算されたハッシュの長さ (バイト単位) を表す値。
pbSignatureBYTE*エンコードされた署名のバイト列へのポインター。
pcbSignatureDWORD*エンコードされた署名の長さ (バイト単位) を表す値。

公式ドキュメント

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

戻り値

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

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

このコールバック関数が署名アルゴリズムをサポートしていない場合は、FALSE を返し、ERROR_NOT_SUPPORTED を指定して SetLastError を呼び出す必要があります。

解説(Remarks)

このコールバック関数を配置するには、OID サポート関数を使用できます。この目的のために、Wincrypt.h では次の定数が定義されています。

定数 定義
CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC "CryptDllSignAndEncodeHash"
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)