次の方法で共有


CryptHashToBeSigned 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptHashToBeSigned 関数は、署名済みおよびエンコードされた証明書からエンコードされたコンテンツのハッシュを計算します。 ハッシュは、"署名する" エンコードされたコンテンツとその署名に対してのみ実行されます。

構文

BOOL CryptHashToBeSigned(
  [in]      HCRYPTPROV_LEGACY hCryptProv,
  [in]      DWORD             dwCertEncodingType,
  [in]      const BYTE        *pbEncoded,
  [in]      DWORD             cbEncoded,
  [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] dwCertEncodingType

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

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbEncoded

ハッシュするコンテンツを含むバッファーのアドレス。 これは、 CERT_SIGNED_CONTENT_INFOのエンコードされた形式です。

[in] cbEncoded

バッファーのサイズ (バイト数)。

[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のみがサポートされています。
NTE_BAD_ALGID
署名アルゴリズムの オブジェクト識別子 (OID) は、既知またはサポートされているハッシュ アルゴリズムにマップされません。
 

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

要件

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

関連項目

CryptHashCertificate

CryptHashPublicKeyInfo

データ管理関数