CryptMsgVerifyCountersignatureEncoded 関数 (wincrypt.h)
CryptMsgVerifyCountersignatureEncoded 関数は、SignerInfo 構造体 (PKCS #7 で定義) の観点からカウンター署名を検証します。
構文
BOOL CryptMsgVerifyCountersignatureEncoded(
[in] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwEncodingType,
[in] PBYTE pbSignerInfo,
[in] DWORD cbSignerInfo,
[in] PBYTE pbSignerInfoCountersignature,
[in] DWORD cbSignerInfoCountersignature,
[in] PCERT_INFO pciCountersigner
);
パラメーター
[in] hCryptProv
このパラメーターは使用されず、 NULL に設定する必要があります。
Windows Server 2003 および Windows XP: pbSignerInfo の encryptedDigest フィールドのハッシュに使用する暗号化プロバイダーの NULL またはハンドル。このパラメーターのデータ型は HCRYPTPROV です。
hCryptProv で特定の暗号化プロバイダーを渡す強い理由がない限り、NULL を渡して既定の RSA または DSS プロバイダーを使用します。
[in] dwEncodingType
使用するエンコードの種類を指定します。 現在、X509_ASN_ENCODINGとPKCS_7_ASN_ENCODINGのみが使用されています。ただし、今後、エンコードの種類が追加される可能性があります。 現在のエンコードの種類の場合は、次の値を使用します。
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。
[in] pbSignerInfo
署名するメッセージの内容の署名者を含むエンコードされた BLOB へのポインター。
[in] cbSignerInfo
コンテンツの署名者のエンコードされた BLOB のカウント (バイト単位)。
[in] pbSignerInfoCountersignature
カウンター署名者情報を含むエンコードされた BLOB へのポインター。
[in] cbSignerInfoCountersignature
メッセージのカウンター署名者のエンコードされた BLOB のカウント (バイト単位)。
[in] pciCountersigner
カウンター署名者の発行者とシリアル番号を含む CERT_INFO へのポインター。 詳細については、「解説」を参照してください。
戻り値
関数が成功した場合、戻り値は 0 以外 (TRUE) になります。
関数が失敗した場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。
次の表に、 GetLastError 関数によって最も一般的に返されるエラー コードを示します。
リターン コード | 説明 |
---|---|
|
メッセージに、想定される認証済み属性が含まれていません。 |
|
ハッシュ値が正しくありません。 |
|
メッセージは期待どおりにエンコードされません。 |
|
暗号化アルゴリズムは不明です。 |
|
1 つ以上の引数が無効です。 |
|
メモリが不足しました。 |
次の関数から伝達されたエラーが返される可能性があります。
関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。注釈
カウンター署名者の検証は、PKCS #7 SIGNERINFO 構造体を 使用して行われます。 署名には 、pbSignerInfo の encryptedDigest フィールドの暗号化されたハッシュが含まれている必要があります。
カウンター署名者の発行者とシリアル番号は、 pbSignerInfoCountersignature のカウンター署名者情報と一致している必要があります。 pciCountersigner から参照されるフィールドは、SerialNumber、Issuer、SubjectPublicKeyInfo のみです。 SubjectPublicKeyInfo は公開キーにアクセスするために使用され、pciCountersigner からハッシュを暗号化するために使用されるため、pbSignerInfo のハッシュと比較します。
例
この関数を使用する例については、「 サンプル C プログラム: CounterSigned Message のエンコードとデコード」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |