CryptHashPublicKeyInfo 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptHashPublicKeyInfo 関数は、公開キー情報をCERT_PUBLIC_KEY_INFO構造体でエンコードし、エンコードされたバイトのハッシュを計算します。 作成されたハッシュは、 キー識別子関数で使用されます。

構文

BOOL CryptHashPublicKeyInfo(
  [in]      HCRYPTPROV_LEGACY     hCryptProv,
  [in]      ALG_ID                Algid,
  [in]      DWORD                 dwFlags,
  [in]      DWORD                 dwCertEncodingType,
  [in]      PCERT_PUBLIC_KEY_INFO pInfo,
  [out]     BYTE                  *pbComputedHash,
  [in, out] DWORD                 *pcbComputedHash
);

パラメーター

[in] hCryptProv

このパラメーターは使用されず、 NULL に設定する必要があります。

Windows Server 2003 および Windows XP: ハッシュの計算に使用する 暗号化サービス プロバイダー (CSP) のハンドル。このパラメーターのデータ型は HCRYPTPROV です

hCryptProv で特定の暗号化プロバイダーを渡す強い理由がない限り、ゼロが渡されます。 0 を渡すと、ハッシュ、署名の検証、または受信者の暗号化操作を実行する前に、既定の RSA または Digital Signature Standard (DSS) プロバイダーが取得されます。

[in] Algid

使用する CryptoAPI ハッシュ アルゴリズムを指定する ALG_ID 構造体。 Algid が 0 の場合は、既定のハッシュ アルゴリズム MD5 が使用されます。

[in] dwFlags

CryptCreateHash に渡される値。

[in] dwCertEncodingType

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

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pInfo

エンコードおよびハッシュされる公開キー情報を含むCERT_PUBLIC_KEY_INFO構造体へのポインター。

[out] pbComputedHash

計算されたハッシュを受け取るバッファーへのポインター。

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

[in, out] pcbComputedHash

pbComputedHash パラメーターが指すバッファーのサイズ (バイト単位) を含む DWORD へのポインター。 関数が戻るときに、 DWORD にはバッファーに格納されているバイト数が含まれます。

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

戻り値

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

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

メモ 呼び出された関数 CryptCreateHashCryptGetHashParamおよび CryptHashData からのエラーは、この関数に反映できます。 この関数には、次のエラー コードがあります。
 
リターン コード 説明
ERROR_MORE_DATA
pbComputedHash パラメーターで指定されたバッファーが、返されたデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbComputedHash が指す変数に格納します。
ERROR_FILE_NOT_FOUND
証明書のエンコードの種類が無効です。 現在、X509_ASN_ENCODINGのみがサポートされています。
 

関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。

要件

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

こちらもご覧ください

CryptHashCertificate

CryptHashToBeSigned

データ管理関数