структура BCRYPT_DH_PARAMETER_HEADER (bcrypt.h)
Структура BCRYPT_DH_PARAMETER_HEADER используется для хранения сведений о заголовке параметра для ключа Diffie-Hellman. Эта структура используется со свойством BCRYPT_DH_PARAMETERS в функции BCryptSetProperty .
Синтаксис
typedef struct _BCRYPT_DH_PARAMETER_HEADER {
ULONG cbLength;
ULONG dwMagic;
ULONG cbKeyLength;
} BCRYPT_DH_PARAMETER_HEADER;
Члены
cbLength
Общий размер (в байтах) этой структуры и буфера, который непосредственно следует за этой структурой в памяти.
dwMagic
Магическое значение для ключа.
Этот элемент должен иметь следующее значение.
BCRYPT_DH_PARAMETERS_MAGIC (0x4d504844)
cbKeyLength
Размер (в байтах) ключа, к которому применяется эта структура.
Комментарии
Эта структура используется в качестве заголовка для буфера большего размера. Один блок памяти состоит из этой структуры, за которой следует буфер размера cbKeyLength , содержащий Diffie-Hellman простое число, и другой буфер размера cbKeyLength , содержащий номер генератора Diffie-Hellman. Оба этих числа имеют формат big-endian.
В следующем примере показано, как вычислить размеры, необходимые для этого буфера, и как заполнить элементы этой структуры.
// 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);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Верхняя часть | bcrypt.h |