CMSG_ENVELOPED_ENCODE_INFO構造体 (wincrypt.h)
CMSG_ENVELOPED_ENCODE_INFO構造体には、エンベロープ メッセージをエンコードするために必要な情報が含まれています。 dwMsgType パラメーターがCMSG_ENVELOPED場合は、CryptMsgOpenToEncode に渡されます。
構文
typedef struct _CMSG_ENVELOPED_ENCODE_INFO {
DWORD cbSize;
HCRYPTPROV_LEGACY hCryptProv;
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm;
void *pvEncryptionAuxInfo;
DWORD cRecipients;
PCERT_INFO *rgpRecipients;
PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients;
DWORD cCertEncoded;
PCERT_BLOB rgCertEncoded;
DWORD cCrlEncoded;
PCRL_BLOB rgCrlEncoded;
DWORD cAttrCertEncoded;
PCERT_BLOB rgAttrCertEncoded;
DWORD cUnprotectedAttr;
PCRYPT_ATTRIBUTE rgUnprotectedAttr;
} CMSG_ENVELOPED_ENCODE_INFO, *PCMSG_ENVELOPED_ENCODE_INFO;
メンバー
cbSize
この構造体のサイズ (バイト単位)。
hCryptProv
このメンバーは使用されず、 NULL に設定する必要があります。
Windows Server 2003 および Windows XP: コンテンツの暗号化、受信者キーの暗号化、エクスポートを行うために使用される 暗号化サービス プロバイダー (CSP) へのハンドルを指定します。 hCryptProv の秘密キーは使用されません。
このメンバーのデータ型は HCRYPTPROV です。
hCryptProv で特定の暗号化プロバイダーを渡す強い理由がない限り、既定の RSA または DSS プロバイダーを使用するには 0 を渡します。
ContentEncryptionAlgorithm
署名アルゴリズムの種類と、エンコードされた形式で関連付けられている追加パラメーターを含む CRYPT_ALGORITHM_IDENTIFIER 構造体。
構造体の pszObjId メンバーは、メッセージの内容を暗号化するために使用されるアルゴリズムを指定します。
次の暗号化アルゴリズムでは、構造体の Parameters メンバーにエンコードされた 8 バイト 初期化ベクトル (IV) が 必要です。 詳細については、「 CryptSetKeyParam」を参照してください。
値 | 説明 |
---|---|
|
szOID_OIWSEC_desCBC |
|
szOID_RSA_DES_EDE3_CBC |
Parameters メンバーの cbData メンバーが 0 の場合、IV を含む抽象構文表記 1 (ASN.1) でエンコードされた OCTET STRING が CryptGenRandom を使用して生成されます。
szOID_RSA_RC2CBC (CALG_RC2) アルゴリズムでは、Parameters の pbData メンバーがエンコードされたCRYPT_RC2_CBC_PARAMETERS構造である必要があります。 Parameters メンバーの cbData メンバーが 0 の場合、dwVersion メンバーの既定値は 40 で ASN.1 でエンコードされたCRYPT_RC2_CBC_PARAMETERSが生成されます。 これにより、既定のキー長が 40 ビットに設定されます。 この既定のキー長は、目的のキー長を含むCMSG_RC2_AUX_INFO構造体を指す pvEncryptionAuxInfo でオーバーライドできます。
pvEncryptionAuxInfo
暗号化アルゴリズムに応じた構造体へのポインター。
値 | 説明 |
---|---|
|
|
|
|
|
|
|
NULL |
cRecipients
rgpRecipients または rgCmsRecipients 配列内の要素の数。
rgpRecipients
受信者の証明書 Issuer、SerialNumber、SubjectPublicKeyInfo を含む、 CERT_INFO 構造体へのポインターの配列。 この配列は、発行者とシリアル番号によって識別される受信者にのみ使用できます。 rgpRecipients が NULL でない場合、rgCmsRecipients は NULL である必要があります。
rgCmsRecipients
省略可能。 受信者情報を含む CMSG_RECIPIENT_ENCODE_INFO 構造体へのポインターの配列。 rgCmsRecipients が NULL でない場合、rgpRecipients は NULL である必要があります。 このフィールドを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
cCertEncoded
省略可能。 rgCertEncoded 配列内のエンコードされた証明書の数を示す DWORD 値。 このフィールドを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
rgCertEncoded
省略可能。 CERT_BLOB構造体の配列。 このフィールドを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
cCrlEncoded
省略可能。 rgCRLEncoded 配列内のエンコードされた証明書失効リスト (CRL) の数を示す DWORD 値。 このフィールドを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
rgCrlEncoded
省略可能。 CRL_BLOB構造体の配列。 このフィールドを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
cAttrCertEncoded
省略可能。 rgAttrCertEncoded 配列内のエンコードされた証明書属性の数を示す DWORD 値。 このフィールドを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
rgAttrCertEncoded
省略可能。 CRYPT_ATTRIBUTE構造体の配列。 このメンバーを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
cUnprotectedAttr
省略可能。 rgUnprotectedAttr 配列内の保護されていない属性の数を示す DWORD 値。 このフィールドを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
rgUnprotectedAttr
省略可能。 CRYPT_ATTRIBUTE構造体の配列。 このフィールドを参照するには、CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDSを定義する必要があります。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | wincrypt.h |