CMSG_ENVELOPED_ENCODE_INFO-Struktur (wincrypt.h)
Die CMSG_ENVELOPED_ENCODE_INFO-Struktur enthält Informationen, die zum Codieren einer umhüllten Nachricht erforderlich sind. Er wird an CryptMsgOpenToEncode übergeben, wenn der dwMsgType-Parameter CMSG_ENVELOPED ist.
Syntax
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;
Member
cbSize
Die Größe (in Bytes) dieser Struktur.
hCryptProv
Dieser Member wird nicht verwendet und sollte auf NULL festgelegt werden.
Windows Server 2003 und Windows XP: Gibt ein Handle für den Kryptografiedienstanbieter (CSP ) an, der für die Inhaltsverschlüsselung, die Empfängerschlüsselverschlüsselung und den Export verwendet wird. Die privaten Schlüssel von hCryptProv werden nicht verwendet.
Der Datentyp dieses Members ist HCRYPTPROV.
Sofern kein starker Grund für die Übergabe eines bestimmten Kryptografieanbieters in hCryptProv vorliegt, übergeben Sie null, um den Standard-RSA- oder DSS-Anbieter zu verwenden.
ContentEncryptionAlgorithm
Eine CRYPT_ALGORITHM_IDENTIFIER-Struktur , die den Signaturalgorithmustyp und alle zugeordneten zusätzlichen Parameter in codierter Form enthält.
Der pszObjId-Member der -Struktur gibt den Algorithmus an, der zum Verschlüsseln des Nachrichteninhalts verwendet wird.
Die folgenden Verschlüsselungsalgorithmen erfordern einen codierten Initialisierungsvektor für acht Byte (IV) im Parameterelement der Struktur. Weitere Informationen finden Sie unter CryptSetKeyParam.
Wert | Bedeutung |
---|---|
|
szOID_OIWSEC_desCBC |
|
szOID_RSA_DES_EDE3_CBC |
Wenn das cbData-Element des Parameters-Elements null ist, wird mit CryptGenRandom ein ASN.1-codiertes OCTET STRING (Abstract Syntax Notation One) mit dem IV generiert.
Der szOID_RSA_RC2CBC -Algorithmus (CALG_RC2) erfordert, dass das pbData-Element von Parameters eine codierte CRYPT_RC2_CBC_PARAMETERS-Struktur ist. Wenn das cbData-Element des Parameters-Elements null ist, wird eine ASN.1-codierte CRYPT_RC2_CBC_PARAMETERS mit dem Standardwert 40 für das dwVersion-Element generiert. Dadurch wird die Standardschlüssellänge auf 40 Bit festgelegt. Diese Standardschlüssellänge kann mit pvEncryptionAuxInfo überschrieben werden, der auf eine CMSG_RC2_AUX_INFO-Struktur verweist, die die gewünschte Schlüssellänge enthält.
pvEncryptionAuxInfo
Ein Zeiger auf eine Struktur, die vom Verschlüsselungsalgorithmus abhängt.
Wert | Bedeutung |
---|---|
|
|
|
|
|
|
|
NULL |
cRecipients
Anzahl der Elemente im rgpRecipients- oder rgCmsRecipients-Array .
rgpRecipients
Ein Array von Zeigern auf CERT_INFO Strukturen, die jeweils das Zertifikat Issuer, SerialNumber und SubjectPublicKeyInfo eines Empfängers enthalten. Dieses Array kann nur für Empfänger verwendet werden, die durch den Aussteller und die Seriennummer identifiziert werden. Wenn rgpRecipients nicht NULL ist, muss rgCmsRecipientsNULL sein.
rgCmsRecipients
Optional. Ein Array von Zeigern auf CMSG_RECIPIENT_ENCODE_INFO Strukturen, die Empfängerinformationen enthalten. Wenn rgCmsRecipients nicht NULL ist, muss rgpRecipientsNULL sein. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf dieses Feld zu verweisen.
cCertEncoded
Optional. Ein DWORD-Wert , der die Anzahl der codierten Zertifikate im rgCertEncoded-Array angibt. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf dieses Feld zu verweisen.
rgCertEncoded
Optional. Array von CERT_BLOB-Strukturen . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf dieses Feld zu verweisen.
cCrlEncoded
Optional. Ein DWORD-Wert , der die Anzahl der codierten Zertifikatsperrlisten (Certificate Revocation Lists , CRLs) im rgCRLEncoded-Array angibt. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf dieses Feld zu verweisen.
rgCrlEncoded
Optional. Ein Array von CRL_BLOB Strukturen. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf dieses Feld zu verweisen.
cAttrCertEncoded
Optional. Ein DWORD-Wert , der die Anzahl der codierten Zertifikatattribute im rgAttrCertEncoded-Array angibt. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf dieses Feld zu verweisen.
rgAttrCertEncoded
Optional. Ein Array von CRYPT_ATTRIBUTE-Strukturen . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf diesen Member zu verweisen.
cUnprotectedAttr
Optional. Ein DWORD-Wert , der die Anzahl der nicht geschützten Attribute im rgUnprotectedAttr-Array angibt. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf dieses Feld zu verweisen.
rgUnprotectedAttr
Optional. Ein Array von CRYPT_ATTRIBUTE-Strukturen . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS muss definiert werden, um auf dieses Feld zu verweisen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Kopfzeile | wincrypt.h |