次の方法で共有


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

PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNCコールバック関数が呼び出され、エンコードされた署名の暗号化が解除され、計算されたハッシュと比較されます。

構文

PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC PfnCryptVerifyEncodedSignatureFunc;

BOOL PfnCryptVerifyEncodedSignatureFunc(
  [in]           DWORD dwCertEncodingType,
  [in]           PCERT_PUBLIC_KEY_INFO pPubKeyInfo,
  [in]           PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [in, optional] void *pvDecodedSignPara,
  [in]           LPCWSTR pwszCNGPubKeyAlgid,
  [in]           LPCWSTR pwszCNGHashAlgid,
  [in]           BYTE *pbComputedHash,
  [in]           DWORD cbComputedHash,
  [in]           BYTE *pbSignature,
  [in]           DWORD cbSignature
)
{...}

パラメーター

[in] dwCertEncodingType

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

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pPubKeyInfo

署名の検証に使用する公開キーを含むCERT_PUBLIC_KEY_INFO構造体のアドレス。 これを CryptImportPublicKeyInfoEx2 と共に使用して 、BCRYPT_KEY_HANDLEを取得できます。

[in] pSignatureAlgorithm

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

[in, optional] pvDecodedSignPara

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

[in] pwszCNGPubKeyAlgid

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

[in] pwszCNGHashAlgid

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

[in] pbComputedHash

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

[in] cbComputedHash

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

[in] pbSignature

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

[in] cbSignature

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

戻り値

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

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

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

注釈

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

常時 定義
CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC "CryptDllVerifyEncodedSignature"

要件

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