次の方法で共有


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 関数によって最も一般的に返されるエラー コードを示します。

リターン コード 説明
CRYPT_E_AUTH_ATTR_MISSING
メッセージに、想定される認証済み属性が含まれていません。
CRYPT_E_HASH_VALUE
ハッシュ値が正しくありません。
CRYPT_E_UNEXPECTED_ENCODING
メッセージは期待どおりにエンコードされません。
CRYPT_E_UNKNOWN_ALGO
暗号化アルゴリズムは不明です。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
メモリが不足しました。
 

次の関数から伝達されたエラーが返される可能性があります。

関数が失敗した場合、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

こちらもご覧ください

CryptMsgCountersign

CryptMsgCountersignEncoded

低レベルのメッセージ関数

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