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 関数によって最も一般的に返されるエラー コードを次に示します。
リターン コード | 説明 |
---|---|
|
メッセージと証明書のエンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGとX509_ASN_ENCODING_TYPEのみがサポートされています。 *pVerifyPara の cbSize が無効です。 |
|
署名された暗号化メッセージではありません。 |
|
メッセージには、指定された dwSignerIndex の署名者または署名者がありません。 |
|
不明またはサポートされていないアルゴリズムを使用して、メッセージがハッシュされ、署名されました。 |
|
メッセージの署名が検証されませんでした。 |
関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |