Compartilhar via


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
CMSG_KEY_AGREE_ORIGINATOR_CERT
OriginatorCertId
CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY
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
CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG
0x00000002
O membro UserKeyingMaterial foi atualizado.
CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG
0x00000020
O membro pszObjId da estrutura CRYPT_ALGORITHM_IDENTIFIER referenciada pelo membro KeyEncryptionAlgorithm foi atualizado.
CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG
0x00000001
O membro Parameters da estrutura CRYPT_ALGORITHM_IDENTIFIER referenciada pelo membro KeyEncryptionAlgorithm foi atualizado.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG
0x00000004
O membro Algorithm.pszObjId da estrutura CERT_PUBLIC_KEY_INFO referenciada pelo membro OriginatorPublicKeyInfo foi atualizado.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG
0x00000010
O membro PublicKey da estrutura CERT_PUBLIC_KEY_INFO referenciada pelo membro OriginatorPublicKeyInfo foi atualizado.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG
0x00000008
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