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 |