estrutura CMSG_KEY_AGREE_ENCRYPT_INFO (wincrypt.h)
A estrutura CMSG_KEY_AGREE_ENCRYPT_INFO contém informações de criptografia aplicáveis a todos os destinatários do contrato de chave de uma mensagem em envelope. A função PFN_CMSG_EXPORT_KEY_AGREE atualiza essa estrutura.
Sintaxe
typedef struct _CMSG_KEY_AGREE_ENCRYPT_INFO {
DWORD cbSize;
DWORD dwRecipientIndex;
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
CRYPT_DATA_BLOB UserKeyingMaterial;
DWORD dwOriginatorChoice;
union {
CERT_ID OriginatorCertId;
CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo;
} DUMMYUNIONNAME;
DWORD cKeyAgreeKeyEncryptInfo;
PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO *rgpKeyAgreeKeyEncryptInfo;
DWORD dwFlags;
} CMSG_KEY_AGREE_ENCRYPT_INFO, *PCMSG_KEY_AGREE_ENCRYPT_INFO;
Membros
cbSize
O tamanho, em bytes, dessa estrutura.
dwRecipientIndex
Um valor que especifica o número ordinal de um destinatário na lista de destinatários especificada pelo parâmetro pContentEncryptInfo da função PFN_CMSG_EXPORT_KEY_AGREE .
KeyEncryptionAlgorithm
Uma estrutura CRYPT_ALGORITHM_IDENTIFIER que especifica o algoritmo usado para criptografar a chave de criptografia de conteúdo. A função CryptMsgOpenToEncode usa o membro pszObjId da estrutura CRYPT_ALGORITHM_IDENTIFIER para obter o endereço da função usada para exportar a chave. A função pode ser instalada usando uma API de Criptografia: OID ( Identificador de Objeto de Próxima Geração) (CNG).
UserKeyingMaterial
Uma estrutura CRYPT_DATA_BLOB que contém o material de chave do usuário fornecido pelo remetente para garantir que uma chave diferente seja gerada sempre que as mesmas duas partes gerarem uma chave em termos de par.
dwOriginatorChoice
Um DWORD que indica o identificador de chave a ser usado. Esse membro pode ser um dos valores a seguir.
Valor | Significado |
---|---|
|
OriginatorCertId |
|
OriginatorPublicKeyInfo |
DUMMYUNIONNAME
DUMMYUNIONNAME.OriginatorCertId
Uma estrutura CERT_ID que identifica a chave pública do originador da mensagem.
DUMMYUNIONNAME.OriginatorPublicKeyInfo
Uma estrutura CERT_PUBLIC_KEY_INFO que contém a chave pública do originador da mensagem.
cKeyAgreeKeyEncryptInfo
Um valor que especifica o número de destinatários no parâmetro rgpKeyAgreeKeyEncryptInfo .
rgpKeyAgreeKeyEncryptInfo
Uma matriz de estruturas CMSG_KEY_AGREE_KEY_ENCRYPT_INFO que contêm a chave criptografada para cada destinatário.
dwFlags
Um valor que especifica quais membros foram atualizados e cuja alocação de memória deve ser liberada usando a função CryptMsgOpenToEncode .
Valor | Significado |
---|---|
|
O membro UserKeyingMaterial foi atualizado. |
|
O membro pszObjId da estrutura CRYPT_ALGORITHM_IDENTIFIER referenciada pelo membro KeyEncryptionAlgorithm foi atualizado. |
|
O membro Parameters da estrutura CRYPT_ALGORITHM_IDENTIFIER referenciada pelo membro KeyEncryptionAlgorithm foi atualizado. |
|
O membro Algorithm.pszObjId da estrutura CERT_PUBLIC_KEY_INFO referenciada pelo membro OriginatorPublicKeyInfo foi atualizado. |
|
O membro PublicKey da estrutura CERT_PUBLIC_KEY_INFO referenciada pelo membro OriginatorPublicKeyInfo foi atualizado. |
|
O membro Algorithm.Parameters da estrutura CERT_PUBLIC_KEY_INFO referenciada pelo membro OriginatorPublicKeyInfo foi atualizado. |
Comentários
Quando chamada com o parâmetro dwMsgType definido como CMSG_ENVELOPED, a função CryptMsgOpenToEncode inicializa a estrutura CMSG_KEY_AGREE_ENCRYPT_INFO da estrutura CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO . A função CryptMsgOpenToEncode chama a função PFN_CMSG_EXPORT_KEY_AGREE para atualizar a estrutura CMSG_KEY_AGREE_ENCRYPT_INFO . Se a função de retorno de chamada não puder ser encontrada, a função CryptMsgOpenToEncode preencherá essa estrutura com informações de chave padrão da estrutura CMSG_CONTENT_ENCRYPT_INFO .
Os seguintes membros da estrutura CMSG_KEY_AGREE_ENCRYPT_INFO podem ser atualizados pela função de retorno de chamada:
- UserKeyingMaterial
- KeyEncryptionAlgorithm.pszObjId
- KeyEncryptionAlgorithm.Parameters
- dwOriginatorChoice
- OriginatorCertId
- OriginatorPublicKeyInfo
- dwFlags
Os outros membros são somente leitura.
Requisitos
Requisito | Valor |
---|---|
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 |