CryptVerifyCertificateSignature 関数 (wincrypt.h)

CryptVerifyCertificateSignature 関数は、CERT_PUBLIC_KEY_INFO構造の公開キーを使用して、証明書、証明書失効リスト (CRL)、または証明書要求の署名を検証します。 この関数では、 秘密キーへのアクセスは必要ありません。

構文

BOOL CryptVerifyCertificateSignature(
  [in] HCRYPTPROV_LEGACY     hCryptProv,
  [in] DWORD                 dwCertEncodingType,
  [in] const BYTE            *pbEncoded,
  [in] DWORD                 cbEncoded,
  [in] PCERT_PUBLIC_KEY_INFO pPublicKey
);

パラメーター

[in] hCryptProv

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

Windows Server 2003 および Windows XP: 署名の検証に使用される 暗号化サービス プロバイダー (CSP) へのハンドル。このパラメーターのデータ型は HCRYPTPROV です

特定 の暗号化プロバイダーを渡す強い理由がない限り、NULL が渡されます。 NULL を渡すと、既定の RSA または DSS プロバイダーが取得されます。

[in] dwCertEncodingType

サブジェクトの暗号化に使用された 証明書エンコードの種類 。 この値の上位 WORD に含まれるメッセージ エンコード型識別子は、この関数では無視されます。

このパラメーターには、現在定義されている次の証明書エンコードの種類を指定できます。

意味
X509_ASN_ENCODING
1 (0x1)
X.509 証明書のエンコードを指定します。

[in] pbEncoded

署名を検証するCERT_SIGNED_CONTENT_INFOコンテンツのエンコードされた BLOB へのポインター。

[in] cbEncoded

pbEncoded でエンコードされたコンテンツのサイズ (バイト単位)。

[in] pPublicKey

署名の検証時に使用する公開キーを含む CERT_PUBLIC_KEY_INFO 構造体へのポインター。

戻り値

成功した場合は 0 以外、それ以外の場合は 0 を返します。

拡張エラー情報については、 GetLastError を呼び出します。

メモ 呼び出された関数 CryptCreateHashCryptImportKeyCryptVerifySignatureおよび CryptHashData からのエラーは、この関数に反映される可能性があります。
 
失敗した場合、この関数は GetLastError から次のエラー コードを返します。
リターン コード 説明
ERROR_FILE_NOT_FOUND
証明書のエンコードの種類が無効です。 現在、 X509_ASN_ENCODING のみがサポートされています。
NTE_BAD_ALGID
署名アルゴリズムの オブジェクト識別子 (OID) は、既知またはサポートされている ハッシュ アルゴリズムにマップされません。
NTE_BAD_SIGNATURE
署名が無効でした。
 

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

注釈

この関数は現在、検証を実行するために CryptVerifyCertificateSignatureEx 関数を呼び出しています。

要件

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

こちらもご覧ください

CryptVerifyCertificateSignatureEx