次の方法で共有


CryptMsgCountersignEncoded 関数 (wincrypt.h)

CryptMsgCountersignEncoded 関数は、既存の PKCS #7 メッセージ署名に署名します。 作成する byte バッファーpbCountersignature は PKCS #7 でエンコードされた SignerInfo であり、PKCS #9 の署名付きデータまたは署名されたエンベロープデータ メッセージの非認証 Countersignature 属性として使用できます。

構文

BOOL CryptMsgCountersignEncoded(
  [in]      DWORD                    dwEncodingType,
  [in]      PBYTE                    pbSignerInfo,
  [in]      DWORD                    cbSignerInfo,
  [in]      DWORD                    cCountersigners,
  [in]      PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
  [out]     PBYTE                    pbCountersignature,
  [in, out] PDWORD                   pcbCountersignature
);

パラメーター

[in] dwEncodingType

使用するエンコードの種類を指定します。 現時点では、X509_ASN_ENCODINGとPKCS_7_ASN_ENCODINGのみが使用されています。ただし、今後、エンコードの種類が追加される可能性があります。 現在のエンコードの種類には、次の値を使用します。

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。

[in] pbSignerInfo

カウンター署名されるエンコードされた SignerInfo へのポインター。

[in] cbSignerInfo

エンコードされた SignerInfo データのカウント (バイト単位)。

[in] cCountersigners

rgCountersigners 配列内のカウンター署名者の数。

[in] rgCountersigners

カウンター署名者の CMSG_SIGNER_ENCODE_INFO 構造体の配列。

[out] pbCountersignature

エンコードされた PKCS #9 カウンター署名 属性を受け取るバッファーへのポインター。

入力時に、このパラメーターを NULL して、メモリ割り当てのためにこの情報のサイズを設定できます。 詳細については、「不明な長さのデータの取得」を参照してください。

[in, out] pcbCountersignature

pbCountersignature パラメーターが指すバッファーのサイズをバイト単位で指定する変数へのポインター。 関数が戻るときに、pcbCountersignature パラメーターによって指される変数には、バッファーに格納されているバイト数が含まれます。

戻り値

関数が成功した場合、戻り値は 0 以外 (true)。

関数が失敗した場合、戻り値は 0 (FALSE)。 拡張エラー情報については、GetLastError呼び出します。

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

リターン コード 形容
CRYPT_E_OID_FORMAT
オブジェクト識別子の形式が正しくありません。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
メモリ不足。
 

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wincrypt.h
ライブラリ Crypt32.lib
DLL Crypt32.dll

関連項目

CryptMsgCountersign

CryptMsgVerifyCountersignatureEncoded

低レベルメッセージ関数

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