CMSG_ENVELOPED_ENCODE_INFO Struktur (wincrypt.h)
Die CMSG_ENVELOPED_ENCODE_INFO Struktur enthält Informationen, die zum Codieren einer umschlagierten 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
Dieses Element wird nicht verwendet und sollte auf NULL festgelegt werden.
Windows Server 2003 und Windows XP: Gibt einen Handle für den kryptografischen Dienstanbieter (CSP ) an, der für die Inhaltsverschlüsselung, die Empfängerschlüsselverschlüsselung und den Export verwendet wird. Die privaten Schlüssel des hCryptProv werden nicht verwendet.
Der Datentyp dieses Elements ist HCRYPTPROV.
Es sei denn, es gibt einen starken Grund für die Übergabe eines bestimmten kryptografischen Anbieters in hCryptProv, übergeben Sie null, um den standardmäßigen 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.
Das pszObjId-Element der Struktur gibt den Algorithmus an, der zum Verschlüsseln des Nachrichteninhalts verwendet wird.
Die folgenden Verschlüsselungsalgorithmen erfordern einen codierten acht Byte-Initialisierungsvektor (IV) im Parameter-Element der Struktur. Ausführliche Informationen finden Sie unter CryptSetKeyParam.
Wert | Bedeutung |
---|---|
|
szOID_OIWSEC_desCBC |
|
szOID_RSA_DES_EDE3_CBC |
Wenn das cbData-Element des Parameters-Members null ist, wird eine abstrakte Syntax Notation One (ASN.1) codierte OCTET STRING mit dem IV mithilfe von CryptGenRandom generiert.
Der szOID_RSA_RC2CBC -Algorithmus (CALG_RC2) erfordert, dass das PbData-Element von Parameters eine codierte CRYPT_RC2_CBC_PARAMETERS Struktur sein soll. Wenn das cbData-Element des Parameters-Members null ist, wird ein ASN.1-codiertes CRYPT_RC2_CBC_PARAMETERS mit einem Standardwert von 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, die auf eine CMSG_RC2_AUX_INFO Struktur verweist, die die gewünschte Schlüssellänge enthält.
pvEncryptionAuxInfo
Ein Zeiger auf eine Struktur abhängig vom Verschlüsselungsalgorithmus.
Wert | Bedeutung |
---|---|
|
|
|
|
|
|
|
NULL |
cRecipients
Anzahl der Elemente im rgpRecipients - oder rgCmsRecipients-Array .
rgpRecipients
Ein Array von Zeigern auf CERT_INFO Strukturen, die jeweils den Zertifikatausgeber eines Empfängers, SerialNumber und SubjectPublicKeyInfo enthalten. Dieses Array kann nur für Empfänger verwendet werden, die von ihrem Aussteller und ihrer 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 codierter 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 (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 müssen definiert werden, um auf dieses Element 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] |
Header | wincrypt.h |