struttura BCRYPT_DH_PARAMETER_HEADER (bcrypt.h)
La struttura BCRYPT_DH_PARAMETER_HEADER viene utilizzata per contenere informazioni sull'intestazione dei parametri per una chiave di Diffie-Hellman. Questa struttura viene utilizzata con la proprietà BCRYPT_DH_PARAMETERS nella funzione BCryptSetProperty .
Sintassi
typedef struct _BCRYPT_DH_PARAMETER_HEADER {
ULONG cbLength;
ULONG dwMagic;
ULONG cbKeyLength;
} BCRYPT_DH_PARAMETER_HEADER;
Members
cbLength
Dimensioni totali, in byte, di questa struttura e del buffer che segue immediatamente questa struttura in memoria.
dwMagic
Valore magic per la chiave.
Questo membro deve essere il valore seguente.
BCRYPT_DH_PARAMETERS_MAGIC (0x4d504844)
cbKeyLength
Dimensione, in byte, della chiave a cui si applica questa struttura.
Commenti
Questa struttura viene usata come intestazione per un buffer più grande. Il singolo blocco di memoria è costituito da questa struttura seguita da un buffer di dimensioni cbKeyLength che contiene il numero primo Diffie-Hellman e un altro buffer di dimensioni cbKeyLength che contiene il numero di generatore Diffie-Hellman. Entrambi questi numeri sono in formato big-endian.
Nell'esempio seguente viene illustrato come calcolare le dimensioni necessarie per questo buffer e come compilare i membri di questa struttura.
// 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);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | bcrypt.h |