estrutura BCRYPT_DH_PARAMETER_HEADER (bcrypt.h)

A estrutura BCRYPT_DH_PARAMETER_HEADER é usada para conter informações de cabeçalho de parâmetro para uma chave de Diffie-Hellman. Essa estrutura é usada com a propriedade BCRYPT_DH_PARAMETERS na função BCryptSetProperty .

Sintaxe

typedef struct _BCRYPT_DH_PARAMETER_HEADER {
  ULONG cbLength;
  ULONG dwMagic;
  ULONG cbKeyLength;
} BCRYPT_DH_PARAMETER_HEADER;

Membros

cbLength

O tamanho total, em bytes, dessa estrutura e do buffer que segue imediatamente essa estrutura na memória.

dwMagic

O valor mágico da chave.

Esse membro deve ser o valor a seguir.

BCRYPT_DH_PARAMETERS_MAGIC (0x4d504844)

cbKeyLength

O tamanho, em bytes, da chave à qual essa estrutura se aplica.

Comentários

Essa estrutura é usada como um cabeçalho para um buffer maior. O bloco de memória única consiste nessa estrutura seguida por um buffer de tamanho cbKeyLength que contém o Diffie-Hellman número primo e outro buffer de tamanho cbKeyLength que contém o número do gerador Diffie-Hellman. Esses dois números estão no formato big-endian.

O exemplo a seguir mostra como calcular os tamanhos necessários para esse buffer e como preencher os membros dessa estrutura.

// In this example, the rgbModulus variable is a byte array that contains the modulus in big-endian byte order. 
// The rgbGenerator variable is a byte array that contains the generator in big-endian byte order.

ULONG cbDHParams = sizeof(BCRYPT_DH_PARAMETER_HEADER) +     (cbKeySize * 2);
PBYTE pbDHParams = (PBYTE)malloc(cbDHParams);
if(!pbDHParams)
{
    status = STATUS_NO_MEMORY;
    goto Cleanup;
}

BCRYPT_DH_PARAMETER_HEADER *pDHParamHeader;
pDHParamHeader = (BCRYPT_DH_PARAMETER_HEADER*)pbDHParams;
pDHParamHeader->cbLength = cbDHParams;
pDHParamHeader->cbKeyLength = cbKeySize;
pDHParamHeader->dwMagic = BCRYPT_DH_PARAMETERS_MAGIC;

// Add the modulus to the parameters.
// The rgbModulus argument is a byte array that contains the modulus.
PBYTE pbTemp = (PBYTE)pbDHParams + sizeof(BCRYPT_DH_PARAMETER_HEADER);
CopyMemory(pbTemp, rgbModulus, pDHParamHeader->cbKeyLength);

// Add the generator to the parameters.
// The rgbGenerator argument is a byte array that contains the generator.
pbTemp += pDHParamHeader->cbKeyLength;
CopyMemory(pbTemp, rgbGenerator, pDHParamHeader->cbKeyLength);


Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho bcrypt.h

Confira também

BCryptSetProperty

Identificadores de propriedade primitiva de criptografia