Compartilhar via


estrutura CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO (wincrypt.h)

A estrutura CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO contém informações sobre um destinatário de mensagem que está usando o gerenciamento de chaves do contrato de chave. Essa estrutura é usada com a estrutura CMSG_RECIPIENT_ENCODE_INFO .

Sintaxe

typedef struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {
  DWORD                                     cbSize;
  CRYPT_ALGORITHM_IDENTIFIER                KeyEncryptionAlgorithm;
  void                                      *pvKeyEncryptionAuxInfo;
  CRYPT_ALGORITHM_IDENTIFIER                KeyWrapAlgorithm;
  void                                      *pvKeyWrapAuxInfo;
  HCRYPTPROV_LEGACY                         hCryptProv;
  DWORD                                     dwKeySpec;
  DWORD                                     dwKeyChoice;
  union {
    PCRYPT_ALGORITHM_IDENTIFIER pEphemeralAlgorithm;
    PCERT_ID                    pSenderId;
  } DUMMYUNIONNAME;
  CRYPT_DATA_BLOB                           UserKeyingMaterial;
  DWORD                                     cRecipientEncryptedKeys;
  PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO *rgpRecipientEncryptedKeys;
} CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;

Membros

cbSize

O tamanho, em bytes, dessa estrutura.

KeyEncryptionAlgorithm

Uma estrutura CRYPT_ALGORITHM_IDENTIFIER que especifica o algoritmo usado para criptografia.

Para destinatários ECC, o membro pszObjId da estrutura CRYPT_ALGORITHM_IDENTIFIER deve ser definido como szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF com o membro dwKeyChoice dessa estrutura CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO definido como CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE.

pvKeyEncryptionAuxInfo

Este membro não é usado no momento. Ele deve ser definido como NULL.

KeyWrapAlgorithm

Uma estrutura CRYPT_ALGORITHM_IDENTIFIER que especifica o algoritmo usado para encapsulamento de chave.

pvKeyWrapAuxInfo

Um ponteiro para uma estrutura CMSG_RC2_AUX_INFO que especifica o comprimento do bit de encapsulamento da chave. Esse membro só será usado se o membro KeyWrapAlgorithm especificar um algoritmo RC2. Se KeyWrapAlgorithm especificar um algoritmo diferente de um algoritmo RC2, esse membro não será usado e deverá ser NULL.

hCryptProv

Esse membro não é usado e deve ser definido como NULL.

Windows Server 2003 e Windows XP: Um identificador para um provedor de serviços criptográficos (CSP) obtido usando a função CryptAcquireContext . Esse membro é opcional e pode ser NULL. O tipo de dados desse membro é HCRYPTPROV.

dwKeySpec

Este membro não é usado no momento.

dwKeyChoice

Indica o tipo de contrato de chave. Esse membro pode ser um dos valores a seguir.

Valor Significado
CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE
Crie um par temporário de chaves públicas/privadas para criptografar a chave de criptografia de conteúdo.
CMSG_KEY_AGREE_STATIC_KEY_CHOICE
Esse valor não é usado atualmente.

DUMMYUNIONNAME

DUMMYUNIONNAME.pEphemeralAlgorithm

Um ponteiro para uma estrutura de CRYPT_ALGORITHM_IDENTIFIER que contém o algoritmo e parâmetros de chave pública efêmera. Esse membro é usado quando o membro dwKeyChoice contém CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE.

DUMMYUNIONNAME.pSenderId

Um ponteiro para uma estrutura CERT_ID . Esse membro é usado quando o membro dwKeyChoice contém CMSG_KEY_AGREE_STATIC_KEY_CHOICE. Este membro não é usado no momento.

UserKeyingMaterial

Uma estrutura CRYPT_DATA_BLOB que contém o UKM (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. Esse membro é opcional e todos os membros devem ser definidos como zero se não forem usados.

cRecipientEncryptedKeys

O número de elementos na matriz rgpRecipientEncryptedKeys .

rgpRecipientEncryptedKeys

Uma matriz de estruturas CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO , uma para cada destinatário receber essa chave de contrato de chave. O membro cRecipientEncryptedKeys contém o número de elementos nessa estrutura.

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

Confira também

CERT_ID

CMSG_RC2_AUX_INFO

CMSG_RECIPIENT_ENCODE_INFO

CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

CRYPT_ALGORITHM_IDENTIFIER

CRYPT_DATA_BLOB

Cryptacquirecontext