CryptVerifyDetachedMessageSignature 関数 (wincrypt.h)

CryptVerifyDetachedMessageSignature 関数は、デタッチされた署名または署名を含む署名付きメッセージを検証します。

構文

BOOL CryptVerifyDetachedMessageSignature(
  [in]            PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
  [in]            DWORD                      dwSignerIndex,
  [in]            const BYTE                 *pbDetachedSignBlob,
  [in]            DWORD                      cbDetachedSignBlob,
  [in]            DWORD                      cToBeSigned,
  [in]            const BYTE * []            rgpbToBeSigned,
  [in]            DWORD []                   rgcbToBeSigned,
  [out, optional] PCCERT_CONTEXT             *ppSignerCert
);

パラメーター

[in] pVerifyPara

検証パラメーターを含む CRYPT_VERIFY_MESSAGE_PARA 構造体へのポインター。

[in] dwSignerIndex

検証する署名のインデックス。 メッセージには複数の署名者が含まれており、この関数を繰り返し呼び出して、 dwSignerIndex を変更して他の署名を検証できます。 関数が FALSE を返し、 GetLastError が CRYPT_E_NO_SIGNERを返した場合、前の呼び出しはメッセージの最後の署名者を受け取ります。

[in] pbDetachedSignBlob

エンコードされたメッセージ署名を含む BLOB へのポインター。

[in] cbDetachedSignBlob

デタッチされた署名のサイズ (バイト単位)。

[in] cToBeSigned

rgpbToBeSigned および rgcbToBeSigned 内の配列要素数。

[in] rgpbToBeSigned

ハッシュする内容を含むバッファーへのポインターの配列。

[in] rgcbToBeSigned

rgpbToBeSigned で指されるコンテンツ バッファーのサイズの配列 (バイト単位)。

[out, optional] ppSignerCert

署名者証明書の CERT_CONTEXT 構造へのポインター。 証明書コンテキストの使用が完了したら、 CertFreeCertificateContext 関数を呼び出して解放します。 このパラメーターが NULL の場合、CERT_CONTEXT構造体へのポインターは返されません。

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) になります。

関数が失敗した場合、戻り値は 0 (FALSE) になります

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

GetLastError 関数によって最も一般的に返されるエラー コードを次に示します。

リターン コード 説明
E_INVALIDARG
メッセージと証明書のエンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGとX509_ASN_ENCODING_TYPEのみがサポートされています。 *pVerifyParacbSize が無効です。
CRYPT_E_UNEXPECTED_MSG_TYPE
署名された暗号化メッセージではありません。
CRYPT_E_NO_SIGNER
メッセージには、指定された dwSignerIndex の署名者または署名者がありません。
NTE_BAD_ALGID
不明またはサポートされていないアルゴリズムを使用して、メッセージがハッシュされ、署名されました。
NTE_BAD_SIGNATURE
メッセージの署名が検証されませんでした。
 
メモ 呼び出された関数 CryptCreateHashCryptHashDataCryptVerifySignatureおよび CryptImportKey からのエラーがこの関数に反映される可能性があります。

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

 

要件

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

関連項目

CryptVerifyMessageSignature

簡略化されたメッセージ関数