struttura CMSG_ENVELOPED_ENCODE_INFO (wincrypt.h)
La struttura CMSG_ENVELOPED_ENCODE_INFO contiene informazioni necessarie per codificare un messaggio in busto. Viene passato a CryptMsgOpenToEncode se il parametro dwMsgType è CMSG_ENVELOPED.
Sintassi
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;
Members
cbSize
Dimensione, in byte, della struttura.
hCryptProv
Questo membro non viene usato e deve essere impostato su NULL.
Windows Server 2003 e Windows XP: Specifica un handle per il provider di servizi di crittografia (CSP) usato per eseguire la crittografia del contenuto, la crittografia della chiave destinatario e l'esportazione. Le chiavi private dell'hCryptProv non vengono usate.
Il tipo di dati del membro è HCRYPTPROV.
A meno che non esista un motivo forte per passare un provider di crittografia specifico in hCryptProv, passare zero per usare il provider RSA o DSS predefinito.
ContentEncryptionAlgorithm
Struttura CRYPT_ALGORITHM_IDENTIFIER che contiene il tipo di algoritmo di firma e qualsiasi parametro aggiuntivo associato nel modulo codificato.
Il membro pszObjId della struttura specifica l'algoritmo usato per crittografare il contenuto del messaggio.
Gli algoritmi di crittografia seguenti richiedono un vettore di inizializzazione di otto byte codificato (IV) nel membro Parametri della struttura. Per informazioni dettagliate, vedere CryptSetKeyParam.
Valore | Significato |
---|---|
|
szOID_OIWSEC_desCBC |
|
szOID_RSA_DES_EDE3_CBC |
Se il membro cbData del membro Parameters è zero, viene generata una notazione sintassi astratta ( ASN.1) con codifica OCTET STRING contenente l'IV usando CryptGenRandom.
L'algoritmo szOID_RSA_RC2CBC (CALG_RC2) richiede che il membro pbData di Parameters sia una struttura CRYPT_RC2_CBC_PARAMETERS codificata. Se il membro cbData del membro Parameters è zero, viene generato un CRYPT_RC2_CBC_PARAMETERS con codifica ASN.1 con un valore predefinito pari a 40 per il membro dwVersion . In questo modo viene impostata la lunghezza della chiave predefinita su 40 bit. Questa lunghezza predefinita della chiave può essere sostituita con pvEncryptionAuxInfo che punta a una struttura CMSG_RC2_AUX_INFO contenente la lunghezza della chiave desiderata.
pvEncryptionAuxInfo
Puntatore a una struttura a seconda dell'algoritmo di crittografia.
Valore | Significato |
---|---|
|
|
|
|
|
|
|
NULL |
cRecipients
Numero di elementi nella matrice rgpRecipients o rgCmsRecipients .
rgpRecipients
Matrice di puntatori per CERT_INFO strutture, ognuna contenente l'autorità emittente del certificato del destinatario, SerialNumber e SubjectPublicKeyInfo. Questa matrice può essere usata solo per i destinatari identificati dal numero di autorità emittente e seriale. Se rgpRecipients non è NULL, rgCmsRecipients deve essere NULL.
rgCmsRecipients
facoltativo. Matrice di puntatori per CMSG_RECIPIENT_ENCODE_INFO strutture contenenti informazioni sui destinatari. Se rgCmsRecipients non è NULL, rgpRecipients deve essere NULL. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo campo.
cCertEncoded
facoltativo. Valore DWORD che indica il numero di certificati codificati nella matrice rgCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo campo.
rgCertEncoded
facoltativo. Matrice di strutture di CERT_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo campo.
cCrlEncoded
facoltativo. Valore DWORD che indica il numero di elenchi di revoche di certificati codificati nella matrice rgCRLEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo campo.
rgCrlEncoded
facoltativo. Matrice di strutture CRL_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo campo.
cAttrCertEncoded
facoltativo. Valore DWORD che indica il numero di attributi del certificato codificati nella matrice rgAttrCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo campo.
rgAttrCertEncoded
facoltativo. Matrice di strutture CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo membro.
cUnprotectedAttr
facoltativo. Valore DWORD che indica il numero di attributi non protetti nella matrice rgUnprotectedAttr . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo campo.
rgUnprotectedAttr
facoltativo. Matrice di strutture CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve essere definito per fare riferimento a questo campo.
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | wincrypt.h |