estrutura CMSG_ENVELOPED_ENCODE_INFO (wincrypt.h)
A estrutura CMSG_ENVELOPED_ENCODE_INFO contém informações necessárias para codificar uma mensagem envelhada. Ele será passado para CryptMsgOpenToEncode se o parâmetro dwMsgType for CMSG_ENVELOPED.
Sintaxe
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;
Membros
cbSize
O tamanho, em bytes, dessa estrutura.
hCryptProv
Esse membro não é usado e deve ser definido como NULL.
Windows Server 2003 e Windows XP: Especifica um identificador para o provedor de serviços criptográficos (CSP) usado para fazer criptografia de conteúdo, criptografia de chave de destinatário e exportar. As chaves privadas do hCryptProv não são usadas.
O tipo de dados desse membro é HCRYPTPROV.
A menos que haja um motivo forte para passar um provedor criptográfico específico no hCryptProv, passe zero para usar o provedor RSA ou DSS padrão.
ContentEncryptionAlgorithm
Uma estrutura CRYPT_ALGORITHM_IDENTIFIER que contém o tipo de algoritmo de assinatura e quaisquer parâmetros adicionais associados no formulário codificado.
O membro pszObjId da estrutura especifica o algoritmo usado para criptografar o conteúdo da mensagem.
Os algoritmos de criptografia a seguir exigem um IV ( vetor de inicialização de oito bytes ) codificado no membro Parâmetros da estrutura. Para obter detalhes, consulte CryptSetKeyParam.
Valor | Significado |
---|---|
|
szOID_OIWSEC_desCBC |
|
szOID_RSA_DES_EDE3_CBC |
Se o membro cbData do membro Parameters for zero, um ASN.1 ( Abstract Syntax Notation One ) codificado como OCTET STRING contendo o IV será gerado usando CryptGenRandom.
O algoritmo szOID_RSA_RC2CBC (CALG_RC2) requer que o membro pbData de Parameters seja uma estrutura de CRYPT_RC2_CBC_PARAMETERS codificada. Se o membro cbData do membro Parameters for zero, um CRYPT_RC2_CBC_PARAMETERS codificado em ASN.1 será gerado com um valor padrão de 40 para o membro dwVersion . Isso define o comprimento da chave padrão como 40 bits. Esse comprimento de chave padrão pode ser substituído por pvEncryptionAuxInfo apontando para uma estrutura de CMSG_RC2_AUX_INFO que contém o comprimento de chave desejado.
pvEncryptionAuxInfo
Um ponteiro para uma estrutura dependendo do algoritmo de criptografia.
Valor | Significado |
---|---|
|
|
|
|
|
|
|
NULL |
cRecipients
Número de elementos na matriz rgpRecipients ou rgCmsRecipients .
rgpRecipients
Uma matriz de ponteiros para CERT_INFO estruturas, cada uma contendo o emissor do certificado de um destinatário, SerialNumber e SubjectPublicKeyInfo. Essa matriz só pode ser usada para destinatários identificados pelo emissor e pelo número de série. Se rgpRecipients não for NULL, rgCmsRecipients deverá ser NULL.
rgCmsRecipients
Opcional. Uma matriz de ponteiros para CMSG_RECIPIENT_ENCODE_INFO estruturas que contêm informações do destinatário. Se rgCmsRecipients não for NULL, rgpRecipients deverá ser NULL. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse campo.
cCertEncoded
Opcional. Um valor DWORD que indica o número de certificados codificados na matriz rgCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse campo.
rgCertEncoded
Opcional. Matriz de estruturas CERT_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse campo.
cCrlEncoded
Opcional. Um valor DWORD que indica o número de CRLs ( listas de revogação de certificados ) codificadas na matriz rgCRLEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse campo.
rgCrlEncoded
Opcional. Uma matriz de estruturas CRL_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse campo.
cAttrCertEncoded
Opcional. Um valor DWORD que indica o número de atributos de certificado codificados na matriz rgAttrCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse campo.
rgAttrCertEncoded
Opcional. Uma matriz de estruturas CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse membro.
cUnprotectedAttr
Opcional. Um valor DWORD que indica o número de atributos desprotegidos na matriz rgUnprotectedAttr . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse campo.
rgUnprotectedAttr
Opcional. Uma matriz de estruturas CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS deve ser definido para referenciar esse campo.
Requisitos
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | wincrypt.h |